[meta-freescale] [PATCH 3/4] valgrind: add FSL customized version for e500v2 targets

Zhenhua Luo zhenhua.luo at freescale.com
Tue Aug 18 02:46:52 PDT 2015


* add valgrind-qoriq-3.8.1 for e500v2 targets
* add PREFERRED_VERSION and PREFERRED_PROVIDER for e500v2

Signed-off-by: Zhenhua Luo <zhenhua.luo at freescale.com>
---
 conf/machine/include/e500v2.inc                    |     6 +
 .../valgrind/files/0001-Baseline.patch             |  2590 ++
 .../0002-Configure-for-SPE-on-an-SPE-machine.patch |   420 +
 ...-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch |   303 +
 ...V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch |    49 +
 ...tend-addr_align-for-double-word-alignment.patch |    24 +
 ...PE-Instructions-evldd-evstdd-evxor-base-f.patch |  1721 +
 ...Implement-SPE-Instructions-evlddx-evstddx.patch |   433 +
 ...8-Implement-SPE-Instructions-evldh-evstdh.patch |   437 +
 ...-pools-per-__ev64_-__-integer-type-and-an.patch |  4764 +++
 ...0010-Implement-SPE-Instructions-evor-evmr.patch |   502 +
 ...PE-Instructions-evldhx-evstdhx-evldw-evst.patch |   602 +
 ...t-SPE-Instructions-evldd-evstdd-evlddx-ev.patch |   130 +
 ...me-of-the-verbosity-in-the-test-reporting.patch |   206 +
 ...ta-pool-of-word-values-and-macros-for-get.patch |   289 +
 ...PE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch |   699 +
 ...PE-Instructions-evlwhos-evlwhosx-evlwhou-.patch |   618 +
 .../valgrind/files/0017-Cleanup-evstdd_asm.patch   |   305 +
 ...PE-Instructions-evstwwe-evstwwex-evstwwo-.patch |   421 +
 ...PE-Instructions-evlhhesplat-evlhhesplatx-.patch |   945 +
 ...PE-Instructions-evlwhsplat-evlwhsplatx-ev.patch |   428 +
 ...PE-Instructions-evmergehi-evmergehilo-evm.patch |   386 +
 ...PE-Instructions-evand-evandc-eveqv-evnand.patch |   478 +
 ...PE-Instructions-evrlw-evrlwi-evslw-evslwi.patch |   902 +
 ...-on-SPE-Programming-Interface-Manual-Chap.patch |   764 +
 ...-on-SPE-Programming-Interface-Manual-Chap.patch |   314 +
 ...-on-SPE-Programming-Interface-Manual-Chap.patch |   407 +
 ...-on-SPE-Programming-Interface-Manual-Chap.patch |  1568 +
 ...mplement-SPE-Instructions-evextsb-evextsh.patch |   430 +
 ...lement-SPE-Instructions-evcntlsw-evcntlzw.patch |  1576 +
 ...ement-SPE-Instructions-evsplatfi-evsplati.patch |   500 +
 ...ement-SPE-Instructions-evneg-evabs-evrndw.patch |   565 +
 ...PE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch |  1478 +
 ...V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch |    49 +
 .../0034-Implement-SPE-Instructions-evsel.patch    |   705 +
 ...-being-able-to-iterate-the-regression-tes.patch |   139 +
 ...PE-Instructions-evmra-evaddsmiaaw-evaddum.patch |   564 +
 ...PE-Instructions-evaddiw-evaddw-evsubifw-e.patch |   450 +
 .../files/0038-Implement-SPE-Instructions.patch    |  2332 ++
 ...PE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch |  3016 ++
 .../files/0040-Implement-SPE-Instructions.patch    |  3029 ++
 .../0041-Add-document-FSL-SPE-README.txt.patch     |   104 +
 ...n-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch |    25 +
 .../0043-Minor-edits-to-FSL-SPE-README.txt.patch   |    72 +
 .../0044-Minor-edits-FSL-SPE-README.txt.patch      |   297 +
 ...est_ppc_helpers.c-Use-__ev_convert_s64-in.patch |   306 +
 ...PE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch |  2041 ++
 ...PE-Instructions-evmhegsmiaa-evmhegsmian-e.patch |  3864 +++
 ...-Fix-spelling-error-in-FSL-SPE-README.txt.patch |    25 +
 ...on-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch |    39 +
 ...-file-regtest-power7-64.default-build.log.patch |  2599 ++
 ...eanups-in-memcheck-tests-ppc32-test_spe.c.patch |  1427 +
 ...mplement-Instructions-mfspefscr-mtspefscr.patch |   505 +
 ...PE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch |  1351 +
 ...PE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch |  1369 +
 .../files/0055-Implement-SPE-Instructions.patch    |  1083 +
 .../files/0056-Implement-SPE-Instructions.patch    |   920 +
 .../files/0057-Implement-SPE-Instructions.patch    |  3331 ++
 ...PE-instructions-evaddssiaaw-evaddusiaaw-e.patch |   766 +
 .../files/0059-Cleanup-dirty-helper-parts.patch    |  2676 ++
 ...k-tests-ppc32-test_spe-only-on-Power-SPE-.patch |   745 +
 ...algrind-will-determine-an-out-of-bounds-a.patch |   591 +
 ...n-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch |   699 +
 ...DME.txt-Add-prlimit-2-being-an-unsupporte.patch |    43 +
 ...tests-based-on-the-FSL-SPE-README.txt-s-s.patch |   906 +
 .../files/0065-misc-updates-for-sdk-1.6.patch      | 32824 +++++++++++++++++++
 .../files/configure-with-newer-glibc.patch         |    41 +
 .../fix-out-of-tree-builds-with-newer-glibc.patch  |    37 +
 recipes-devtools/valgrind/files/glibc.patch        |    35 +
 .../valgrind/files/valgrind-3.8.1-Bug-308573.patch |   105 +
 .../files/valgrind-3.8.1-sepbuildfix.patch         |   209 +
 recipes-devtools/valgrind/valgrind-qoriq_3.8.1.bb  |   103 +
 72 files changed, 94682 insertions(+)
 create mode 100644 recipes-devtools/valgrind/files/0001-Baseline.patch
 create mode 100644 recipes-devtools/valgrind/files/0002-Configure-for-SPE-on-an-SPE-machine.patch
 create mode 100644 recipes-devtools/valgrind/files/0003-Declare-the-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch
 create mode 100644 recipes-devtools/valgrind/files/0004-Power-ISA-V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch
 create mode 100644 recipes-devtools/valgrind/files/0005-Extend-addr_align-for-double-word-alignment.patch
 create mode 100644 recipes-devtools/valgrind/files/0006-Implement-SPE-Instructions-evldd-evstdd-evxor-base-f.patch
 create mode 100644 recipes-devtools/valgrind/files/0007-Implement-SPE-Instructions-evlddx-evstddx.patch
 create mode 100644 recipes-devtools/valgrind/files/0008-Implement-SPE-Instructions-evldh-evstdh.patch
 create mode 100644 recipes-devtools/valgrind/files/0009-Create-data-pools-per-__ev64_-__-integer-type-and-an.patch
 create mode 100644 recipes-devtools/valgrind/files/0010-Implement-SPE-Instructions-evor-evmr.patch
 create mode 100644 recipes-devtools/valgrind/files/0011-Implement-SPE-Instructions-evldhx-evstdhx-evldw-evst.patch
 create mode 100644 recipes-devtools/valgrind/files/0012-Re-Implement-SPE-Instructions-evldd-evstdd-evlddx-ev.patch
 create mode 100644 recipes-devtools/valgrind/files/0013-Remove-some-of-the-verbosity-in-the-test-reporting.patch
 create mode 100644 recipes-devtools/valgrind/files/0014-Create-a-data-pool-of-word-values-and-macros-for-get.patch
 create mode 100644 recipes-devtools/valgrind/files/0015-Implement-SPE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch
 create mode 100644 recipes-devtools/valgrind/files/0016-Implement-SPE-Instructions-evlwhos-evlwhosx-evlwhou-.patch
 create mode 100644 recipes-devtools/valgrind/files/0017-Cleanup-evstdd_asm.patch
 create mode 100644 recipes-devtools/valgrind/files/0018-Implement-SPE-Instructions-evstwwe-evstwwex-evstwwo-.patch
 create mode 100644 recipes-devtools/valgrind/files/0019-Implement-SPE-Instructions-evlhhesplat-evlhhesplatx-.patch
 create mode 100644 recipes-devtools/valgrind/files/0020-Implement-SPE-Instructions-evlwhsplat-evlwhsplatx-ev.patch
 create mode 100644 recipes-devtools/valgrind/files/0021-Implement-SPE-Instructions-evmergehi-evmergehilo-evm.patch
 create mode 100644 recipes-devtools/valgrind/files/0022-Implement-SPE-Instructions-evand-evandc-eveqv-evnand.patch
 create mode 100644 recipes-devtools/valgrind/files/0023-Implement-SPE-Instructions-evrlw-evrlwi-evslw-evslwi.patch
 create mode 100644 recipes-devtools/valgrind/files/0024-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
 create mode 100644 recipes-devtools/valgrind/files/0025-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
 create mode 100644 recipes-devtools/valgrind/files/0026-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
 create mode 100644 recipes-devtools/valgrind/files/0027-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
 create mode 100644 recipes-devtools/valgrind/files/0028-Implement-SPE-Instructions-evextsb-evextsh.patch
 create mode 100644 recipes-devtools/valgrind/files/0029-Implement-SPE-Instructions-evcntlsw-evcntlzw.patch
 create mode 100644 recipes-devtools/valgrind/files/0030-Implement-SPE-Instructions-evsplatfi-evsplati.patch
 create mode 100644 recipes-devtools/valgrind/files/0031-Implement-SPE-Instructions-evneg-evabs-evrndw.patch
 create mode 100644 recipes-devtools/valgrind/files/0032-Implement-SPE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch
 create mode 100644 recipes-devtools/valgrind/files/0033-Power-ISA-V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch
 create mode 100644 recipes-devtools/valgrind/files/0034-Implement-SPE-Instructions-evsel.patch
 create mode 100644 recipes-devtools/valgrind/files/0035-Provide-for-being-able-to-iterate-the-regression-tes.patch
 create mode 100644 recipes-devtools/valgrind/files/0036-Implement-SPE-Instructions-evmra-evaddsmiaaw-evaddum.patch
 create mode 100644 recipes-devtools/valgrind/files/0037-Implement-SPE-Instructions-evaddiw-evaddw-evsubifw-e.patch
 create mode 100644 recipes-devtools/valgrind/files/0038-Implement-SPE-Instructions.patch
 create mode 100644 recipes-devtools/valgrind/files/0039-Implement-SPE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch
 create mode 100644 recipes-devtools/valgrind/files/0040-Implement-SPE-Instructions.patch
 create mode 100644 recipes-devtools/valgrind/files/0041-Add-document-FSL-SPE-README.txt.patch
 create mode 100644 recipes-devtools/valgrind/files/0042-Mark-version-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch
 create mode 100644 recipes-devtools/valgrind/files/0043-Minor-edits-to-FSL-SPE-README.txt.patch
 create mode 100644 recipes-devtools/valgrind/files/0044-Minor-edits-FSL-SPE-README.txt.patch
 create mode 100644 recipes-devtools/valgrind/files/0045-VEX-priv-guest_ppc_helpers.c-Use-__ev_convert_s64-in.patch
 create mode 100644 recipes-devtools/valgrind/files/0046-Implement-SPE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch
 create mode 100644 recipes-devtools/valgrind/files/0047-Implement-SPE-Instructions-evmhegsmiaa-evmhegsmian-e.patch
 create mode 100644 recipes-devtools/valgrind/files/0048-Fix-spelling-error-in-FSL-SPE-README.txt.patch
 create mode 100644 recipes-devtools/valgrind/files/0049-Mark-version-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch
 create mode 100644 recipes-devtools/valgrind/files/0050-Adding-new-file-regtest-power7-64.default-build.log.patch
 create mode 100644 recipes-devtools/valgrind/files/0051-Cleanups-in-memcheck-tests-ppc32-test_spe.c.patch
 create mode 100644 recipes-devtools/valgrind/files/0052-Implement-Instructions-mfspefscr-mtspefscr.patch
 create mode 100644 recipes-devtools/valgrind/files/0053-Implement-SPE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch
 create mode 100644 recipes-devtools/valgrind/files/0054-Implement-SPE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch
 create mode 100644 recipes-devtools/valgrind/files/0055-Implement-SPE-Instructions.patch
 create mode 100644 recipes-devtools/valgrind/files/0056-Implement-SPE-Instructions.patch
 create mode 100644 recipes-devtools/valgrind/files/0057-Implement-SPE-Instructions.patch
 create mode 100644 recipes-devtools/valgrind/files/0058-Implement-SPE-instructions-evaddssiaaw-evaddusiaaw-e.patch
 create mode 100644 recipes-devtools/valgrind/files/0059-Cleanup-dirty-helper-parts.patch
 create mode 100644 recipes-devtools/valgrind/files/0060-Run-memcheck-tests-ppc32-test_spe-only-on-Power-SPE-.patch
 create mode 100644 recipes-devtools/valgrind/files/0061-Test-that-Valgrind-will-determine-an-out-of-bounds-a.patch
 create mode 100644 recipes-devtools/valgrind/files/0062-Mark-version-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch
 create mode 100644 recipes-devtools/valgrind/files/0063-FSL-SPE-README.txt-Add-prlimit-2-being-an-unsupporte.patch
 create mode 100644 recipes-devtools/valgrind/files/0064-Add-system-tests-based-on-the-FSL-SPE-README.txt-s-s.patch
 create mode 100644 recipes-devtools/valgrind/files/0065-misc-updates-for-sdk-1.6.patch
 create mode 100644 recipes-devtools/valgrind/files/configure-with-newer-glibc.patch
 create mode 100644 recipes-devtools/valgrind/files/fix-out-of-tree-builds-with-newer-glibc.patch
 create mode 100644 recipes-devtools/valgrind/files/glibc.patch
 create mode 100644 recipes-devtools/valgrind/files/valgrind-3.8.1-Bug-308573.patch
 create mode 100644 recipes-devtools/valgrind/files/valgrind-3.8.1-sepbuildfix.patch
 create mode 100644 recipes-devtools/valgrind/valgrind-qoriq_3.8.1.bb

diff --git a/conf/machine/include/e500v2.inc b/conf/machine/include/e500v2.inc
index 12c22a9..2086b23 100644
--- a/conf/machine/include/e500v2.inc
+++ b/conf/machine/include/e500v2.inc
@@ -1,4 +1,10 @@
 require conf/machine/include/tune-ppce500v2.inc
 require conf/machine/include/qoriq-ppc.inc
 
+# preferred provider
+PREFERRED_PROVIDER_valgrind = "valgrind-qoriq"
+
+# preferred version
+PREFERRED_VERSION_valgrind = "3.8.1+fsl"
+
 MACHINEOVERRIDES .= ":e500v2"
diff --git a/recipes-devtools/valgrind/files/0001-Baseline.patch b/recipes-devtools/valgrind/files/0001-Baseline.patch
new file mode 100644
index 0000000..196dc37
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0001-Baseline.patch
@@ -0,0 +1,2590 @@
+From 61274900ad75117038b76f03bbf1dd3ea4504d22 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 7 Dec 2012 07:52:45 -0800
+Subject: [PATCH 01/65] Baseline
+
+---
+ regtest-power7-64.log | 2571 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 2571 insertions(+), 0 deletions(-)
+ create mode 100644 regtest-power7-64.log
+
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+new file mode 100644
+index 0000000..ebd4ebe
+--- /dev/null
++++ b/regtest-power7-64.log
+@@ -0,0 +1,2571 @@
++make  check-recursive
++make[1]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++Making check in include
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
++Making check in VEX
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make  check-am
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make[3]: Nothing to be done for `check-am'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++Making check in coregrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++make  check-am
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++mkdir -p ../.in_place; \
++for f in vgpreload_core-ppc64-linux.so vgpreload_core-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../coregrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../coregrind/$f.dSYM ../.in_place; \
++done
++mkdir -p ../.in_place; \
++for f in m_gdbserver/32bit-core-valgrind-s1.xml m_gdbserver/32bit-core-valgrind-s2.xml m_gdbserver/32bit-core.xml m_gdbserver/32bit-linux-valgrind-s1.xml m_gdbserver/32bit-linux-valgrind-s2.xml m_gdbserver/32bit-linux.xml m_gdbserver/32bit-sse-valgrind-s1.xml m_gdbserver/32bit-sse-valgrind-s2.xml m_gdbserver/32bit-sse.xml m_gdbserver/64bit-avx-valgrind-s2.xml m_gdbserver/64bit-avx-valgrind-s1.xml m_gdbserver/64bit-avx.xml m_gdbserver/64bit-core-valgrind-s1.xml m_gdbserver/64bit-core-valgrind-s2.xml m_gdbserver/64bit-core.xml m_gdbserver/64bit-linux-valgrind-s1.xml m_gdbserver/64bit-linux-valgrind-s2.xml m_gdbserver/64bit-linux.xml m_gdbserver/64bit-sse-valgrind-s1.xml m_gdbserver/64bit-sse-valgrind-s2.xml m_gdbserver/64bit-sse.xml m_gdbserver/amd64-avx-coresse-valgrind.xml m_gdbserver/amd64-avx-coresse.xml m_gdbserver/amd64-avx-linux-valgrind.xml m_gdbserver/amd64-avx-linux.xml m_gdbserver/amd64-coresse-valgrind.xml m_gdbserver/amd64-linux-valgrind.xml m_gdbserver/arm-core-valgrind-s1.xml m_gdbserver/arm-core-valgrind-s2.xml m_gdbserver/arm-core.xml m_gdbserver/arm-vfpv3-valgrind-s1.xml m_gdbserver/arm-vfpv3-valgrind-s2.xml m_gdbserver/arm-vfpv3.xml m_gdbserver/arm-with-vfpv3-valgrind.xml m_gdbserver/arm-with-vfpv3.xml m_gdbserver/i386-coresse-valgrind.xml m_gdbserver/i386-linux-valgrind.xml m_gdbserver/power64-core-valgrind-s1.xml m_gdbserver/power64-core-valgrind-s2.xml m_gdbserver/power64-core.xml m_gdbserver/power64-linux-valgrind-s1.xml m_gdbserver/power64-linux-valgrind-s2.xml m_gdbserver/power64-linux.xml m_gdbserver/power-altivec-valgrind-s1.xml m_gdbserver/power-altivec-valgrind-s2.xml m_gdbserver/power-altivec.xml m_gdbserver/power-core-valgrind-s1.xml m_gdbserver/power-core-valgrind-s2.xml m_gdbserver/power-core.xml m_gdbserver/power-fpu-valgrind-s1.xml m_gdbserver/power-fpu-valgrind-s2.xml m_gdbserver/power-fpu.xml m_gdbserver/power-linux-valgrind-s1.xml m_gdbserver/power-linux-valgrind-s2.xml m_gdbserver/power-linux.xml m_gdbserver/powerpc-altivec32l-valgrind.xml m_gdbserver/powerpc-altive!
 c32l.xml m_gdbserver/powerpc-altivec64l-valgrind.xml m_gdbserver/powerpc-altivec64l.xml m_gdbserver/s390-acr-valgrind-s1.xml m_gdbserver/s390-acr-valgrind-s2.xml m_gdbserver/s390-acr.xml m_gdbserver/s390-fpr-valgrind-s1.xml m_gdbserver/s390-fpr-valgrind-s2.xml m_gdbserver/s390-fpr.xml m_gdbserver/s390x-core64-valgrind-s1.xml m_gdbserver/s390x-core64-valgrind-s2.xml m_gdbserver/s390x-core64.xml m_gdbserver/s390x-generic-valgrind.xml m_gdbserver/s390x-generic.xml m_gdbserver/s390x-linux64-valgrind-s1.xml m_gdbserver/s390x-linux64-valgrind-s2.xml m_gdbserver/s390x-linux64.xml m_gdbserver/mips-cp0-valgrind-s1.xml m_gdbserver/mips-cp0-valgrind-s2.xml m_gdbserver/mips-cp0.xml m_gdbserver/mips-cpu-valgrind-s1.xml m_gdbserver/mips-cpu-valgrind-s2.xml m_gdbserver/mips-cpu.xml m_gdbserver/mips-linux.xml m_gdbserver/mips-linux-valgrind.xml m_gdbserver/mips-fpu-valgrind-s1.xml m_gdbserver/mips-fpu-valgrind-s2.xml m_gdbserver/mips-fpu.xml; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../coregrind/$f ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++Making check in .
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++mkdir -p ./.in_place
++rm -f ./.in_place/default.supp
++ln -s ../default.supp ./.in_place
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++Making check in memcheck
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++mkdir -p ../.in_place; \
++for f in memcheck-ppc64-linux memcheck-ppc32-linux vgpreload_memcheck-ppc64-linux.so vgpreload_memcheck-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../memcheck/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../memcheck/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make  accounting addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw big_blocks_freed_list brk2 buflen_check bug287260 calloc-overflow clientperm clireq_nofill clo_redzone custom_alloc custom-overlap deep-backtrace deep_templates describe-block doublefree error_counts errs1 exitprog execve1 execve2 erringfds err_disable1 err_disable2 err_disable3 err_disable4 file_locking fprw fwrite inits inline holey_buffer_too_small leak-0 leak-cases leak-cycle leak-delta leak-pool leak-tree long_namespace_xml long-supps mallinfo malloc_free_fill malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 match-overrun memalign_test memalign2 memcmptest mempool mempool2 mmaptest mismatches new_override metadata nanoleak_supp nanoleak2 new_nothrow noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 sbfragment sh-mem sh-mem-random sigaltstack signal2 sigprocmask static_malloc sigkill strchr str_tester supp_unknown supp1 supp2 suppfree test-plo trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_fbench vcpu_fnfns xml1 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev1 dw4
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT accounting.o -MD -MP -MF .deps/accounting.Tpo -c -o accounting.o accounting.c
++mv -f .deps/accounting.Tpo .deps/accounting.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o accounting accounting.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT addressable.o -MD -MP -MF .deps/addressable.Tpo -c -o addressable.o addressable.c
++mv -f .deps/addressable.Tpo .deps/addressable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o addressable addressable.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_incs-atomic_incs.o -MD -MP -MF .deps/atomic_incs-atomic_incs.Tpo -c -o atomic_incs-atomic_incs.o `test -f 'atomic_incs.c' || echo './'`atomic_incs.c
++mv -f .deps/atomic_incs-atomic_incs.Tpo .deps/atomic_incs-atomic_incs.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_incs atomic_incs-atomic_incs.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badaddrvalue.o -MD -MP -MF .deps/badaddrvalue.Tpo -c -o badaddrvalue.o badaddrvalue.c
++mv -f .deps/badaddrvalue.Tpo .deps/badaddrvalue.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badaddrvalue badaddrvalue.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badfree.o -MD -MP -MF .deps/badfree.Tpo -c -o badfree.o badfree.c
++mv -f .deps/badfree.Tpo .deps/badfree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badfree badfree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump.o -MD -MP -MF .deps/badjump.Tpo -c -o badjump.o badjump.c
++mv -f .deps/badjump.Tpo .deps/badjump.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump badjump.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump2.o -MD -MP -MF .deps/badjump2.Tpo -c -o badjump2.o badjump2.c
++mv -f .deps/badjump2.Tpo .deps/badjump2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump2 badjump2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badloop.o -MD -MP -MF .deps/badloop.Tpo -c -o badloop.o badloop.c
++mv -f .deps/badloop.Tpo .deps/badloop.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badloop badloop.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badpoll.o -MD -MP -MF .deps/badpoll.Tpo -c -o badpoll.o badpoll.c
++mv -f .deps/badpoll.Tpo .deps/badpoll.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badpoll badpoll.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badrw.o -MD -MP -MF .deps/badrw.Tpo -c -o badrw.o badrw.c
++mv -f .deps/badrw.Tpo .deps/badrw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badrw badrw.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big_blocks_freed_list.o -MD -MP -MF .deps/big_blocks_freed_list.Tpo -c -o big_blocks_freed_list.o big_blocks_freed_list.c
++mv -f .deps/big_blocks_freed_list.Tpo .deps/big_blocks_freed_list.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big_blocks_freed_list big_blocks_freed_list.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk2.o -MD -MP -MF .deps/brk2.Tpo -c -o brk2.o brk2.c
++mv -f .deps/brk2.Tpo .deps/brk2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk2 brk2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT buflen_check.o -MD -MP -MF .deps/buflen_check.Tpo -c -o buflen_check.o buflen_check.c
++mv -f .deps/buflen_check.Tpo .deps/buflen_check.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o buflen_check buflen_check.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug287260.o -MD -MP -MF .deps/bug287260.Tpo -c -o bug287260.o bug287260.c
++mv -f .deps/bug287260.Tpo .deps/bug287260.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug287260 bug287260.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT calloc-overflow.o -MD -MP -MF .deps/calloc-overflow.Tpo -c -o calloc-overflow.o calloc-overflow.c
++mv -f .deps/calloc-overflow.Tpo .deps/calloc-overflow.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o calloc-overflow calloc-overflow.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clientperm.o -MD -MP -MF .deps/clientperm.Tpo -c -o clientperm.o clientperm.c
++mv -f .deps/clientperm.Tpo .deps/clientperm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clientperm clientperm.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clireq_nofill.o -MD -MP -MF .deps/clireq_nofill.Tpo -c -o clireq_nofill.o clireq_nofill.c
++mv -f .deps/clireq_nofill.Tpo .deps/clireq_nofill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clireq_nofill clireq_nofill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clo_redzone.o -MD -MP -MF .deps/clo_redzone.Tpo -c -o clo_redzone.o clo_redzone.c
++mv -f .deps/clo_redzone.Tpo .deps/clo_redzone.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clo_redzone clo_redzone.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom-overlap.o -MD -MP -MF .deps/custom-overlap.Tpo -c -o custom-overlap.o custom-overlap.c
++mv -f .deps/custom-overlap.Tpo .deps/custom-overlap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom-overlap custom-overlap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep-backtrace.o -MD -MP -MF .deps/deep-backtrace.Tpo -c -o deep-backtrace.o deep-backtrace.c
++mv -f .deps/deep-backtrace.Tpo .deps/deep-backtrace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep-backtrace deep-backtrace.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep_templates-deep_templates.o -MD -MP -MF .deps/deep_templates-deep_templates.Tpo -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/deep_templates-deep_templates.Tpo .deps/deep_templates-deep_templates.Po
++g++ -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep_templates deep_templates-deep_templates.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT describe-block.o -MD -MP -MF .deps/describe-block.Tpo -c -o describe-block.o describe-block.c
++mv -f .deps/describe-block.Tpo .deps/describe-block.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o describe-block describe-block.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT doublefree.o -MD -MP -MF .deps/doublefree.Tpo -c -o doublefree.o doublefree.c
++mv -f .deps/doublefree.Tpo .deps/doublefree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o doublefree doublefree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT error_counts-error_counts.o -MD -MP -MF .deps/error_counts-error_counts.Tpo -c -o error_counts-error_counts.o `test -f 'error_counts.c' || echo './'`error_counts.c
++mv -f .deps/error_counts-error_counts.Tpo .deps/error_counts-error_counts.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o error_counts error_counts-error_counts.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT errs1.o -MD -MP -MF .deps/errs1.Tpo -c -o errs1.o errs1.c
++mv -f .deps/errs1.Tpo .deps/errs1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o errs1 errs1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exitprog.o -MD -MP -MF .deps/exitprog.Tpo -c -o exitprog.o exitprog.c
++mv -f .deps/exitprog.Tpo .deps/exitprog.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exitprog exitprog.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve1-execve1.o -MD -MP -MF .deps/execve1-execve1.Tpo -c -o execve1-execve1.o `test -f 'execve1.c' || echo './'`execve1.c
++mv -f .deps/execve1-execve1.Tpo .deps/execve1-execve1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve1 execve1-execve1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve2-execve2.o -MD -MP -MF .deps/execve2-execve2.Tpo -c -o execve2-execve2.o `test -f 'execve2.c' || echo './'`execve2.c
++mv -f .deps/execve2-execve2.Tpo .deps/execve2-execve2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve2 execve2-execve2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT erringfds.o -MD -MP -MF .deps/erringfds.Tpo -c -o erringfds.o erringfds.c
++mv -f .deps/erringfds.Tpo .deps/erringfds.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o erringfds erringfds.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable1.o -MD -MP -MF .deps/err_disable1.Tpo -c -o err_disable1.o err_disable1.c
++mv -f .deps/err_disable1.Tpo .deps/err_disable1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable1 err_disable1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable2.o -MD -MP -MF .deps/err_disable2.Tpo -c -o err_disable2.o err_disable2.c
++mv -f .deps/err_disable2.Tpo .deps/err_disable2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable2 err_disable2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable3.o -MD -MP -MF .deps/err_disable3.Tpo -c -o err_disable3.o err_disable3.c
++mv -f .deps/err_disable3.Tpo .deps/err_disable3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable3 err_disable3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable4.o -MD -MP -MF .deps/err_disable4.Tpo -c -o err_disable4.o err_disable4.c
++mv -f .deps/err_disable4.Tpo .deps/err_disable4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable4 err_disable4.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT file_locking.o -MD -MP -MF .deps/file_locking.Tpo -c -o file_locking.o file_locking.c
++mv -f .deps/file_locking.Tpo .deps/file_locking.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o file_locking file_locking.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fprw.o -MD -MP -MF .deps/fprw.Tpo -c -o fprw.o fprw.c
++mv -f .deps/fprw.Tpo .deps/fprw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fprw fprw.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fwrite.o -MD -MP -MF .deps/fwrite.Tpo -c -o fwrite.o fwrite.c
++mv -f .deps/fwrite.Tpo .deps/fwrite.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fwrite fwrite.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inits-inits.o -MD -MP -MF .deps/inits-inits.Tpo -c -o inits-inits.o `test -f 'inits.c' || echo './'`inits.c
++mv -f .deps/inits-inits.Tpo .deps/inits-inits.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inits inits-inits.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inline.o -MD -MP -MF .deps/inline.Tpo -c -o inline.o inline.c
++mv -f .deps/inline.Tpo .deps/inline.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inline inline.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT holey_buffer_too_small.o -MD -MP -MF .deps/holey_buffer_too_small.Tpo -c -o holey_buffer_too_small.o holey_buffer_too_small.c
++mv -f .deps/holey_buffer_too_small.Tpo .deps/holey_buffer_too_small.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o holey_buffer_too_small holey_buffer_too_small.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-0.o -MD -MP -MF .deps/leak-0.Tpo -c -o leak-0.o leak-0.c
++mv -f .deps/leak-0.Tpo .deps/leak-0.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-0 leak-0.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cases.o -MD -MP -MF .deps/leak-cases.Tpo -c -o leak-cases.o leak-cases.c
++mv -f .deps/leak-cases.Tpo .deps/leak-cases.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cases leak-cases.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cycle.o -MD -MP -MF .deps/leak-cycle.Tpo -c -o leak-cycle.o leak-cycle.c
++mv -f .deps/leak-cycle.Tpo .deps/leak-cycle.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cycle leak-cycle.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-delta.o -MD -MP -MF .deps/leak-delta.Tpo -c -o leak-delta.o leak-delta.c
++mv -f .deps/leak-delta.Tpo .deps/leak-delta.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-delta leak-delta.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-pool.o -MD -MP -MF .deps/leak-pool.Tpo -c -o leak-pool.o leak-pool.c
++mv -f .deps/leak-pool.Tpo .deps/leak-pool.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-pool leak-pool.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-tree.o -MD -MP -MF .deps/leak-tree.Tpo -c -o leak-tree.o leak-tree.c
++mv -f .deps/leak-tree.Tpo .deps/leak-tree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-tree leak-tree.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long_namespace_xml.o -MD -MP -MF .deps/long_namespace_xml.Tpo -c -o long_namespace_xml.o long_namespace_xml.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/long_namespace_xml.Tpo .deps/long_namespace_xml.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long_namespace_xml long_namespace_xml.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-supps.o -MD -MP -MF .deps/long-supps.Tpo -c -o long-supps.o long-supps.c
++mv -f .deps/long-supps.Tpo .deps/long-supps.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-supps long-supps.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mallinfo.o -MD -MP -MF .deps/mallinfo.Tpo -c -o mallinfo.o mallinfo.c
++mv -f .deps/mallinfo.Tpo .deps/mallinfo.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mallinfo mallinfo.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_free_fill.o -MD -MP -MF .deps/malloc_free_fill.Tpo -c -o malloc_free_fill.o malloc_free_fill.c
++mv -f .deps/malloc_free_fill.Tpo .deps/malloc_free_fill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_free_fill malloc_free_fill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
++mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc1.o -MD -MP -MF .deps/malloc1.Tpo -c -o malloc1.o malloc1.c
++mv -f .deps/malloc1.Tpo .deps/malloc1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc1 malloc1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc2.o -MD -MP -MF .deps/malloc2.Tpo -c -o malloc2.o malloc2.c
++mv -f .deps/malloc2.Tpo .deps/malloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc2 malloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc3.o -MD -MP -MF .deps/malloc3.Tpo -c -o malloc3.o malloc3.c
++mv -f .deps/malloc3.Tpo .deps/malloc3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc3 malloc3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel1-manuel1.o -MD -MP -MF .deps/manuel1-manuel1.Tpo -c -o manuel1-manuel1.o `test -f 'manuel1.c' || echo './'`manuel1.c
++mv -f .deps/manuel1-manuel1.Tpo .deps/manuel1-manuel1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel1 manuel1-manuel1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel2.o -MD -MP -MF .deps/manuel2.Tpo -c -o manuel2.o manuel2.c
++mv -f .deps/manuel2.Tpo .deps/manuel2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel2 manuel2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel3.o -MD -MP -MF .deps/manuel3.Tpo -c -o manuel3.o manuel3.c
++mv -f .deps/manuel3.Tpo .deps/manuel3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel3 manuel3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT match-overrun.o -MD -MP -MF .deps/match-overrun.Tpo -c -o match-overrun.o match-overrun.c
++mv -f .deps/match-overrun.Tpo .deps/match-overrun.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o match-overrun match-overrun.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign_test.o -MD -MP -MF .deps/memalign_test.Tpo -c -o memalign_test.o memalign_test.c
++mv -f .deps/memalign_test.Tpo .deps/memalign_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign_test memalign_test.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign2.o -MD -MP -MF .deps/memalign2.Tpo -c -o memalign2.o memalign2.c
++mv -f .deps/memalign2.Tpo .deps/memalign2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign2 memalign2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memcmptest-memcmptest.o -MD -MP -MF .deps/memcmptest-memcmptest.Tpo -c -o memcmptest-memcmptest.o `test -f 'memcmptest.c' || echo './'`memcmptest.c
++mv -f .deps/memcmptest-memcmptest.Tpo .deps/memcmptest-memcmptest.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memcmptest memcmptest-memcmptest.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool.o -MD -MP -MF .deps/mempool.Tpo -c -o mempool.o mempool.c
++mv -f .deps/mempool.Tpo .deps/mempool.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool mempool.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool2.o -MD -MP -MF .deps/mempool2.Tpo -c -o mempool2.o mempool2.c
++mv -f .deps/mempool2.Tpo .deps/mempool2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool2 mempool2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmaptest.o -MD -MP -MF .deps/mmaptest.Tpo -c -o mmaptest.o mmaptest.c
++mv -f .deps/mmaptest.Tpo .deps/mmaptest.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmaptest mmaptest.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mismatches.o -MD -MP -MF .deps/mismatches.Tpo -c -o mismatches.o mismatches.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/mismatches.Tpo .deps/mismatches.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mismatches mismatches.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_override.o -MD -MP -MF .deps/new_override.Tpo -c -o new_override.o new_override.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_override.Tpo .deps/new_override.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_override new_override.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT metadata.o -MD -MP -MF .deps/metadata.Tpo -c -o metadata.o metadata.c
++mv -f .deps/metadata.Tpo .deps/metadata.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o metadata metadata.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak_supp.o -MD -MP -MF .deps/nanoleak_supp.Tpo -c -o nanoleak_supp.o nanoleak_supp.c
++mv -f .deps/nanoleak_supp.Tpo .deps/nanoleak_supp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak_supp nanoleak_supp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak2.o -MD -MP -MF .deps/nanoleak2.Tpo -c -o nanoleak2.o nanoleak2.c
++mv -f .deps/nanoleak2.Tpo .deps/nanoleak2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak2 nanoleak2.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_nothrow.o -MD -MP -MF .deps/new_nothrow.Tpo -c -o new_nothrow.o new_nothrow.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_nothrow.Tpo .deps/new_nothrow.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_nothrow new_nothrow.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT noisy_child.o -MD -MP -MF .deps/noisy_child.Tpo -c -o noisy_child.o noisy_child.c
++mv -f .deps/noisy_child.Tpo .deps/noisy_child.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o noisy_child noisy_child.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null_socket.o -MD -MP -MF .deps/null_socket.Tpo -c -o null_socket.o null_socket.c
++mv -f .deps/null_socket.Tpo .deps/null_socket.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null_socket null_socket.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin1-yes.o -MD -MP -MF .deps/origin1-yes.Tpo -c -o origin1-yes.o origin1-yes.c
++mv -f .deps/origin1-yes.Tpo .deps/origin1-yes.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin1-yes origin1-yes.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin2_not_quite-origin2-not-quite.o -MD -MP -MF .deps/origin2_not_quite-origin2-not-quite.Tpo -c -o origin2_not_quite-origin2-not-quite.o `test -f 'origin2-not-quite.c' || echo './'`origin2-not-quite.c
++mv -f .deps/origin2_not_quite-origin2-not-quite.Tpo .deps/origin2_not_quite-origin2-not-quite.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin2-not-quite origin2_not_quite-origin2-not-quite.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin3_no-origin3-no.o -MD -MP -MF .deps/origin3_no-origin3-no.Tpo -c -o origin3_no-origin3-no.o `test -f 'origin3-no.c' || echo './'`origin3-no.c
++mv -f .deps/origin3_no-origin3-no.Tpo .deps/origin3_no-origin3-no.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin3-no origin3_no-origin3-no.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin4_many-origin4-many.o -MD -MP -MF .deps/origin4_many-origin4-many.Tpo -c -o origin4_many-origin4-many.o `test -f 'origin4-many.c' || echo './'`origin4-many.c
++mv -f .deps/origin4_many-origin4-many.Tpo .deps/origin4_many-origin4-many.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin4-many origin4_many-origin4-many.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin5_bz2-origin5-bz2.o -MD -MP -MF .deps/origin5_bz2-origin5-bz2.Tpo -c -o origin5_bz2-origin5-bz2.o `test -f 'origin5-bz2.c' || echo './'`origin5-bz2.c
++mv -f .deps/origin5_bz2-origin5-bz2.Tpo .deps/origin5_bz2-origin5-bz2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin5-bz2 origin5_bz2-origin5-bz2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin6_fp-origin6-fp.o -MD -MP -MF .deps/origin6_fp-origin6-fp.Tpo -c -o origin6_fp-origin6-fp.o `test -f 'origin6-fp.c' || echo './'`origin6-fp.c
++mv -f .deps/origin6_fp-origin6-fp.Tpo .deps/origin6_fp-origin6-fp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin6-fp origin6_fp-origin6-fp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overlap-overlap.o -MD -MP -MF .deps/overlap-overlap.Tpo -c -o overlap-overlap.o `test -f 'overlap.c' || echo './'`overlap.c
++mv -f .deps/overlap-overlap.Tpo .deps/overlap-overlap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overlap overlap-overlap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partiallydefinedeq.o -MD -MP -MF .deps/partiallydefinedeq.Tpo -c -o partiallydefinedeq.o partiallydefinedeq.c
++mv -f .deps/partiallydefinedeq.Tpo .deps/partiallydefinedeq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partiallydefinedeq partiallydefinedeq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partial_load.o -MD -MP -MF .deps/partial_load.Tpo -c -o partial_load.o partial_load.c
++mv -f .deps/partial_load.Tpo .deps/partial_load.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partial_load partial_load.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc.o -MD -MP -MF .deps/pdb-realloc.Tpo -c -o pdb-realloc.o pdb-realloc.c
++mv -f .deps/pdb-realloc.Tpo .deps/pdb-realloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc pdb-realloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc2.o -MD -MP -MF .deps/pdb-realloc2.Tpo -c -o pdb-realloc2.o pdb-realloc2.c
++mv -f .deps/pdb-realloc2.Tpo .deps/pdb-realloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc2 pdb-realloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pipe.o -MD -MP -MF .deps/pipe.Tpo -c -o pipe.o pipe.c
++mv -f .deps/pipe.Tpo .deps/pipe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pipe pipe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pointer-trace.o -MD -MP -MF .deps/pointer-trace.Tpo -c -o pointer-trace.o pointer-trace.c
++mv -f .deps/pointer-trace.Tpo .deps/pointer-trace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pointer-trace pointer-trace.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT post-syscall.o -MD -MP -MF .deps/post-syscall.Tpo -c -o post-syscall.o post-syscall.c
++mv -f .deps/post-syscall.Tpo .deps/post-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o post-syscall post-syscall.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc1.o -MD -MP -MF .deps/realloc1.Tpo -c -o realloc1.o realloc1.c
++mv -f .deps/realloc1.Tpo .deps/realloc1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc1 realloc1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc2.o -MD -MP -MF .deps/realloc2.Tpo -c -o realloc2.o realloc2.c
++mv -f .deps/realloc2.Tpo .deps/realloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc2 realloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc3.o -MD -MP -MF .deps/realloc3.Tpo -c -o realloc3.o realloc3.c
++mv -f .deps/realloc3.Tpo .deps/realloc3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc3 realloc3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sbfragment.o -MD -MP -MF .deps/sbfragment.Tpo -c -o sbfragment.o sbfragment.c
++mv -f .deps/sbfragment.Tpo .deps/sbfragment.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sbfragment sbfragment.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem.o -MD -MP -MF .deps/sh-mem.Tpo -c -o sh-mem.o sh-mem.c
++mv -f .deps/sh-mem.Tpo .deps/sh-mem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem sh-mem.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem-random.o -MD -MP -MF .deps/sh-mem-random.Tpo -c -o sh-mem-random.o sh-mem-random.c
++mv -f .deps/sh-mem-random.Tpo .deps/sh-mem-random.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem-random sh-mem-random.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigaltstack.o -MD -MP -MF .deps/sigaltstack.Tpo -c -o sigaltstack.o sigaltstack.c
++mv -f .deps/sigaltstack.Tpo .deps/sigaltstack.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigaltstack sigaltstack.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT signal2.o -MD -MP -MF .deps/signal2.Tpo -c -o signal2.o signal2.c
++mv -f .deps/signal2.Tpo .deps/signal2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o signal2 signal2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigprocmask.o -MD -MP -MF .deps/sigprocmask.Tpo -c -o sigprocmask.o sigprocmask.c
++mv -f .deps/sigprocmask.Tpo .deps/sigprocmask.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigprocmask sigprocmask.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT static_malloc.o -MD -MP -MF .deps/static_malloc.Tpo -c -o static_malloc.o static_malloc.c
++mv -f .deps/static_malloc.Tpo .deps/static_malloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o static_malloc static_malloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigkill.o -MD -MP -MF .deps/sigkill.Tpo -c -o sigkill.o sigkill.c
++mv -f .deps/sigkill.Tpo .deps/sigkill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigkill sigkill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT strchr.o -MD -MP -MF .deps/strchr.Tpo -c -o strchr.o strchr.c
++mv -f .deps/strchr.Tpo .deps/strchr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o strchr strchr.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT str_tester-str_tester.o -MD -MP -MF .deps/str_tester-str_tester.Tpo -c -o str_tester-str_tester.o `test -f 'str_tester.c' || echo './'`str_tester.c
++mv -f .deps/str_tester-str_tester.Tpo .deps/str_tester-str_tester.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o str_tester str_tester-str_tester.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp_unknown badjump.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT supp.o -MD -MP -MF .deps/supp.Tpo -c -o supp.o supp.c
++mv -f .deps/supp.Tpo .deps/supp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp1 supp.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp2 supp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT suppfree.o -MD -MP -MF .deps/suppfree.Tpo -c -o suppfree.o suppfree.c
++mv -f .deps/suppfree.Tpo .deps/suppfree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o suppfree suppfree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test-plo.o -MD -MP -MF .deps/test-plo.Tpo -c -o test-plo.o test-plo.c
++mv -f .deps/test-plo.Tpo .deps/test-plo.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test-plo test-plo.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trivialleak.o -MD -MP -MF .deps/trivialleak.Tpo -c -o trivialleak.o trivialleak.c
++mv -f .deps/trivialleak.Tpo .deps/trivialleak.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trivialleak trivialleak.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_libcbase.o -MD -MP -MF .deps/unit_libcbase.Tpo -c -o unit_libcbase.o unit_libcbase.c
++mv -f .deps/unit_libcbase.Tpo .deps/unit_libcbase.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_libcbase unit_libcbase.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_oset.o -MD -MP -MF .deps/unit_oset.Tpo -c -o unit_oset.o unit_oset.c
++mv -f .deps/unit_oset.Tpo .deps/unit_oset.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_oset unit_oset.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo1-varinfo1.o -MD -MP -MF .deps/varinfo1-varinfo1.Tpo -c -o varinfo1-varinfo1.o `test -f 'varinfo1.c' || echo './'`varinfo1.c
++mv -f .deps/varinfo1-varinfo1.Tpo .deps/varinfo1-varinfo1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo1 varinfo1-varinfo1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo2-varinfo2.o -MD -MP -MF .deps/varinfo2-varinfo2.Tpo -c -o varinfo2-varinfo2.o `test -f 'varinfo2.c' || echo './'`varinfo2.c
++mv -f .deps/varinfo2-varinfo2.Tpo .deps/varinfo2-varinfo2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo2 varinfo2-varinfo2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo3-varinfo3.o -MD -MP -MF .deps/varinfo3-varinfo3.Tpo -c -o varinfo3-varinfo3.o `test -f 'varinfo3.c' || echo './'`varinfo3.c
++mv -f .deps/varinfo3-varinfo3.Tpo .deps/varinfo3-varinfo3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo3 varinfo3-varinfo3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo4-varinfo4.o -MD -MP -MF .deps/varinfo4-varinfo4.Tpo -c -o varinfo4-varinfo4.o `test -f 'varinfo4.c' || echo './'`varinfo4.c
++mv -f .deps/varinfo4-varinfo4.Tpo .deps/varinfo4-varinfo4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo4 varinfo4-varinfo4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5-varinfo5.o -MD -MP -MF .deps/varinfo5-varinfo5.Tpo -c -o varinfo5-varinfo5.o `test -f 'varinfo5.c' || echo './'`varinfo5.c
++mv -f .deps/varinfo5-varinfo5.Tpo .deps/varinfo5-varinfo5.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5so_so-varinfo5so.o -MD -MP -MF .deps/varinfo5so_so-varinfo5so.Tpo -c -o varinfo5so_so-varinfo5so.o `test -f 'varinfo5so.c' || echo './'`varinfo5so.c
++mv -f .deps/varinfo5so_so-varinfo5so.Tpo .deps/varinfo5so_so-varinfo5so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,varinfo5so.so  -o varinfo5so.so varinfo5so_so-varinfo5so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o varinfo5 varinfo5-varinfo5.o varinfo5so.so 
++make[5]: `varinfo5so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo6-varinfo6.o -MD -MP -MF .deps/varinfo6-varinfo6.Tpo -c -o varinfo6-varinfo6.o `test -f 'varinfo6.c' || echo './'`varinfo6.c
++mv -f .deps/varinfo6-varinfo6.Tpo .deps/varinfo6-varinfo6.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo6 varinfo6-varinfo6.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fbench-vcpu_fbench.o -MD -MP -MF .deps/vcpu_fbench-vcpu_fbench.Tpo -c -o vcpu_fbench-vcpu_fbench.o `test -f 'vcpu_fbench.c' || echo './'`vcpu_fbench.c
++mv -f .deps/vcpu_fbench-vcpu_fbench.Tpo .deps/vcpu_fbench-vcpu_fbench.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fbench vcpu_fbench-vcpu_fbench.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fnfns-vcpu_fnfns.o -MD -MP -MF .deps/vcpu_fnfns-vcpu_fnfns.Tpo -c -o vcpu_fnfns-vcpu_fnfns.o `test -f 'vcpu_fnfns.c' || echo './'`vcpu_fnfns.c
++mv -f .deps/vcpu_fnfns-vcpu_fnfns.Tpo .deps/vcpu_fnfns-vcpu_fnfns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fnfns vcpu_fnfns-vcpu_fnfns.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xml1.o -MD -MP -MF .deps/xml1.Tpo -c -o xml1.o xml1.c
++mv -f .deps/xml1.Tpo .deps/xml1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xml1 xml1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap1.o -MD -MP -MF .deps/wrap1.Tpo -c -o wrap1.o wrap1.c
++mv -f .deps/wrap1.Tpo .deps/wrap1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap1 wrap1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap2.o -MD -MP -MF .deps/wrap2.Tpo -c -o wrap2.o wrap2.c
++mv -f .deps/wrap2.Tpo .deps/wrap2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap2 wrap2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap3.o -MD -MP -MF .deps/wrap3.Tpo -c -o wrap3.o wrap3.c
++mv -f .deps/wrap3.Tpo .deps/wrap3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap3 wrap3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap4.o -MD -MP -MF .deps/wrap4.Tpo -c -o wrap4.o wrap4.c
++mv -f .deps/wrap4.Tpo .deps/wrap4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap4 wrap4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap5.o -MD -MP -MF .deps/wrap5.Tpo -c -o wrap5.o wrap5.c
++mv -f .deps/wrap5.Tpo .deps/wrap5.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap5 wrap5.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap6-wrap6.o -MD -MP -MF .deps/wrap6-wrap6.Tpo -c -o wrap6-wrap6.o `test -f 'wrap6.c' || echo './'`wrap6.c
++mv -f .deps/wrap6-wrap6.Tpo .deps/wrap6-wrap6.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap6 wrap6-wrap6.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7.o -MD -MP -MF .deps/wrap7.Tpo -c -o wrap7.o wrap7.c
++mv -f .deps/wrap7.Tpo .deps/wrap7.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7so_so-wrap7so.o -MD -MP -MF .deps/wrap7so_so-wrap7so.Tpo -c -o wrap7so_so-wrap7so.o `test -f 'wrap7so.c' || echo './'`wrap7so.c
++mv -f .deps/wrap7so_so-wrap7so.Tpo .deps/wrap7so_so-wrap7so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,wrap7so.so  -o wrap7so.so wrap7so_so-wrap7so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o wrap7 wrap7.o wrap7so.so 
++make[5]: `wrap7so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap8.o -MD -MP -MF .deps/wrap8.Tpo -c -o wrap8.o wrap8.c
++mv -f .deps/wrap8.Tpo .deps/wrap8.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap8 wrap8.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT writev1.o -MD -MP -MF .deps/writev1.Tpo -c -o writev1.o writev1.c
++mv -f .deps/writev1.Tpo .deps/writev1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o writev1 writev1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dw4-dw4.o -MD -MP -MF .deps/dw4-dw4.Tpo -c -o dw4-dw4.o `test -f 'dw4.c' || echo './'`dw4.c
++mv -f .deps/dw4-dw4.Tpo .deps/dw4-dw4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dw4 dw4-dw4.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[5]: Warning: File `.deps/xml1.Po' has modification time 59 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++Making check in ppc32
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make  power_ISA2_05
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
++mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
++gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++Making check in ppc64
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make  power_ISA2_05
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
++mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
++gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++Making check in linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make  brk capget lsframe1 lsframe2 sigqueue stack_changes stack_switch syscalls-2007 syslog-syscall timerfd-syscall
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk.o -MD -MP -MF .deps/brk.Tpo -c -o brk.o brk.c
++mv -f .deps/brk.Tpo .deps/brk.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk brk.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT capget.o -MD -MP -MF .deps/capget.Tpo -c -o capget.o capget.c
++mv -f .deps/capget.Tpo .deps/capget.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o capget capget.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe1.o -MD -MP -MF .deps/lsframe1.Tpo -c -o lsframe1.o lsframe1.c
++mv -f .deps/lsframe1.Tpo .deps/lsframe1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe1 lsframe1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe2.o -MD -MP -MF .deps/lsframe2.Tpo -c -o lsframe2.o lsframe2.c
++mv -f .deps/lsframe2.Tpo .deps/lsframe2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe2 lsframe2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigqueue.o -MD -MP -MF .deps/sigqueue.Tpo -c -o sigqueue.o sigqueue.c
++mv -f .deps/sigqueue.Tpo .deps/sigqueue.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigqueue sigqueue.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_changes.o -MD -MP -MF .deps/stack_changes.Tpo -c -o stack_changes.o stack_changes.c
++mv -f .deps/stack_changes.Tpo .deps/stack_changes.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_changes stack_changes.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_switch.o -MD -MP -MF .deps/stack_switch.Tpo -c -o stack_switch.o stack_switch.c
++mv -f .deps/stack_switch.Tpo .deps/stack_switch.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_switch stack_switch.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscalls-2007.o -MD -MP -MF .deps/syscalls-2007.Tpo -c -o syscalls-2007.o syscalls-2007.c
++mv -f .deps/syscalls-2007.Tpo .deps/syscalls-2007.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscalls-2007 syscalls-2007.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog-syscall.o -MD -MP -MF .deps/syslog-syscall.Tpo -c -o syslog-syscall.o syslog-syscall.c
++mv -f .deps/syslog-syscall.Tpo .deps/syslog-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog-syscall syslog-syscall.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timerfd-syscall.o -MD -MP -MF .deps/timerfd-syscall.Tpo -c -o timerfd-syscall.o timerfd-syscall.c
++mv -f .deps/timerfd-syscall.Tpo .deps/timerfd-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timerfd-syscall timerfd-syscall.o -lrt 
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in cachegrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++mkdir -p ../.in_place; \
++for f in cachegrind-ppc64-linux cachegrind-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../cachegrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../cachegrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make  chdir clreq dlclose myprint.so
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT chdir.o -MD -MP -MF .deps/chdir.Tpo -c -o chdir.o chdir.c
++mv -f .deps/chdir.Tpo .deps/chdir.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o chdir chdir.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
++mv -f .deps/clreq.Tpo .deps/clreq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dlclose.o -MD -MP -MF .deps/dlclose.Tpo -c -o dlclose.o dlclose.c
++mv -f .deps/dlclose.Tpo .deps/dlclose.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dlclose dlclose.o -ldl 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT myprint_so-myprint.o -MD -MP -MF .deps/myprint_so-myprint.Tpo -c -o myprint_so-myprint.o `test -f 'myprint.c' || echo './'`myprint.c
++mv -f .deps/myprint_so-myprint.Tpo .deps/myprint_so-myprint.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Winline -Wall -Wshadow -g -m64 -shared -fPIC  -o myprint.so myprint_so-myprint.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in callgrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++mkdir -p ../.in_place; \
++for f in callgrind-ppc64-linux callgrind-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../callgrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../callgrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make  clreq simwork threads
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
++mv -f .deps/clreq.Tpo .deps/clreq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT simwork.o -MD -MP -MF .deps/simwork.Tpo -c -o simwork.o simwork.c
++mv -f .deps/simwork.Tpo .deps/simwork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o simwork simwork.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threads.o -MD -MP -MF .deps/threads.Tpo -c -o threads.o threads.c
++mv -f .deps/threads.Tpo .deps/threads.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threads threads.o -lpthread 
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[5]: Warning: File `.deps/threads.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in massif
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++mkdir -p ../.in_place; \
++for f in massif-ppc64-linux massif-ppc32-linux vgpreload_massif-ppc64-linux.so vgpreload_massif-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../massif/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../massif/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make  alloc-fns basic big-alloc culling1 culling2 custom_alloc deep ignored ignoring insig long-names long-time malloc_usable new-cpp null one overloaded-new pages_as_heap peak realloc thresholds zero
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT alloc-fns.o -MD -MP -MF .deps/alloc-fns.Tpo -c -o alloc-fns.o alloc-fns.c
++mv -f .deps/alloc-fns.Tpo .deps/alloc-fns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o alloc-fns alloc-fns.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT basic.o -MD -MP -MF .deps/basic.Tpo -c -o basic.o basic.c
++mv -f .deps/basic.Tpo .deps/basic.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o basic basic.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big-alloc.o -MD -MP -MF .deps/big-alloc.Tpo -c -o big-alloc.o big-alloc.c
++mv -f .deps/big-alloc.Tpo .deps/big-alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big-alloc big-alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling1.o -MD -MP -MF .deps/culling1.Tpo -c -o culling1.o culling1.c
++mv -f .deps/culling1.Tpo .deps/culling1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling1 culling1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling2.o -MD -MP -MF .deps/culling2.Tpo -c -o culling2.o culling2.c
++mv -f .deps/culling2.Tpo .deps/culling2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling2 culling2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep.o -MD -MP -MF .deps/deep.Tpo -c -o deep.o deep.c
++mv -f .deps/deep.Tpo .deps/deep.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep deep.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignored.o -MD -MP -MF .deps/ignored.Tpo -c -o ignored.o ignored.c
++mv -f .deps/ignored.Tpo .deps/ignored.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignored ignored.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignoring.o -MD -MP -MF .deps/ignoring.Tpo -c -o ignoring.o ignoring.c
++mv -f .deps/ignoring.Tpo .deps/ignoring.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignoring ignoring.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT insig.o -MD -MP -MF .deps/insig.Tpo -c -o insig.o insig.c
++mv -f .deps/insig.Tpo .deps/insig.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o insig insig.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-names.o -MD -MP -MF .deps/long-names.Tpo -c -o long-names.o long-names.c
++mv -f .deps/long-names.Tpo .deps/long-names.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-names long-names.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-time.o -MD -MP -MF .deps/long-time.Tpo -c -o long-time.o long-time.c
++mv -f .deps/long-time.Tpo .deps/long-time.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-time long-time.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
++mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new-cpp.o -MD -MP -MF .deps/new-cpp.Tpo -c -o new-cpp.o new-cpp.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new-cpp.Tpo .deps/new-cpp.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new-cpp new-cpp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null.o -MD -MP -MF .deps/null.Tpo -c -o null.o null.c
++mv -f .deps/null.Tpo .deps/null.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null null.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT one.o -MD -MP -MF .deps/one.Tpo -c -o one.o one.c
++mv -f .deps/one.Tpo .deps/one.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o one one.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overloaded-new.o -MD -MP -MF .deps/overloaded-new.Tpo -c -o overloaded-new.o overloaded-new.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/overloaded-new.Tpo .deps/overloaded-new.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overloaded-new overloaded-new.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pages_as_heap.o -MD -MP -MF .deps/pages_as_heap.Tpo -c -o pages_as_heap.o pages_as_heap.c
++mv -f .deps/pages_as_heap.Tpo .deps/pages_as_heap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pages_as_heap pages_as_heap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT peak.o -MD -MP -MF .deps/peak.Tpo -c -o peak.o peak.c
++mv -f .deps/peak.Tpo .deps/peak.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o peak peak.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc.o -MD -MP -MF .deps/realloc.Tpo -c -o realloc.o realloc.c
++mv -f .deps/realloc.Tpo .deps/realloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc realloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thresholds.o -MD -MP -MF .deps/thresholds.Tpo -c -o thresholds.o thresholds.c
++mv -f .deps/thresholds.Tpo .deps/thresholds.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thresholds thresholds.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT zero.o -MD -MP -MF .deps/zero.Tpo -c -o zero.o zero.c
++mv -f .deps/zero.Tpo .deps/zero.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o zero zero.o  
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[4]: Warning: File `.deps/zero.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in lackey
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++mkdir -p ../.in_place; \
++for f in lackey-ppc64-linux lackey-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../lackey/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../lackey/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
++make[3]: Nothing to be done for `check'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in none
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++mkdir -p ../.in_place; \
++for f in none-ppc64-linux none-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../none/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../none/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make  ansi args async-sigs bitfield1 bug129866 closeall coolo_strlen discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip mmap_fcntl_bug munmap_exe map_unaligned map_unmap mq nestedfns pending procfs-cmdline-exe pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_stackalign rcrl readline1 require-text-symbol res_search resolv rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts stackgrowth sigstackgrowth syscall-restart1 syscall-restart2 syslog system threaded-fork threadederrno timestamp tls tls.so tls2.so valgrind_cpp_test vgprintf coolo_sigaction gxx304 process_vm_readv_writev manythreads thread-exits rlimit64_nofile 
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ansi-ansi.o -MD -MP -MF .deps/ansi-ansi.Tpo -c -o ansi-ansi.o `test -f 'ansi.c' || echo './'`ansi.c
++mv -f .deps/ansi-ansi.Tpo .deps/ansi-ansi.Po
++gcc -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ansi ansi-ansi.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT args.o -MD -MP -MF .deps/args.Tpo -c -o args.o args.c
++mv -f .deps/args.Tpo .deps/args.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o args args.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT async-sigs.o -MD -MP -MF .deps/async-sigs.Tpo -c -o async-sigs.o async-sigs.c
++mv -f .deps/async-sigs.Tpo .deps/async-sigs.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o async-sigs async-sigs.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bitfield1.o -MD -MP -MF .deps/bitfield1.Tpo -c -o bitfield1.o bitfield1.c
++mv -f .deps/bitfield1.Tpo .deps/bitfield1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bitfield1 bitfield1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129866.o -MD -MP -MF .deps/bug129866.Tpo -c -o bug129866.o bug129866.c
++mv -f .deps/bug129866.Tpo .deps/bug129866.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129866 bug129866.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT closeall.o -MD -MP -MF .deps/closeall.Tpo -c -o closeall.o closeall.c
++mv -f .deps/closeall.Tpo .deps/closeall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o closeall closeall.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_strlen.o -MD -MP -MF .deps/coolo_strlen.Tpo -c -o coolo_strlen.o coolo_strlen.c
++mv -f .deps/coolo_strlen.Tpo .deps/coolo_strlen.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_strlen coolo_strlen.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT discard.o -MD -MP -MF .deps/discard.Tpo -c -o discard.o discard.c
++mv -f .deps/discard.Tpo .deps/discard.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o discard discard.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exec-sigmask.o -MD -MP -MF .deps/exec-sigmask.Tpo -c -o exec-sigmask.o exec-sigmask.c
++mv -f .deps/exec-sigmask.Tpo .deps/exec-sigmask.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exec-sigmask exec-sigmask.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve-execve.o -MD -MP -MF .deps/execve-execve.Tpo -c -o execve-execve.o `test -f 'execve.c' || echo './'`execve.c
++mv -f .deps/execve-execve.Tpo .deps/execve-execve.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve execve-execve.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT faultstatus.o -MD -MP -MF .deps/faultstatus.Tpo -c -o faultstatus.o faultstatus.c
++mv -f .deps/faultstatus.Tpo .deps/faultstatus.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o faultstatus faultstatus.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fcntl_setown.o -MD -MP -MF .deps/fcntl_setown.Tpo -c -o fcntl_setown.o fcntl_setown.c
++mv -f .deps/fcntl_setown.Tpo .deps/fcntl_setown.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fcntl_setown fcntl_setown.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_cmsg.o -MD -MP -MF .deps/fdleak_cmsg.Tpo -c -o fdleak_cmsg.o fdleak_cmsg.c
++mv -f .deps/fdleak_cmsg.Tpo .deps/fdleak_cmsg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_cmsg fdleak_cmsg.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_creat.o -MD -MP -MF .deps/fdleak_creat.Tpo -c -o fdleak_creat.o fdleak_creat.c
++mv -f .deps/fdleak_creat.Tpo .deps/fdleak_creat.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_creat fdleak_creat.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup.o -MD -MP -MF .deps/fdleak_dup.Tpo -c -o fdleak_dup.o fdleak_dup.c
++mv -f .deps/fdleak_dup.Tpo .deps/fdleak_dup.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup fdleak_dup.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup2.o -MD -MP -MF .deps/fdleak_dup2.Tpo -c -o fdleak_dup2.o fdleak_dup2.c
++mv -f .deps/fdleak_dup2.Tpo .deps/fdleak_dup2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup2 fdleak_dup2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_fcntl.o -MD -MP -MF .deps/fdleak_fcntl.Tpo -c -o fdleak_fcntl.o fdleak_fcntl.c
++mv -f .deps/fdleak_fcntl.Tpo .deps/fdleak_fcntl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_fcntl fdleak_fcntl.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_ipv4.o -MD -MP -MF .deps/fdleak_ipv4.Tpo -c -o fdleak_ipv4.o fdleak_ipv4.c
++mv -f .deps/fdleak_ipv4.Tpo .deps/fdleak_ipv4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_ipv4 fdleak_ipv4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_open.o -MD -MP -MF .deps/fdleak_open.Tpo -c -o fdleak_open.o fdleak_open.c
++mv -f .deps/fdleak_open.Tpo .deps/fdleak_open.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_open fdleak_open.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_pipe.o -MD -MP -MF .deps/fdleak_pipe.Tpo -c -o fdleak_pipe.o fdleak_pipe.c
++mv -f .deps/fdleak_pipe.Tpo .deps/fdleak_pipe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_pipe fdleak_pipe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_socketpair.o -MD -MP -MF .deps/fdleak_socketpair.Tpo -c -o fdleak_socketpair.o fdleak_socketpair.c
++mv -f .deps/fdleak_socketpair.Tpo .deps/fdleak_socketpair.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_socketpair fdleak_socketpair.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT floored.o -MD -MP -MF .deps/floored.Tpo -c -o floored.o floored.c
++mv -f .deps/floored.Tpo .deps/floored.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o floored floored.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork.o -MD -MP -MF .deps/fork.Tpo -c -o fork.o fork.c
++mv -f .deps/fork.Tpo .deps/fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork fork.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fucomip.o -MD -MP -MF .deps/fucomip.Tpo -c -o fucomip.o fucomip.c
++mv -f .deps/fucomip.Tpo .deps/fucomip.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fucomip fucomip.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmap_fcntl_bug.o -MD -MP -MF .deps/mmap_fcntl_bug.Tpo -c -o mmap_fcntl_bug.o mmap_fcntl_bug.c
++mv -f .deps/mmap_fcntl_bug.Tpo .deps/mmap_fcntl_bug.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmap_fcntl_bug mmap_fcntl_bug.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT munmap_exe.o -MD -MP -MF .deps/munmap_exe.Tpo -c -o munmap_exe.o munmap_exe.c
++mv -f .deps/munmap_exe.Tpo .deps/munmap_exe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o munmap_exe munmap_exe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unaligned.o -MD -MP -MF .deps/map_unaligned.Tpo -c -o map_unaligned.o map_unaligned.c
++mv -f .deps/map_unaligned.Tpo .deps/map_unaligned.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unaligned map_unaligned.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unmap.o -MD -MP -MF .deps/map_unmap.Tpo -c -o map_unmap.o map_unmap.c
++mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unmap map_unmap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c
++mv -f .deps/mq.Tpo .deps/mq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mq mq.o -lrt 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c
++mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nestedfns nestedfns-nestedfns.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c
++mv -f .deps/pending.Tpo .deps/pending.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pending pending.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c
++mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o procfs-cmdline-exe procfs-cmdline-exe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c
++mv -f .deps/pth_atfork1.Tpo .deps/pth_atfork1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_atfork1 pth_atfork1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_blockedsig.o -MD -MP -MF .deps/pth_blockedsig.Tpo -c -o pth_blockedsig.o pth_blockedsig.c
++mv -f .deps/pth_blockedsig.Tpo .deps/pth_blockedsig.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_blockedsig pth_blockedsig.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel1-pth_cancel1.o -MD -MP -MF .deps/pth_cancel1-pth_cancel1.Tpo -c -o pth_cancel1-pth_cancel1.o `test -f 'pth_cancel1.c' || echo './'`pth_cancel1.c
++mv -f .deps/pth_cancel1-pth_cancel1.Tpo .deps/pth_cancel1-pth_cancel1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel1 pth_cancel1-pth_cancel1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel2.o -MD -MP -MF .deps/pth_cancel2.Tpo -c -o pth_cancel2.o pth_cancel2.c
++mv -f .deps/pth_cancel2.Tpo .deps/pth_cancel2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel2 pth_cancel2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cvsimple.o -MD -MP -MF .deps/pth_cvsimple.Tpo -c -o pth_cvsimple.o pth_cvsimple.c
++mv -f .deps/pth_cvsimple.Tpo .deps/pth_cvsimple.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cvsimple pth_cvsimple.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_empty.o -MD -MP -MF .deps/pth_empty.Tpo -c -o pth_empty.o pth_empty.c
++mv -f .deps/pth_empty.Tpo .deps/pth_empty.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_empty pth_empty.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit.o -MD -MP -MF .deps/pth_exit.Tpo -c -o pth_exit.o pth_exit.c
++mv -f .deps/pth_exit.Tpo .deps/pth_exit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit pth_exit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit2.o -MD -MP -MF .deps/pth_exit2.Tpo -c -o pth_exit2.o pth_exit2.c
++mv -f .deps/pth_exit2.Tpo .deps/pth_exit2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit2 pth_exit2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutexspeed.o -MD -MP -MF .deps/pth_mutexspeed.Tpo -c -o pth_mutexspeed.o pth_mutexspeed.c
++mv -f .deps/pth_mutexspeed.Tpo .deps/pth_mutexspeed.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutexspeed pth_mutexspeed.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_once.o -MD -MP -MF .deps/pth_once.Tpo -c -o pth_once.o pth_once.c
++mv -f .deps/pth_once.Tpo .deps/pth_once.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_once pth_once.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_rwlock.o -MD -MP -MF .deps/pth_rwlock.Tpo -c -o pth_rwlock.o pth_rwlock.c
++mv -f .deps/pth_rwlock.Tpo .deps/pth_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_rwlock pth_rwlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_stackalign.o -MD -MP -MF .deps/pth_stackalign.Tpo -c -o pth_stackalign.o pth_stackalign.c
++mv -f .deps/pth_stackalign.Tpo .deps/pth_stackalign.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_stackalign pth_stackalign.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rcrl.o -MD -MP -MF .deps/rcrl.Tpo -c -o rcrl.o rcrl.c
++mv -f .deps/rcrl.Tpo .deps/rcrl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rcrl rcrl.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT readline1.o -MD -MP -MF .deps/readline1.Tpo -c -o readline1.o readline1.c
++mv -f .deps/readline1.Tpo .deps/readline1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o readline1 readline1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT require-text-symbol.o -MD -MP -MF .deps/require-text-symbol.Tpo -c -o require-text-symbol.o require-text-symbol.c
++mv -f .deps/require-text-symbol.Tpo .deps/require-text-symbol.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o require-text-symbol require-text-symbol.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT res_search.o -MD -MP -MF .deps/res_search.Tpo -c -o res_search.o res_search.c
++mv -f .deps/res_search.Tpo .deps/res_search.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o res_search res_search.o -lresolv -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT resolv.o -MD -MP -MF .deps/resolv.Tpo -c -o resolv.o resolv.c
++mv -f .deps/resolv.Tpo .deps/resolv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o resolv resolv.o -lresolv -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c
++mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit_nofile rlimit_nofile.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c
++mv -f .deps/selfrun.Tpo .deps/selfrun.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o selfrun selfrun.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c
++mv -f .deps/sem.Tpo .deps/sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem sem.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c
++mv -f .deps/semlimit.Tpo .deps/semlimit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o semlimit semlimit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c
++mv -f .deps/sha1_test.Tpo .deps/sha1_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sha1_test sha1_test.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shortpush.o -MD -MP -MF .deps/shortpush.Tpo -c -o shortpush.o shortpush.c
++mv -f .deps/shortpush.Tpo .deps/shortpush.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shortpush shortpush.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shorts.o -MD -MP -MF .deps/shorts.Tpo -c -o shorts.o shorts.c
++mv -f .deps/shorts.Tpo .deps/shorts.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shorts shorts.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackgrowth.o -MD -MP -MF .deps/stackgrowth.Tpo -c -o stackgrowth.o stackgrowth.c
++mv -f .deps/stackgrowth.Tpo .deps/stackgrowth.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackgrowth stackgrowth.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigstackgrowth.o -MD -MP -MF .deps/sigstackgrowth.Tpo -c -o sigstackgrowth.o sigstackgrowth.c
++mv -f .deps/sigstackgrowth.Tpo .deps/sigstackgrowth.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigstackgrowth sigstackgrowth.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart1.o -MD -MP -MF .deps/syscall-restart1.Tpo -c -o syscall-restart1.o syscall-restart1.c
++mv -f .deps/syscall-restart1.Tpo .deps/syscall-restart1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart1 syscall-restart1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart2.o -MD -MP -MF .deps/syscall-restart2.Tpo -c -o syscall-restart2.o syscall-restart2.c
++mv -f .deps/syscall-restart2.Tpo .deps/syscall-restart2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart2 syscall-restart2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog.o -MD -MP -MF .deps/syslog.Tpo -c -o syslog.o syslog.c
++mv -f .deps/syslog.Tpo .deps/syslog.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog syslog.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT system.o -MD -MP -MF .deps/system.Tpo -c -o system.o system.c
++mv -f .deps/system.Tpo .deps/system.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o system system.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
++mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threadederrno.o -MD -MP -MF .deps/threadederrno.Tpo -c -o threadederrno.o threadederrno.c
++mv -f .deps/threadederrno.Tpo .deps/threadederrno.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threadederrno threadederrno.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timestamp.o -MD -MP -MF .deps/timestamp.Tpo -c -o timestamp.o timestamp.c
++mv -f .deps/timestamp.Tpo .deps/timestamp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timestamp timestamp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls.o -MD -MP -MF .deps/tls.Tpo -c -o tls.o tls.c
++mv -f .deps/tls.Tpo .deps/tls.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2.o -MD -MP -MF .deps/tls2.Tpo -c -o tls2.o tls2.c
++mv -f .deps/tls2.Tpo .deps/tls2.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls_so-tls_so.o -MD -MP -MF .deps/tls_so-tls_so.Tpo -c -o tls_so-tls_so.o `test -f 'tls_so.c' || echo './'`tls_so.c
++mv -f .deps/tls_so-tls_so.Tpo .deps/tls_so-tls_so.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2_so.o -MD -MP -MF .deps/tls2_so.Tpo -c -o tls2_so.o tls2_so.c
++mv -f .deps/tls2_so.Tpo .deps/tls2_so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -shared  -o tls2.so tls2_so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests -shared -fPIC  -o tls.so tls_so-tls_so.o tls2.so 
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests  -o tls tls.o tls2.o tls.so tls2.so -lpthread 
++make[5]: `tls.so' is up to date.
++make[5]: `tls2.so' is up to date.
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT valgrind_cpp_test.o -MD -MP -MF .deps/valgrind_cpp_test.Tpo -c -o valgrind_cpp_test.o valgrind_cpp_test.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/valgrind_cpp_test.Tpo .deps/valgrind_cpp_test.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o valgrind_cpp_test valgrind_cpp_test.o -lstdc++ 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vgprintf.o -MD -MP -MF .deps/vgprintf.Tpo -c -o vgprintf.o vgprintf.c
++mv -f .deps/vgprintf.Tpo .deps/vgprintf.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vgprintf vgprintf.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_sigaction.o -MD -MP -MF .deps/coolo_sigaction.Tpo -c -o coolo_sigaction.o coolo_sigaction.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/coolo_sigaction.Tpo .deps/coolo_sigaction.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_sigaction coolo_sigaction.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT gxx304.o -MD -MP -MF .deps/gxx304.Tpo -c -o gxx304.o gxx304.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/gxx304.Tpo .deps/gxx304.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o gxx304 gxx304.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT process_vm_readv_writev.o -MD -MP -MF .deps/process_vm_readv_writev.Tpo -c -o process_vm_readv_writev.o process_vm_readv_writev.c
++mv -f .deps/process_vm_readv_writev.Tpo .deps/process_vm_readv_writev.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o process_vm_readv_writev process_vm_readv_writev.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manythreads.o -MD -MP -MF .deps/manythreads.Tpo -c -o manythreads.o manythreads.c
++mv -f .deps/manythreads.Tpo .deps/manythreads.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manythreads manythreads.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread-exits.o -MD -MP -MF .deps/thread-exits.Tpo -c -o thread-exits.o thread-exits.c
++mv -f .deps/thread-exits.Tpo .deps/thread-exits.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread-exits thread-exits.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit64_nofile.o -MD -MP -MF .deps/rlimit64_nofile.Tpo -c -o rlimit64_nofile.o rlimit64_nofile.c
++mv -f .deps/rlimit64_nofile.Tpo .deps/rlimit64_nofile.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit64_nofile rlimit64_nofile.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 62 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++Making check in ppc32
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make  allexec bug129390-ppc32 bug139050-ppc32 ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
++mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129390-ppc32.o -MD -MP -MF .deps/bug129390-ppc32.Tpo -c -o bug129390-ppc32.o bug129390-ppc32.c
++mv -f .deps/bug129390-ppc32.Tpo .deps/bug129390-ppc32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129390-ppc32 bug129390-ppc32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug139050-ppc32.o -MD -MP -MF .deps/bug139050-ppc32.Tpo -c -o bug139050-ppc32.o bug139050-ppc32.c
++mv -f .deps/bug139050-ppc32.Tpo .deps/bug139050-ppc32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug139050-ppc32 bug139050-ppc32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ldstrev.o -MD -MP -MF .deps/ldstrev.Tpo -c -o ldstrev.o ldstrev.c
++mv -f .deps/ldstrev.Tpo .deps/ldstrev.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ldstrev ldstrev.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
++mv -f .deps/lsw.Tpo .deps/lsw.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
++mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mftocrf.o -MD -MP -MF .deps/mftocrf.Tpo -c -o mftocrf.o mftocrf.c
++mv -f .deps/mftocrf.Tpo .deps/mftocrf.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mftocrf mftocrf.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mcrfs.o -MD -MP -MF .deps/mcrfs.Tpo -c -o mcrfs.o mcrfs.c
++mv -f .deps/mcrfs.Tpo .deps/mcrfs.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mcrfs mcrfs.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
++mv -f .deps/round.Tpo .deps/round.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_fx.o -MD -MP -MF .deps/test_fx.Tpo -c -o test_fx.o test_fx.c
++mv -f .deps/test_fx.Tpo .deps/test_fx.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_fx test_fx.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_gx.o -MD -MP -MF .deps/test_gx.Tpo -c -o test_gx.o test_gx.c
++mv -f .deps/test_gx.Tpo .deps/test_gx.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_gx test_gx.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT testVMX-testVMX.o -MD -MP -MF .deps/testVMX-testVMX.Tpo -c -o testVMX-testVMX.o `test -f 'testVMX.c' || echo './'`testVMX.c
++mv -f .deps/testVMX-testVMX.Tpo .deps/testVMX-testVMX.Po
++gcc -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o testVMX testVMX-testVMX.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi.o -MD -MP -MF .deps/twi.Tpo -c -o twi.o twi.c
++mv -f .deps/twi.Tpo .deps/twi.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi twi.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw.o -MD -MP -MF .deps/tw.Tpo -c -o tw.o tw.c
++mv -f .deps/tw.Tpo .deps/tw.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw tw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xlc_dbl_u32.o -MD -MP -MF .deps/xlc_dbl_u32.Tpo -c -o xlc_dbl_u32.o xlc_dbl_u32.c
++mv -f .deps/xlc_dbl_u32.Tpo .deps/xlc_dbl_u32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xlc_dbl_u32 xlc_dbl_u32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power5+_round.o -MD -MP -MF .deps/power5+_round.Tpo -c -o power5+_round.o power5+_round.c
++mv -f .deps/power5+_round.Tpo .deps/power5+_round.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power5+_round power5+_round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
++mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
++mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
++mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
++mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
++mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
++mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
++mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
++mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
++mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 60 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++Making check in ppc64
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make  allexec jm-insns lsw round std_reg_imm twi_tdi tw_td power6_bcmp power6_mf_gpr test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
++mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
++mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
++mv -f .deps/lsw.Tpo .deps/lsw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
++mv -f .deps/round.Tpo .deps/round.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_reg_imm.o -MD -MP -MF .deps/std_reg_imm.Tpo -c -o std_reg_imm.o std_reg_imm.c
++mv -f .deps/std_reg_imm.Tpo .deps/std_reg_imm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_reg_imm std_reg_imm.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi_tdi.o -MD -MP -MF .deps/twi_tdi.Tpo -c -o twi_tdi.o twi_tdi.c
++mv -f .deps/twi_tdi.Tpo .deps/twi_tdi.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi_tdi twi_tdi.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw_td.o -MD -MP -MF .deps/tw_td.Tpo -c -o tw_td.o tw_td.c
++mv -f .deps/tw_td.Tpo .deps/tw_td.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw_td tw_td.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
++mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_mf_gpr.o -MD -MP -MF .deps/power6_mf_gpr.Tpo -c -o power6_mf_gpr.o power6_mf_gpr.c
++mv -f .deps/power6_mf_gpr.Tpo .deps/power6_mf_gpr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_mf_gpr power6_mf_gpr.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
++mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
++mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
++mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
++mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
++mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
++mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
++mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
++mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 60 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++Making check in linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make  blockfault mremap mremap2 mremap3
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT blockfault.o -MD -MP -MF .deps/blockfault.Tpo -c -o blockfault.o blockfault.c
++mv -f .deps/blockfault.Tpo .deps/blockfault.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o blockfault blockfault.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap.o -MD -MP -MF .deps/mremap.Tpo -c -o mremap.o mremap.c
++mv -f .deps/mremap.Tpo .deps/mremap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap mremap.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap2.o -MD -MP -MF .deps/mremap2.Tpo -c -o mremap2.o mremap2.c
++mv -f .deps/mremap2.Tpo .deps/mremap2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap2 mremap2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap3.o -MD -MP -MF .deps/mremap3.Tpo -c -o mremap3.o mremap3.c
++mv -f .deps/mremap3.Tpo .deps/mremap3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap3 mremap3.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in helgrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++mkdir -p ../.in_place; \
++for f in helgrind-ppc64-linux helgrind-ppc32-linux vgpreload_helgrind-ppc64-linux.so vgpreload_helgrind-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../helgrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../helgrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make  annotate_hbefore cond_timedwait_invalid free_is_write hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared locked_vs_unlocked1 locked_vs_unlocked2 locked_vs_unlocked3 pth_destroy_cond t2t tc01_simple_race tc02_simple_tls tc03_re_excl tc04_free_lock tc05_simple_race tc06_two_races tc07_hbl1 tc08_hbl2 tc09_bad_unlock tc10_rec_lock tc11_XCHG tc12_rwl_trivial tc13_laog1 tc14_laog_dinphils tc15_laog_lockdel tc16_byterace tc17_sembar tc18_semabuse tc19_shadowmem tc21_pthonce tc23_bogus_condwait tc24_nonzero_sem tc22_exit_w_lock bar_bad bar_trivial tc20_verifywrap annotate_rwlock
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hbefore-annotate_hbefore.o -MD -MP -MF .deps/annotate_hbefore-annotate_hbefore.Tpo -c -o annotate_hbefore-annotate_hbefore.o `test -f 'annotate_hbefore.c' || echo './'`annotate_hbefore.c
++mv -f .deps/annotate_hbefore-annotate_hbefore.Tpo .deps/annotate_hbefore-annotate_hbefore.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hbefore annotate_hbefore-annotate_hbefore.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT cond_timedwait_invalid.o -MD -MP -MF .deps/cond_timedwait_invalid.Tpo -c -o cond_timedwait_invalid.o cond_timedwait_invalid.c
++mv -f .deps/cond_timedwait_invalid.Tpo .deps/cond_timedwait_invalid.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o cond_timedwait_invalid cond_timedwait_invalid.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
++mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg01_all_ok.o -MD -MP -MF .deps/hg01_all_ok.Tpo -c -o hg01_all_ok.o hg01_all_ok.c
++mv -f .deps/hg01_all_ok.Tpo .deps/hg01_all_ok.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg01_all_ok hg01_all_ok.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg02_deadlock.o -MD -MP -MF .deps/hg02_deadlock.Tpo -c -o hg02_deadlock.o hg02_deadlock.c
++mv -f .deps/hg02_deadlock.Tpo .deps/hg02_deadlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg02_deadlock hg02_deadlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg03_inherit.o -MD -MP -MF .deps/hg03_inherit.Tpo -c -o hg03_inherit.o hg03_inherit.c
++mv -f .deps/hg03_inherit.Tpo .deps/hg03_inherit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg03_inherit hg03_inherit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg04_race.o -MD -MP -MF .deps/hg04_race.Tpo -c -o hg04_race.o hg04_race.c
++mv -f .deps/hg04_race.Tpo .deps/hg04_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg04_race hg04_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg05_race2.o -MD -MP -MF .deps/hg05_race2.Tpo -c -o hg05_race2.o hg05_race2.c
++mv -f .deps/hg05_race2.Tpo .deps/hg05_race2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg05_race2 hg05_race2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg06_readshared.o -MD -MP -MF .deps/hg06_readshared.Tpo -c -o hg06_readshared.o hg06_readshared.c
++mv -f .deps/hg06_readshared.Tpo .deps/hg06_readshared.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg06_readshared hg06_readshared.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked1.o -MD -MP -MF .deps/locked_vs_unlocked1.Tpo -c -o locked_vs_unlocked1.o locked_vs_unlocked1.c
++mv -f .deps/locked_vs_unlocked1.Tpo .deps/locked_vs_unlocked1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked1 locked_vs_unlocked1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked2.o -MD -MP -MF .deps/locked_vs_unlocked2.Tpo -c -o locked_vs_unlocked2.o locked_vs_unlocked2.c
++mv -f .deps/locked_vs_unlocked2.Tpo .deps/locked_vs_unlocked2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked2 locked_vs_unlocked2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked3.o -MD -MP -MF .deps/locked_vs_unlocked3.Tpo -c -o locked_vs_unlocked3.o locked_vs_unlocked3.c
++mv -f .deps/locked_vs_unlocked3.Tpo .deps/locked_vs_unlocked3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked3 locked_vs_unlocked3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_destroy_cond.o -MD -MP -MF .deps/pth_destroy_cond.Tpo -c -o pth_destroy_cond.o pth_destroy_cond.c
++mv -f .deps/pth_destroy_cond.Tpo .deps/pth_destroy_cond.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_destroy_cond pth_destroy_cond.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t2t.o -MD -MP -MF .deps/t2t.Tpo -c -o t2t.o t2t.c
++mv -f .deps/t2t.Tpo .deps/t2t.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t2t t2t.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc01_simple_race.o -MD -MP -MF .deps/tc01_simple_race.Tpo -c -o tc01_simple_race.o tc01_simple_race.c
++mv -f .deps/tc01_simple_race.Tpo .deps/tc01_simple_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc01_simple_race tc01_simple_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc02_simple_tls.o -MD -MP -MF .deps/tc02_simple_tls.Tpo -c -o tc02_simple_tls.o tc02_simple_tls.c
++mv -f .deps/tc02_simple_tls.Tpo .deps/tc02_simple_tls.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc02_simple_tls tc02_simple_tls.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc03_re_excl.o -MD -MP -MF .deps/tc03_re_excl.Tpo -c -o tc03_re_excl.o tc03_re_excl.c
++mv -f .deps/tc03_re_excl.Tpo .deps/tc03_re_excl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc03_re_excl tc03_re_excl.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc04_free_lock.o -MD -MP -MF .deps/tc04_free_lock.Tpo -c -o tc04_free_lock.o tc04_free_lock.c
++mv -f .deps/tc04_free_lock.Tpo .deps/tc04_free_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc04_free_lock tc04_free_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc05_simple_race.o -MD -MP -MF .deps/tc05_simple_race.Tpo -c -o tc05_simple_race.o tc05_simple_race.c
++mv -f .deps/tc05_simple_race.Tpo .deps/tc05_simple_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc05_simple_race tc05_simple_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc06_two_races.o -MD -MP -MF .deps/tc06_two_races.Tpo -c -o tc06_two_races.o tc06_two_races.c
++mv -f .deps/tc06_two_races.Tpo .deps/tc06_two_races.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc06_two_races tc06_two_races.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc07_hbl1-tc07_hbl1.o -MD -MP -MF .deps/tc07_hbl1-tc07_hbl1.Tpo -c -o tc07_hbl1-tc07_hbl1.o `test -f 'tc07_hbl1.c' || echo './'`tc07_hbl1.c
++mv -f .deps/tc07_hbl1-tc07_hbl1.Tpo .deps/tc07_hbl1-tc07_hbl1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc07_hbl1 tc07_hbl1-tc07_hbl1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc08_hbl2-tc08_hbl2.o -MD -MP -MF .deps/tc08_hbl2-tc08_hbl2.Tpo -c -o tc08_hbl2-tc08_hbl2.o `test -f 'tc08_hbl2.c' || echo './'`tc08_hbl2.c
++mv -f .deps/tc08_hbl2-tc08_hbl2.Tpo .deps/tc08_hbl2-tc08_hbl2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc08_hbl2 tc08_hbl2-tc08_hbl2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc09_bad_unlock.o -MD -MP -MF .deps/tc09_bad_unlock.Tpo -c -o tc09_bad_unlock.o tc09_bad_unlock.c
++mv -f .deps/tc09_bad_unlock.Tpo .deps/tc09_bad_unlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc09_bad_unlock tc09_bad_unlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc10_rec_lock.o -MD -MP -MF .deps/tc10_rec_lock.Tpo -c -o tc10_rec_lock.o tc10_rec_lock.c
++mv -f .deps/tc10_rec_lock.Tpo .deps/tc10_rec_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc10_rec_lock tc10_rec_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc11_XCHG.o -MD -MP -MF .deps/tc11_XCHG.Tpo -c -o tc11_XCHG.o tc11_XCHG.c
++mv -f .deps/tc11_XCHG.Tpo .deps/tc11_XCHG.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc11_XCHG tc11_XCHG.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc12_rwl_trivial.o -MD -MP -MF .deps/tc12_rwl_trivial.Tpo -c -o tc12_rwl_trivial.o tc12_rwl_trivial.c
++mv -f .deps/tc12_rwl_trivial.Tpo .deps/tc12_rwl_trivial.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc12_rwl_trivial tc12_rwl_trivial.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc13_laog1.o -MD -MP -MF .deps/tc13_laog1.Tpo -c -o tc13_laog1.o tc13_laog1.c
++mv -f .deps/tc13_laog1.Tpo .deps/tc13_laog1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc13_laog1 tc13_laog1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc14_laog_dinphils.o -MD -MP -MF .deps/tc14_laog_dinphils.Tpo -c -o tc14_laog_dinphils.o tc14_laog_dinphils.c
++mv -f .deps/tc14_laog_dinphils.Tpo .deps/tc14_laog_dinphils.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc14_laog_dinphils tc14_laog_dinphils.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc15_laog_lockdel.o -MD -MP -MF .deps/tc15_laog_lockdel.Tpo -c -o tc15_laog_lockdel.o tc15_laog_lockdel.c
++mv -f .deps/tc15_laog_lockdel.Tpo .deps/tc15_laog_lockdel.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc15_laog_lockdel tc15_laog_lockdel.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc16_byterace.o -MD -MP -MF .deps/tc16_byterace.Tpo -c -o tc16_byterace.o tc16_byterace.c
++mv -f .deps/tc16_byterace.Tpo .deps/tc16_byterace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc16_byterace tc16_byterace.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc17_sembar.o -MD -MP -MF .deps/tc17_sembar.Tpo -c -o tc17_sembar.o tc17_sembar.c
++mv -f .deps/tc17_sembar.Tpo .deps/tc17_sembar.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc17_sembar tc17_sembar.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc18_semabuse.o -MD -MP -MF .deps/tc18_semabuse.Tpo -c -o tc18_semabuse.o tc18_semabuse.c
++mv -f .deps/tc18_semabuse.Tpo .deps/tc18_semabuse.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc18_semabuse tc18_semabuse.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc19_shadowmem.o -MD -MP -MF .deps/tc19_shadowmem.Tpo -c -o tc19_shadowmem.o tc19_shadowmem.c
++mv -f .deps/tc19_shadowmem.Tpo .deps/tc19_shadowmem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc19_shadowmem tc19_shadowmem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc21_pthonce.o -MD -MP -MF .deps/tc21_pthonce.Tpo -c -o tc21_pthonce.o tc21_pthonce.c
++mv -f .deps/tc21_pthonce.Tpo .deps/tc21_pthonce.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc21_pthonce tc21_pthonce.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc23_bogus_condwait.o -MD -MP -MF .deps/tc23_bogus_condwait.Tpo -c -o tc23_bogus_condwait.o tc23_bogus_condwait.c
++mv -f .deps/tc23_bogus_condwait.Tpo .deps/tc23_bogus_condwait.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc23_bogus_condwait tc23_bogus_condwait.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc24_nonzero_sem.o -MD -MP -MF .deps/tc24_nonzero_sem.Tpo -c -o tc24_nonzero_sem.o tc24_nonzero_sem.c
++mv -f .deps/tc24_nonzero_sem.Tpo .deps/tc24_nonzero_sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc24_nonzero_sem tc24_nonzero_sem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc22_exit_w_lock.o -MD -MP -MF .deps/tc22_exit_w_lock.Tpo -c -o tc22_exit_w_lock.o tc22_exit_w_lock.c
++mv -f .deps/tc22_exit_w_lock.Tpo .deps/tc22_exit_w_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc22_exit_w_lock tc22_exit_w_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_bad.o -MD -MP -MF .deps/bar_bad.Tpo -c -o bar_bad.o bar_bad.c
++mv -f .deps/bar_bad.Tpo .deps/bar_bad.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_bad bar_bad.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_trivial.o -MD -MP -MF .deps/bar_trivial.Tpo -c -o bar_trivial.o bar_trivial.c
++mv -f .deps/bar_trivial.Tpo .deps/bar_trivial.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_trivial bar_trivial.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc20_verifywrap.o -MD -MP -MF .deps/tc20_verifywrap.Tpo -c -o tc20_verifywrap.o tc20_verifywrap.c
++mv -f .deps/tc20_verifywrap.Tpo .deps/tc20_verifywrap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc20_verifywrap tc20_verifywrap.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
++mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 62 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in drd
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++mkdir -p ../.in_place; \
++for f in drd-ppc64-linux drd-ppc32-linux vgpreload_drd-ppc64-linux.so vgpreload_drd-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../drd/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../drd/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make  annotate_hb_err annotate_hb_race annotate_ignore_rw annotate_ignore_write annotate_publish_hg annotate_static bug-235681 custom_alloc fp_race free_is_write hold_lock linuxthreads_det memory_allocation monitor_example new_delete pth_broadcast pth_cancel_locked pth_cleanup_handler pth_cond_race pth_create_chain pth_detached pth_detached_sem pth_detached3 pth_inconsistent_cond_wait pth_mutex_reinit pth_process_shared_mutex pth_uninitialized_cond recursive_mutex rwlock_race rwlock_test rwlock_type_checking sem_as_mutex sem_open sigalrm thread_name threaded-fork trylock unit_bitmap unit_vc  annotate_barrier annotate_rwlock atomic_var circular_buffer  annotate_smart_pointer tsan_unittest std_thread omp_matinv omp_prime omp_printf matinv pth_barrier pth_barrier_race pth_barrier_reinit pth_barrier_thr_cr  pth_spinlock
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_err.o -MD -MP -MF .deps/annotate_hb_err.Tpo -c -o annotate_hb_err.o annotate_hb_err.c
++mv -f .deps/annotate_hb_err.Tpo .deps/annotate_hb_err.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_err annotate_hb_err.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_race.o -MD -MP -MF .deps/annotate_hb_race.Tpo -c -o annotate_hb_race.o annotate_hb_race.c
++mv -f .deps/annotate_hb_race.Tpo .deps/annotate_hb_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_race annotate_hb_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_rw.o -MD -MP -MF .deps/annotate_ignore_rw.Tpo -c -o annotate_ignore_rw.o annotate_ignore_rw.c
++mv -f .deps/annotate_ignore_rw.Tpo .deps/annotate_ignore_rw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_rw annotate_ignore_rw.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_write.o -MD -MP -MF .deps/annotate_ignore_write.Tpo -c -o annotate_ignore_write.o annotate_ignore_write.c
++mv -f .deps/annotate_ignore_write.Tpo .deps/annotate_ignore_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_write annotate_ignore_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_publish_hg.o -MD -MP -MF .deps/annotate_publish_hg.Tpo -c -o annotate_publish_hg.o annotate_publish_hg.c
++mv -f .deps/annotate_publish_hg.Tpo .deps/annotate_publish_hg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_publish_hg annotate_publish_hg.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_static.o -MD -MP -MF .deps/annotate_static.Tpo -c -o annotate_static.o annotate_static.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/annotate_static.Tpo .deps/annotate_static.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_static annotate_static.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug-235681.o -MD -MP -MF .deps/bug-235681.Tpo -c -o bug-235681.o bug-235681.c
++mv -f .deps/bug-235681.Tpo .deps/bug-235681.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug-235681 bug-235681.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fp_race.o -MD -MP -MF .deps/fp_race.Tpo -c -o fp_race.o fp_race.c
++mv -f .deps/fp_race.Tpo .deps/fp_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fp_race fp_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
++mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hold_lock.o -MD -MP -MF .deps/hold_lock.Tpo -c -o hold_lock.o hold_lock.c
++mv -f .deps/hold_lock.Tpo .deps/hold_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hold_lock hold_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT linuxthreads_det.o -MD -MP -MF .deps/linuxthreads_det.Tpo -c -o linuxthreads_det.o linuxthreads_det.c
++mv -f .deps/linuxthreads_det.Tpo .deps/linuxthreads_det.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o linuxthreads_det linuxthreads_det.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memory_allocation.o -MD -MP -MF .deps/memory_allocation.Tpo -c -o memory_allocation.o memory_allocation.c
++mv -f .deps/memory_allocation.Tpo .deps/memory_allocation.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memory_allocation memory_allocation.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT monitor_example.o -MD -MP -MF .deps/monitor_example.Tpo -c -o monitor_example.o monitor_example.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/monitor_example.Tpo .deps/monitor_example.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o monitor_example monitor_example.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_delete.o -MD -MP -MF .deps/new_delete.Tpo -c -o new_delete.o new_delete.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_delete.Tpo .deps/new_delete.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_delete new_delete.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_broadcast.o -MD -MP -MF .deps/pth_broadcast.Tpo -c -o pth_broadcast.o pth_broadcast.c
++mv -f .deps/pth_broadcast.Tpo .deps/pth_broadcast.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_broadcast pth_broadcast.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel_locked.o -MD -MP -MF .deps/pth_cancel_locked.Tpo -c -o pth_cancel_locked.o pth_cancel_locked.c
++mv -f .deps/pth_cancel_locked.Tpo .deps/pth_cancel_locked.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel_locked pth_cancel_locked.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cleanup_handler-pth_cleanup_handler.o -MD -MP -MF .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo -c -o pth_cleanup_handler-pth_cleanup_handler.o `test -f 'pth_cleanup_handler.c' || echo './'`pth_cleanup_handler.c
++mv -f .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo .deps/pth_cleanup_handler-pth_cleanup_handler.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cleanup_handler pth_cleanup_handler-pth_cleanup_handler.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cond_race.o -MD -MP -MF .deps/pth_cond_race.Tpo -c -o pth_cond_race.o pth_cond_race.c
++mv -f .deps/pth_cond_race.Tpo .deps/pth_cond_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cond_race pth_cond_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_create_chain.o -MD -MP -MF .deps/pth_create_chain.Tpo -c -o pth_create_chain.o pth_create_chain.c
++mv -f .deps/pth_create_chain.Tpo .deps/pth_create_chain.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_create_chain pth_create_chain.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached.o -MD -MP -MF .deps/pth_detached.Tpo -c -o pth_detached.o pth_detached.c
++mv -f .deps/pth_detached.Tpo .deps/pth_detached.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached pth_detached.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached_sem.o -MD -MP -MF .deps/pth_detached_sem.Tpo -c -o pth_detached_sem.o pth_detached_sem.c
++mv -f .deps/pth_detached_sem.Tpo .deps/pth_detached_sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached_sem pth_detached_sem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached3.o -MD -MP -MF .deps/pth_detached3.Tpo -c -o pth_detached3.o pth_detached3.c
++mv -f .deps/pth_detached3.Tpo .deps/pth_detached3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached3 pth_detached3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_inconsistent_cond_wait.o -MD -MP -MF .deps/pth_inconsistent_cond_wait.Tpo -c -o pth_inconsistent_cond_wait.o pth_inconsistent_cond_wait.c
++mv -f .deps/pth_inconsistent_cond_wait.Tpo .deps/pth_inconsistent_cond_wait.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_inconsistent_cond_wait pth_inconsistent_cond_wait.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutex_reinit.o -MD -MP -MF .deps/pth_mutex_reinit.Tpo -c -o pth_mutex_reinit.o pth_mutex_reinit.c
++mv -f .deps/pth_mutex_reinit.Tpo .deps/pth_mutex_reinit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutex_reinit pth_mutex_reinit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_process_shared_mutex.o -MD -MP -MF .deps/pth_process_shared_mutex.Tpo -c -o pth_process_shared_mutex.o pth_process_shared_mutex.c
++mv -f .deps/pth_process_shared_mutex.Tpo .deps/pth_process_shared_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_process_shared_mutex pth_process_shared_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_uninitialized_cond.o -MD -MP -MF .deps/pth_uninitialized_cond.Tpo -c -o pth_uninitialized_cond.o pth_uninitialized_cond.c
++mv -f .deps/pth_uninitialized_cond.Tpo .deps/pth_uninitialized_cond.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_uninitialized_cond pth_uninitialized_cond.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT recursive_mutex.o -MD -MP -MF .deps/recursive_mutex.Tpo -c -o recursive_mutex.o recursive_mutex.c
++mv -f .deps/recursive_mutex.Tpo .deps/recursive_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o recursive_mutex recursive_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_race.o -MD -MP -MF .deps/rwlock_race.Tpo -c -o rwlock_race.o rwlock_race.c
++mv -f .deps/rwlock_race.Tpo .deps/rwlock_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_race rwlock_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_test.o -MD -MP -MF .deps/rwlock_test.Tpo -c -o rwlock_test.o rwlock_test.c
++mv -f .deps/rwlock_test.Tpo .deps/rwlock_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_test rwlock_test.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_type_checking.o -MD -MP -MF .deps/rwlock_type_checking.Tpo -c -o rwlock_type_checking.o rwlock_type_checking.c
++mv -f .deps/rwlock_type_checking.Tpo .deps/rwlock_type_checking.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_type_checking rwlock_type_checking.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_as_mutex.o -MD -MP -MF .deps/sem_as_mutex.Tpo -c -o sem_as_mutex.o sem_as_mutex.c
++mv -f .deps/sem_as_mutex.Tpo .deps/sem_as_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_as_mutex sem_as_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_open.o -MD -MP -MF .deps/sem_open.Tpo -c -o sem_open.o sem_open.c
++mv -f .deps/sem_open.Tpo .deps/sem_open.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_open sem_open.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigalrm.o -MD -MP -MF .deps/sigalrm.Tpo -c -o sigalrm.o sigalrm.c
++mv -f .deps/sigalrm.Tpo .deps/sigalrm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigalrm sigalrm.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread_name.o -MD -MP -MF .deps/thread_name.Tpo -c -o thread_name.o thread_name.c
++mv -f .deps/thread_name.Tpo .deps/thread_name.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread_name thread_name.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
++mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trylock.o -MD -MP -MF .deps/trylock.Tpo -c -o trylock.o trylock.c
++mv -f .deps/trylock.Tpo .deps/trylock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trylock trylock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_bitmap-unit_bitmap.o -MD -MP -MF .deps/unit_bitmap-unit_bitmap.Tpo -c -o unit_bitmap-unit_bitmap.o `test -f 'unit_bitmap.c' || echo './'`unit_bitmap.c
++mv -f .deps/unit_bitmap-unit_bitmap.Tpo .deps/unit_bitmap-unit_bitmap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_bitmap unit_bitmap-unit_bitmap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_vc-unit_vc.o -MD -MP -MF .deps/unit_vc-unit_vc.Tpo -c -o unit_vc-unit_vc.o `test -f 'unit_vc.c' || echo './'`unit_vc.c
++mv -f .deps/unit_vc-unit_vc.Tpo .deps/unit_vc-unit_vc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_vc unit_vc-unit_vc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_barrier.o -MD -MP -MF .deps/annotate_barrier.Tpo -c -o annotate_barrier.o annotate_barrier.c
++mv -f .deps/annotate_barrier.Tpo .deps/annotate_barrier.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_barrier annotate_barrier.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
++mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c
++mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_var atomic_var.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c
++mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o circular_buffer circular_buffer.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_smart_pointer.o -MD -MP -MF .deps/annotate_smart_pointer.Tpo -c -o annotate_smart_pointer.o annotate_smart_pointer.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/annotate_smart_pointer.Tpo .deps/annotate_smart_pointer.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_smart_pointer annotate_smart_pointer.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/tsan_unittest-tsan_unittest.Tpo .deps/tsan_unittest-tsan_unittest.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tsan_unittest tsan_unittest-tsan_unittest.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_thread-std_thread.o -MD -MP -MF .deps/std_thread-std_thread.Tpo -c -o std_thread-std_thread.o `test -f 'std_thread.cpp' || echo './'`std_thread.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/std_thread-std_thread.Tpo .deps/std_thread-std_thread.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_thread std_thread-std_thread.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_matinv-omp_matinv.o -MD -MP -MF .deps/omp_matinv-omp_matinv.Tpo -c -o omp_matinv-omp_matinv.o `test -f 'omp_matinv.c' || echo './'`omp_matinv.c
++mv -f .deps/omp_matinv-omp_matinv.Tpo .deps/omp_matinv-omp_matinv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_matinv omp_matinv-omp_matinv.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_prime-omp_prime.o -MD -MP -MF .deps/omp_prime-omp_prime.Tpo -c -o omp_prime-omp_prime.o `test -f 'omp_prime.c' || echo './'`omp_prime.c
++mv -f .deps/omp_prime-omp_prime.Tpo .deps/omp_prime-omp_prime.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_prime omp_prime-omp_prime.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_printf-omp_printf.o -MD -MP -MF .deps/omp_printf-omp_printf.Tpo -c -o omp_printf-omp_printf.o `test -f 'omp_printf.c' || echo './'`omp_printf.c
++mv -f .deps/omp_printf-omp_printf.Tpo .deps/omp_printf-omp_printf.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_printf omp_printf-omp_printf.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT matinv.o -MD -MP -MF .deps/matinv.Tpo -c -o matinv.o matinv.c
++mv -f .deps/matinv.Tpo .deps/matinv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o matinv matinv.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier.o -MD -MP -MF .deps/pth_barrier.Tpo -c -o pth_barrier.o pth_barrier.c
++mv -f .deps/pth_barrier.Tpo .deps/pth_barrier.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier pth_barrier.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_race.o -MD -MP -MF .deps/pth_barrier_race.Tpo -c -o pth_barrier_race.o pth_barrier_race.c
++mv -f .deps/pth_barrier_race.Tpo .deps/pth_barrier_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_race pth_barrier_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_reinit.o -MD -MP -MF .deps/pth_barrier_reinit.Tpo -c -o pth_barrier_reinit.o pth_barrier_reinit.c
++mv -f .deps/pth_barrier_reinit.Tpo .deps/pth_barrier_reinit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_reinit pth_barrier_reinit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_thr_cr.o -MD -MP -MF .deps/pth_barrier_thr_cr.Tpo -c -o pth_barrier_thr_cr.o pth_barrier_thr_cr.c
++mv -f .deps/pth_barrier_thr_cr.Tpo .deps/pth_barrier_thr_cr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_thr_cr pth_barrier_thr_cr.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_spinlock.o -MD -MP -MF .deps/pth_spinlock.Tpo -c -o pth_spinlock.o pth_spinlock.c
++mv -f .deps/pth_spinlock.Tpo .deps/pth_spinlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_spinlock pth_spinlock.o -lpthread 
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 54 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in exp-sgcheck
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++mkdir -p ../.in_place; \
++for f in exp-sgcheck-ppc64-linux exp-sgcheck-ppc32-linux vgpreload_exp-sgcheck-ppc64-linux.so vgpreload_exp-sgcheck-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-sgcheck/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-sgcheck/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make  bad_percentify globalerr hackedbz2 hsg preen_invars preen_invars_so.so stackerr
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bad_percentify.o -MD -MP -MF .deps/bad_percentify.Tpo -c -o bad_percentify.o bad_percentify.c
++mv -f .deps/bad_percentify.Tpo .deps/bad_percentify.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bad_percentify bad_percentify.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT globalerr.o -MD -MP -MF .deps/globalerr.Tpo -c -o globalerr.o globalerr.c
++mv -f .deps/globalerr.Tpo .deps/globalerr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o globalerr globalerr.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hackedbz2-hackedbz2.o -MD -MP -MF .deps/hackedbz2-hackedbz2.Tpo -c -o hackedbz2-hackedbz2.o `test -f 'hackedbz2.c' || echo './'`hackedbz2.c
++mv -f .deps/hackedbz2-hackedbz2.Tpo .deps/hackedbz2-hackedbz2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hackedbz2 hackedbz2-hackedbz2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hsg.o -MD -MP -MF .deps/hsg.Tpo -c -o hsg.o hsg.c
++mv -f .deps/hsg.Tpo .deps/hsg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hsg hsg.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars.o -MD -MP -MF .deps/preen_invars.Tpo -c -o preen_invars.o preen_invars.c
++mv -f .deps/preen_invars.Tpo .deps/preen_invars.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars_so_so-preen_invars_so.o -MD -MP -MF .deps/preen_invars_so_so-preen_invars_so.Tpo -c -o preen_invars_so_so-preen_invars_so.o `test -f 'preen_invars_so.c' || echo './'`preen_invars_so.c
++mv -f .deps/preen_invars_so_so-preen_invars_so.Tpo .deps/preen_invars_so_so-preen_invars_so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,preen_invars_so.so  -o preen_invars_so.so preen_invars_so_so-preen_invars_so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o preen_invars preen_invars.o -ldl 
++make[4]: `preen_invars_so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackerr.o -MD -MP -MF .deps/stackerr.Tpo -c -o stackerr.o stackerr.c
++mv -f .deps/stackerr.Tpo .deps/stackerr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackerr stackerr.o  
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in exp-bbv
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++mkdir -p ../.in_place; \
++for f in exp-bbv-ppc64-linux exp-bbv-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-bbv/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-bbv/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make  
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making all in .
++make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[6]: Nothing to be done for `all-am'.
++make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making all in ppc32-linux
++make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[6]: Nothing to be done for `all'.
++make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making check in ppc32-linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make  million ll
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT million.o -MD -MP -MF .deps/million.Tpo -c -o million.o million.S
++mv -f .deps/million.Tpo .deps/million.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o million million.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT ll.o -MD -MP -MF .deps/ll.Tpo -c -o ll.o ll.S
++mv -f .deps/ll.Tpo .deps/ll.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o ll ll.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Warning: File `.deps/million.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in exp-dhat
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++mkdir -p ../.in_place; \
++for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-dhat/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
++make[3]: Nothing to be done for `check'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in tests
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make  arch_test os_test true x86_amd64_features s390x_features
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT arch_test.o -MD -MP -MF .deps/arch_test.Tpo -c -o arch_test.o arch_test.c
++mv -f .deps/arch_test.Tpo .deps/arch_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o arch_test arch_test.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT os_test.o -MD -MP -MF .deps/os_test.Tpo -c -o os_test.o os_test.c
++mv -f .deps/os_test.Tpo .deps/os_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o os_test os_test.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT true.o -MD -MP -MF .deps/true.Tpo -c -o true.o true.c
++mv -f .deps/true.Tpo .deps/true.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o true true.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT x86_amd64_features-x86_amd64_features.o -MD -MP -MF .deps/x86_amd64_features-x86_amd64_features.Tpo -c -o x86_amd64_features-x86_amd64_features.o `test -f 'x86_amd64_features.c' || echo './'`x86_amd64_features.c
++mv -f .deps/x86_amd64_features-x86_amd64_features.Tpo .deps/x86_amd64_features-x86_amd64_features.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o x86_amd64_features x86_amd64_features-x86_amd64_features.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT s390x_features.o -MD -MP -MF .deps/s390x_features.Tpo -c -o s390x_features.o s390x_features.c
++mv -f .deps/s390x_features.Tpo .deps/s390x_features.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o s390x_features s390x_features.o  
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++Making check in perf
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make  bigcode bz2 fbench ffbench heap many-loss-records many-xpts sarp tinycc
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bigcode.o -MD -MP -MF .deps/bigcode.Tpo -c -o bigcode.o bigcode.c
++mv -f .deps/bigcode.Tpo .deps/bigcode.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bigcode bigcode.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bz2-bz2.o -MD -MP -MF .deps/bz2-bz2.Tpo -c -o bz2-bz2.o `test -f 'bz2.c' || echo './'`bz2.c
++mv -f .deps/bz2-bz2.Tpo .deps/bz2-bz2.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bz2 bz2-bz2.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fbench-fbench.o -MD -MP -MF .deps/fbench-fbench.Tpo -c -o fbench-fbench.o `test -f 'fbench.c' || echo './'`fbench.c
++mv -f .deps/fbench-fbench.Tpo .deps/fbench-fbench.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fbench fbench-fbench.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ffbench.o -MD -MP -MF .deps/ffbench.Tpo -c -o ffbench.o ffbench.c
++mv -f .deps/ffbench.Tpo .deps/ffbench.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ffbench ffbench.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT heap.o -MD -MP -MF .deps/heap.Tpo -c -o heap.o heap.c
++mv -f .deps/heap.Tpo .deps/heap.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o heap heap.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-loss-records.o -MD -MP -MF .deps/many-loss-records.Tpo -c -o many-loss-records.o many-loss-records.c
++mv -f .deps/many-loss-records.Tpo .deps/many-loss-records.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-loss-records many-loss-records.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-xpts.o -MD -MP -MF .deps/many-xpts.Tpo -c -o many-xpts.o many-xpts.c
++mv -f .deps/many-xpts.Tpo .deps/many-xpts.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-xpts many-xpts.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sarp.o -MD -MP -MF .deps/sarp.Tpo -c -o sarp.o sarp.c
++mv -f .deps/sarp.Tpo .deps/sarp.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sarp sarp.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tinycc-tinycc.o -MD -MP -MF .deps/tinycc-tinycc.Tpo -c -o tinycc-tinycc.o `test -f 'tinycc.c' || echo './'`tinycc.c
++mv -f .deps/tinycc-tinycc.Tpo .deps/tinycc-tinycc.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tinycc tinycc-tinycc.o  
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 62 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++Making check in gdbserver_tests
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make  clean_after_fork fork_chain passsigalrm sleepers main_pic t watchpoints
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clean_after_fork.o -MD -MP -MF .deps/clean_after_fork.Tpo -c -o clean_after_fork.o clean_after_fork.c
++mv -f .deps/clean_after_fork.Tpo .deps/clean_after_fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clean_after_fork clean_after_fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork_chain.o -MD -MP -MF .deps/fork_chain.Tpo -c -o fork_chain.o fork_chain.c
++mv -f .deps/fork_chain.Tpo .deps/fork_chain.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork_chain fork_chain.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT passsigalrm.o -MD -MP -MF .deps/passsigalrm.Tpo -c -o passsigalrm.o passsigalrm.c
++mv -f .deps/passsigalrm.Tpo .deps/passsigalrm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o passsigalrm passsigalrm.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sleepers.o -MD -MP -MF .deps/sleepers.Tpo -c -o sleepers.o sleepers.c
++mv -f .deps/sleepers.Tpo .deps/sleepers.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sleepers sleepers.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT main_pic-main_pic.o -MD -MP -MF .deps/main_pic-main_pic.Tpo -c -o main_pic-main_pic.o `test -f 'main_pic.c' || echo './'`main_pic.c
++mv -f .deps/main_pic-main_pic.Tpo .deps/main_pic-main_pic.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -pie  -o main_pic main_pic-main_pic.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t.o -MD -MP -MF .deps/t.Tpo -c -o t.o t.c
++mv -f .deps/t.Tpo .deps/t.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t t.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT watchpoints.o -MD -MP -MF .deps/watchpoints.Tpo -c -o watchpoints.o watchpoints.c
++mv -f .deps/watchpoints.Tpo .deps/watchpoints.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o watchpoints watchpoints.o -lpthread 
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 63 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++Making check in auxprogs
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
++Making check in mpi
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
++mkdir -p ../.in_place; \
++for f in   ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../mpi/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../mpi/$f.dSYM ../.in_place; \
++done
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
++Making check in docs
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
++make[1]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++gdbserver_tests/make_local_links /usr/bin/gdb
++if /usr/bin/perl tests/vg_regtest gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat ; then \
++   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
++else \
++   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
++   false; \
++fi
++-- Running  tests in gdbserver_tests -----------------------------------
++mcblocklistsearch: valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcblocklistsearch -q  ./../memcheck/tests/leak-tree  (progB: ./gdb --quiet -l 60 --nx 1>&2 ../memcheck/tests/leak-tree)
++mcbreak:         valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcbreak ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++mcclean_after_fork: valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcclean_after_fork ./clean_after_fork  (progB: ./gdb --quiet -l 60 --nx ./clean_after_fork)
++mchelp:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mchelp ./t  (progB: ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mchelp -c help -c help debug -c v.kill)
++mcinfcallRU:     valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++mcinfcallWSRU:   valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers)
++mcinvokeRU:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0)
++mcinvokeWS:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0)
++mcleak:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta  (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta)
++mcmain_pic:      valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic  (progB: ./gdb --quiet -l 60 --nx ./main_pic)
++*** mcmain_pic failed (stdout) ***
++*** mcmain_pic failed (stderr) ***
++*** mcmain_pic failed (stdoutB) ***
++*** mcmain_pic failed (stderrB) ***
++mcsignopass:     valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
++mcsigpass:       valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
++mcvabits:        valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++mcwatchpoints:   valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints  (progB: ./gdb --quiet -l 60 --nx ./watchpoints)
++mssnapshot:      valgrind   --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++nlcontrolc:      valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++nlfork_chain:    valgrind   --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain 
++nlpasssigalrm:   valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm  (progB: ./gdb --quiet -l 60 --nx ./passsigalrm)
++nlsigvgdb:       valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlsigvgdb ./sleepers 1 10000000 0 -S-S-S-S (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++-- Finished tests in gdbserver_tests -----------------------------------
++-- Running  tests in memcheck/tests ------------------------------------
++accounting:      valgrind   ./accounting 
++addressable:     valgrind   ./addressable 
++atomic_incs:     valgrind   -q --track-origins=yes ./atomic_incs 
++badaddrvalue:    valgrind   -q ./badaddrvalue 
++badfree-2trace:  valgrind   --num-callers=2 -q ./badfree 
++badfree:         valgrind   -q ./badfree 
++badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
++badjump:         valgrind   ./badjump 
++sh: line 1:  8985 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++badjump2:        valgrind   -q ./badjump2 
++badloop:         valgrind   -q ./badloop 
++badpoll:         valgrind   -q ./badpoll 
++badrw:           valgrind   -q ./badrw 
++big_blocks_freed_list: valgrind   --freelist-vol=1000000 --freelist-big-blocks=50000 ./big_blocks_freed_list 
++brk2:            valgrind   ./brk2 
++buflen_check:    valgrind   -q ./buflen_check 
++bug287260:       valgrind   ./bug287260 
++calloc-overflow: valgrind   -q ./calloc-overflow 
++clientperm:      valgrind   -q ./clientperm 
++clireq_nofill:   valgrind   -q --undef-value-errors=no --malloc-fill=0xaf --free-fill=0xdb ./clireq_nofill 
++clo_redzone_128: valgrind   --leak-check=no -q --redzone-size=128 ./clo_redzone 
++clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone 
++custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
++custom_alloc:    valgrind   -q ./custom_alloc 
++deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
++sh: line 1:  9544 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++deep_templates:  valgrind   -q ./deep_templates 
++describe-block:  valgrind   ./describe-block 
++doublefree:      valgrind   -q ./doublefree 
++dw4:             valgrind   --read-var-info=yes -q ./dw4 
++err_disable1:    valgrind   -q ./err_disable1 
++err_disable2:    valgrind   -q ./err_disable2 
++err_disable3:    valgrind   -q ./err_disable3 
++err_disable4:    valgrind   -q --num-callers=3 ./err_disable4 
++erringfds:       valgrind   ./erringfds 
++error_counts:    valgrind   --log-fd=-1 ./error_counts 
++errs1:           valgrind   -q ./errs1 
++execve1:         valgrind   -q ./execve1 
++execve2:         valgrind   -q --trace-children=yes ./execve2 
++exitprog:        valgrind   -q ./exitprog 
++file_locking:    valgrind   -q --trace-children=yes ./file_locking 
++fprw:            valgrind   -q ./fprw 
++fwrite:          valgrind   -q ./fwrite 
++holey_buffer_too_small: valgrind   -q --track-origins=yes ./holey_buffer_too_small 
++inits:           valgrind   -q ./inits 
++inline:          valgrind   -q ./inline 
++leak-0:          valgrind   -q ./leak-0 
++leak-cases-full: valgrind   -q --leak-check=full --leak-resolution=high ./leak-cases 
++leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases 
++leak-cases-summary: valgrind   -q --leak-check=summary --leak-resolution=high ./leak-cases 
++leak-cycle:      valgrind   -q --leak-check=yes --leak-resolution=high ./leak-cycle 
++leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta 
++leak-pool-0:     valgrind   ./leak-pool 0
++leak-pool-1:     valgrind   ./leak-pool 1
++leak-pool-2:     valgrind   ./leak-pool 2
++leak-pool-3:     valgrind   ./leak-pool 3
++leak-pool-4:     valgrind   ./leak-pool 4
++leak-pool-5:     valgrind   ./leak-pool 5
++leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
++-- Running  tests in memcheck/tests/linux ------------------------------
++brk:             valgrind   ./brk 
++capget:          valgrind   ./capget 
++lsframe1:        valgrind   --main-stacksize=67200000 --max-stackframe=67200000 ./lsframe1 
++lsframe2:        valgrind   --main-stacksize=68500000 ./lsframe2 
++sigqueue:        valgrind   ./sigqueue -q
++stack_changes:   valgrind   -q ./stack_changes 
++stack_switch:    valgrind   -q ./stack_switch 
++syscalls-2007:   valgrind   ./syscalls-2007 
++syslog-syscall:  valgrind   ./syslog-syscall 
++timerfd-syscall: valgrind   ./timerfd-syscall 
++*** timerfd-syscall failed (stderr) ***
++with-space:      valgrind   -q ./'with space' 
++-- Finished tests in memcheck/tests/linux ------------------------------
++long-supps:      valgrind   --suppressions=long-supps.supp -q ./long-supps 
++long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
++mallinfo:        valgrind   ./mallinfo -q
++malloc1:         valgrind   -q ./malloc1 
++malloc2:         valgrind   -q ./malloc2 
++malloc3:         valgrind   -q ./malloc3 
++malloc_free_fill: valgrind   -q --malloc-fill=0x55 --free-fill=0x77 ./malloc_free_fill 
++malloc_usable:   valgrind   -q ./malloc_usable 
++manuel1:         valgrind   -q ./manuel1 
++manuel2:         valgrind   -q ./manuel2 
++manuel3:         valgrind   -q ./manuel3 
++match-overrun:   valgrind   -q --suppressions=match-overrun.supp ./match-overrun 
++memalign2:       valgrind   -q --freelist-vol=100000 --freelist-big-blocks=0 ./memalign2 
++memalign_test:   valgrind   -q ./memalign_test 
++memcmptest:      valgrind   -q ./memcmptest 
++mempool:         valgrind   -q --leak-check=yes ./mempool 
++mempool2:        valgrind   -q --leak-check=yes ./mempool2 
++metadata:        valgrind   -q ./metadata 
++mismatches:      valgrind   -q ./mismatches 
++mmaptest:        valgrind   -q ./mmaptest 
++nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2 
++nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp 
++new_nothrow:     valgrind   -q ./new_nothrow 
++new_override:    valgrind   ./new_override 
++noisy_child:     valgrind   --child-silent-after-fork=yes ./noisy_child 
++null_socket:     valgrind   -q ./null_socket 
++origin1-yes:     valgrind   -q --track-origins=yes ./origin1-yes 
++origin2-not-quite: valgrind   -q --track-origins=yes ./origin2-not-quite 
++origin3-no:      valgrind   -q --track-origins=yes ./origin3-no 
++origin4-many:    valgrind   -q --track-origins=yes ./origin4-many 
++origin5-bz2:     valgrind   -q --track-origins=yes ./origin5-bz2 x
++origin6-fp:      valgrind   -q --track-origins=yes ./origin6-fp 
++overlap:         valgrind   -q ./overlap 
++partial_load_dflt: valgrind   ./partial_load 
++partial_load_ok: valgrind   --partial-loads-ok=yes ./partial_load 
++partiallydefinedeq: valgrind   ./partiallydefinedeq 
++pdb-realloc:     valgrind   -q ./pdb-realloc 
++pdb-realloc2:    valgrind   -q ./pdb-realloc2 
++pipe:            valgrind   -q ./pipe 
++pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace 
++post-syscall:    valgrind   -q ./post-syscall 
++-- Running  tests in memcheck/tests/ppc32 ------------------------------
++power_ISA2_05:   valgrind   ./power_ISA2_05 
++-- Finished tests in memcheck/tests/ppc32 ------------------------------
++-- Running  tests in memcheck/tests/ppc64 ------------------------------
++power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
++-- Finished tests in memcheck/tests/ppc64 ------------------------------
++realloc1:        valgrind   -q ./realloc1 
++realloc2:        valgrind   -q ./realloc2 
++realloc3:        valgrind   -q ./realloc3 
++sbfragment:      valgrind   ./sbfragment 
++sh-mem-random:   valgrind   -q ./sh-mem-random 
++sh-mem:          valgrind   -q ./sh-mem 
++sigaltstack:     valgrind   -q ./sigaltstack 
++sigkill:         valgrind   ./sigkill 
++signal2:         valgrind   -q ./signal2 
++sigprocmask:     valgrind   -q ./sigprocmask 
++static_malloc:   valgrind   -q --leak-check=full --soname-synonyms=somalloc=NONE ./static_malloc 
++str_tester:      valgrind   -q ./str_tester 
++strchr:          valgrind   -q ./strchr 
++supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true 
++supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
++supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
++supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
++sh: line 1: 14245 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++*** supp_unknown failed (stderr) ***
++suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
++test-plo-no:     valgrind   -q ./test-plo 
++test-plo-yes:    (skipping, prereq failed: test ! `../../tests/arch_test ppc32` && ! `../../tests/arch_test ppc64` && ! `../../tests/arch_test s390x`)
++trivialleak:     valgrind   --leak-check=yes -q ./trivialleak 
++unit_libcbase:   valgrind   -q ./unit_libcbase 
++unit_oset:       valgrind   -q ./unit_oset 
++varinfo1:        valgrind   --read-var-info=yes -q ./varinfo1 
++varinfo2:        valgrind   --read-var-info=yes -q ./varinfo2 
++varinfo3:        valgrind   --read-var-info=yes -q ./varinfo3 
++varinfo4:        valgrind   --read-var-info=yes -q ./varinfo4 
++varinfo5:        valgrind   --read-var-info=yes -q ./varinfo5 
++varinfo6:        valgrind   --read-var-info=yes -q ./varinfo6 
++*** varinfo6 failed (stderr) ***
++vcpu_bz2:        valgrind   -q ./../../perf/bz2 x
++vcpu_fbench:     valgrind   -q ./vcpu_fbench 
++vcpu_fnfns:      valgrind   -q ./vcpu_fnfns 
++wrap1:           valgrind   -q ./wrap1 
++wrap2:           valgrind   -q ./wrap2 
++wrap3:           valgrind   -q ./wrap3 
++wrap4:           valgrind   -q ./wrap4 
++wrap5:           valgrind   -q ./wrap5 
++wrap6:           valgrind   -q ./wrap6 
++wrap7:           valgrind   -q ./wrap7 
++wrap8:           valgrind   -q ./wrap8 
++*** wrap8 failed (stdout) ***
++*** wrap8 failed (stderr) ***
++writev1:         valgrind   -q ./writev1 
++xml1:            valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./xml1 
++-- Finished tests in memcheck/tests ------------------------------------
++-- Running  tests in cachegrind/tests ----------------------------------
++chdir:           valgrind   ./chdir 
++clreq:           valgrind   -q ./clreq 
++dlclose:         valgrind   ./dlclose 
++notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
++wrap5:           valgrind   ./../../memcheck/tests/wrap5 
++-- Finished tests in cachegrind/tests ----------------------------------
++-- Running  tests in callgrind/tests -----------------------------------
++clreq:           valgrind    ./clreq 
++notpower2-hwpref: valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-hwpref=yes ./../../tests/true 
++notpower2-use:   valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --cacheuse=yes ./../../tests/true 
++notpower2-wb:    valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-wb=yes ./../../tests/true 
++notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
++simwork-both:    valgrind   --cache-sim=yes --branch-sim=yes ./simwork 
++simwork-branch:  valgrind   --branch-sim=yes ./simwork 
++simwork-cache:   valgrind   --cache-sim=yes ./simwork 
++simwork1:        valgrind   --simulate-hwpref=yes ./simwork 
++simwork2:        valgrind   --simulate-wb=yes --simulate-hwpref=yes ./simwork 
++simwork3:        valgrind   --cacheuse=yes ./simwork 
++threads-use:     valgrind   --separate-threads=yes --cacheuse=yes --collect-bus=yes --collect-systime=yes ./threads 
++threads:         valgrind   --separate-threads=yes --collect-bus=yes ./threads 
++-- Finished tests in callgrind/tests -----------------------------------
++-- Running  tests in massif/tests --------------------------------------
++alloc-fns-A:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
++alloc-fns-B:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b4 --alloc-fn=b3 --alloc-fn=c4 --alloc-fn=c3 --alloc-fn=c2 --alloc-fn=d4 --alloc-fn=d3 --alloc-fn=d2 --alloc-fn=d1 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
++basic:           valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++basic2:          valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --detailed-freq=1 --max-snapshots=10 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++big-alloc:       valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./big-alloc 
++*** big-alloc failed (post) ***
++culling1:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling1 
++culling2:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling2 
++custom_alloc:    valgrind   --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./custom_alloc 
++deep-A:          valgrind   --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-B:          valgrind   --stats=yes --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-C:          valgrind   --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --stats=yes --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-D:          valgrind   --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++*** deep-D failed (post) ***
++ignored:         valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=ignore1 --ignore-fn=ignore2 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignored 
++ignoring:        valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignoring 
++insig:           valgrind   --stacks=no --time-unit=B --heap-admin=128 --massif-out-file=massif.out --threshold=0.99 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./insig 
++long-names:      valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-names 
++long-time:       valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-time 
++malloc_usable:   valgrind   -q --massif-out-file=massif.out ./malloc_usable 
++new-cpp:         valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./new-cpp 
++no-stack-no-heap: valgrind   --stacks=no --heap=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++null:            valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./null 
++one:             valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./one 
++overloaded-new:  valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./overloaded-new 
++pages_as_heap:   valgrind   --stacks=no --time-unit=B --heap-admin=0 --pages-as-heap=yes --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=mmap ./pages_as_heap 
++peak:            valgrind   --stacks=no --time-unit=B --peak-inaccuracy=0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
++peak2:           valgrind   --stacks=no --time-unit=B -v -v --stats=yes --peak-inaccuracy=10.0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
++realloc:         valgrind   -v -v --stats=yes --stacks=no --heap-admin=0 --time-unit=B --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./realloc 
++thresholds_0_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_0_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_10_0: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_10_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_5_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_5_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++zero1:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
++zero2:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
++-- Finished tests in massif/tests --------------------------------------
++-- Running  tests in lackey/tests --------------------------------------
++true:            valgrind   ./../../tests/true 
++-- Finished tests in lackey/tests --------------------------------------
++-- Running  tests in none/tests ----------------------------------------
++allexec32:       valgrind   --trace-children=yes ./allexec32 exec
++allexec64:       valgrind   --trace-children=yes ./allexec64 exec
++ansi:            valgrind   ./ansi 
++args:            valgrind   ./args a b "1 2 3"
++async-sigs:      valgrind   -q ./async-sigs 
++bitfield1:       valgrind   ./bitfield1 
++bug129866:       valgrind   ./bug129866 
++closeall:        valgrind   ./closeall 
++cmd-with-special: valgrind   -q ./'a \<>b' 
++cmdline0:        valgrind   --version  
++cmdline1:        valgrind   --help --tool=none  
++cmdline2:        valgrind   --help-debug --tool=none  
++cmdline3:        valgrind    
++cmdline4:        valgrind   --bad-bad-option ./../../tests/true 
++cmdline5:        valgrind   ./no-such-program-my-friend 
++cmdline6:        valgrind   ./cmdline6.vgtest 
++coolo_sigaction: valgrind   ./coolo_sigaction 
++coolo_strlen:    valgrind   ./coolo_strlen 
++discard:         valgrind   ./discard 
++empty-exe:       valgrind    ./empty-exe 
++exec-sigmask:    valgrind   ./exec-sigmask 
++execve:          valgrind   ./execve 
++faultstatus:     valgrind   ./faultstatus 
++fcntl_setown:    valgrind   ./fcntl_setown 
++fdleak_cmsg:     valgrind   --track-fds=yes ./fdleak_cmsg < /dev/null
++fdleak_creat:    valgrind   --track-fds=yes ./fdleak_creat < /dev/null
++fdleak_dup:      valgrind   --track-fds=yes ./fdleak_dup < /dev/null
++fdleak_dup2:     valgrind   --track-fds=yes ./fdleak_dup2 < /dev/null
++fdleak_fcntl:    valgrind   --track-fds=yes ./fdleak_fcntl < /dev/null
++fdleak_ipv4:     valgrind   --track-fds=yes ./fdleak_ipv4 < /dev/null
++fdleak_open:     valgrind   --track-fds=yes ./fdleak_open < /dev/null
++fdleak_pipe:     valgrind   --track-fds=yes ./fdleak_pipe < /dev/null
++fdleak_socketpair: valgrind   --track-fds=yes ./fdleak_socketpair < /dev/null
++floored:         valgrind   ./floored 
++fork:            valgrind   -q ./fork 
++fucomip:         valgrind   ./fucomip 
++gxx304:          valgrind   ./gxx304 
++ifunc:           (skipping, prereq failed: test -e ifunc)
++-- Running  tests in none/tests/linux ----------------------------------
++blockfault:      valgrind   ./blockfault 
++sh: line 1: 18718 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++mremap:          valgrind   ./mremap 
++mremap2:         valgrind   ./mremap2 
++mremap3:         valgrind   ./mremap3 
++-- Finished tests in none/tests/linux ----------------------------------
++manythreads:     valgrind   ./manythreads 
++map_unaligned:   valgrind   ./map_unaligned 
++map_unmap:       valgrind   --sanity-level=3 ./map_unmap 
++mmap_fcntl_bug:  valgrind   -q ./mmap_fcntl_bug 
++mq:              valgrind   ./mq 
++munmap_exe:      valgrind   ./munmap_exe 
++nestedfns:       valgrind   ./nestedfns 
++nodir:           valgrind   ./nodir.vgtest/foobar 
++pending:         valgrind   ./pending 
++-- Running  tests in none/tests/ppc32 ----------------------------------
++bug129390-ppc32: valgrind   -q ./bug129390-ppc32 
++bug139050-ppc32: valgrind   -q ./bug139050-ppc32 
++jm-fp:           valgrind   ./jm-insns -f 
++jm-int:          valgrind   ./jm-insns -i 
++jm-vmx:          valgrind   ./jm-insns -a 
++ldstrev:         valgrind   ./ldstrev 
++lsw:             valgrind   ./lsw 
++mcrfs:           valgrind   ./mcrfs 
++mftocrf:         valgrind   ./mftocrf 
++power5+_round:   valgrind   ./power5+_round 
++power6_bcmp:     valgrind   ./power6_bcmp 
++round:           valgrind   ./round 
++test_dfp1:       valgrind   ./test_dfp1 
++test_dfp2:       valgrind   ./test_dfp2 
++test_dfp3:       valgrind   ./test_dfp3 
++test_dfp4:       valgrind   ./test_dfp4 
++test_dfp5:       valgrind   ./test_dfp5 
++test_fx:         valgrind   ./test_fx 
++test_gx:         valgrind   ./test_gx 
++test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
++test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
++test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
++testVMX:         valgrind   ./testVMX 
++tw:              valgrind   ./tw 
++twi:             valgrind   ./twi 
++xlc_dbl_u32:     valgrind   ./xlc_dbl_u32 
++-- Finished tests in none/tests/ppc32 ----------------------------------
++-- Running  tests in none/tests/ppc64 ----------------------------------
++jm-fp:           valgrind   ./jm-insns -f 
++jm-int:          valgrind   ./jm-insns -i 
++jm-vmx:          valgrind   ./jm-insns -a 
++lsw:             valgrind   ./lsw 
++power6_bcmp:     valgrind   ./power6_bcmp 
++power6_mf_gpr:   valgrind   ./power6_mf_gpr 
++round:           valgrind   ./round 
++std_reg_imm:     valgrind   -q ./std_reg_imm 
++test_dfp1:       valgrind   ./test_dfp1 
++test_dfp2:       valgrind   ./test_dfp2 
++test_dfp3:       valgrind   ./test_dfp3 
++test_dfp4:       valgrind   ./test_dfp4 
++test_dfp5:       valgrind   ./test_dfp5 
++test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
++test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
++test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
++tw_td:           valgrind   ./tw_td 
++twi_tdi:         valgrind   ./twi_tdi 
++-- Finished tests in none/tests/ppc64 ----------------------------------
++process_vm_readv_writev: valgrind   ./process_vm_readv_writev 
++procfs-linux:    valgrind   ./procfs-cmdline-exe arg1 "arg 2" arg3
++procfs-non-linux: (skipping, prereq failed: [ $(uname) != Linux ])
++pth_atfork1:     valgrind   ./pth_atfork1 
++pth_blockedsig:  valgrind   ./pth_blockedsig 
++pth_cancel1:     valgrind   ./pth_cancel1 
++pth_cancel2:     valgrind   ./pth_cancel2 
++pth_cvsimple:    valgrind   ./pth_cvsimple 
++pth_empty:       valgrind   ./pth_empty 
++pth_exit:        valgrind   ./pth_exit 
++pth_exit2:       valgrind   ./pth_exit2 
++pth_mutexspeed:  valgrind   ./pth_mutexspeed 
++pth_once:        valgrind   ./pth_once 
++pth_rwlock:      valgrind   ./pth_rwlock 
++pth_stackalign:  valgrind   ./pth_stackalign 
++rcrl:            valgrind   ./rcrl 
++readline1:       valgrind   ./readline1 
++require-text-symbol-1: valgrind   -q "--require-text-symbol=:*libc.so*:strl?n" ./require-text-symbol 
++require-text-symbol-2: valgrind   -q "--require-text-symbol=:*libc.so*:doesntexist" --vgdb-prefix=./vgdb-prefix-require-text-symbol-2 ./require-text-symbol 
++res_search:      valgrind   -q ./res_search www.yahoo.com
++resolv:          valgrind   ./resolv 
++rlimit64_nofile: valgrind   ./rlimit64_nofile 
++rlimit_nofile:   valgrind   ./rlimit_nofile 
++selfrun:         (skipping, prereq failed: grep '^#define HAVE_PIE 1' ../../config.h > /dev/null)
++sem:             valgrind   ./sem 
++semlimit:        valgrind   ./semlimit 
++sha1_test:       valgrind   ./sha1_test 
++shell:           valgrind   -q ./shell 
++shell_badinterp: valgrind   ./shell_badinterp 
++shell_binaryfile: valgrind   ./shell_binaryfile 
++shell_dir:       valgrind   ./x86/ 
++*** shell_dir failed (stderr) ***
++shell_nonexec:   valgrind   ./shell.vgtest 
++shell_nosuchfile: valgrind   ./shell_nosuchfile 
++shell_valid1:    valgrind   -q ./shell_valid1 
++shell_valid2:    valgrind   -q ./shell_valid2 
++shell_valid3:    valgrind   -q ./shell_valid3 
++shell_zerolength: valgrind   -q ./shell_zerolength 
++shortpush:       valgrind   ./shortpush 
++shorts:          valgrind   ./shorts 
++sigstackgrowth:  valgrind   --sanity-level=3 ./sigstackgrowth 
++stackgrowth:     valgrind   --sanity-level=3 ./stackgrowth 
++syscall-restart1: valgrind   ./syscall-restart1 
++syscall-restart2: valgrind   ./syscall-restart2 
++syslog:          valgrind   -q ./syslog 
++system:          valgrind   ./system 
++thread-exits:    valgrind   ./thread-exits 
++threaded-fork:   valgrind   ./threaded-fork 
++threadederrno:   valgrind   -q ./threadederrno 
++timestamp:       valgrind   --time-stamp=yes ./timestamp 
++tls:             valgrind   ./tls 
++vgprintf:        valgrind   ./vgprintf 
++-- Finished tests in none/tests ----------------------------------------
++-- Running  tests in helgrind/tests ------------------------------------
++annotate_hbefore: valgrind   -q --fair-sched=try ./annotate_hbefore 
++annotate_rwlock: valgrind   -q ./annotate_rwlock 
++annotate_smart_pointer: valgrind   ./../../drd/tests/annotate_smart_pointer 50 5
++bar_bad:         valgrind   -q ./bar_bad 
++bar_trivial:     valgrind   -q ./bar_trivial 
++cond_timedwait_invalid: valgrind   ./cond_timedwait_invalid 
++free_is_write:   valgrind   --free-is-write=yes ./free_is_write 
++hg01_all_ok:     valgrind   ./hg01_all_ok 
++hg02_deadlock:   valgrind   ./hg02_deadlock 
++hg03_inherit:    valgrind   --read-var-info=yes ./hg03_inherit 
++hg04_race:       valgrind   --read-var-info=yes ./hg04_race 
++hg05_race2:      valgrind   --read-var-info=yes ./hg05_race2 
++hg06_readshared: valgrind   ./hg06_readshared 
++locked_vs_unlocked1_fwd: valgrind   -q ./locked_vs_unlocked1 
++locked_vs_unlocked1_rev: valgrind   -q ./locked_vs_unlocked1 x
++locked_vs_unlocked2: valgrind   -q ./locked_vs_unlocked2 
++locked_vs_unlocked3: valgrind   -q ./locked_vs_unlocked3 
++pth_barrier1:    valgrind   -q ./../../drd/tests/pth_barrier 2 1 1
++pth_barrier2:    valgrind   -q --cmp-race-err-addrs=yes ./../../drd/tests/pth_barrier 2 32 1
++pth_barrier3:    valgrind   -q ./../../drd/tests/pth_barrier 32 1 1
++pth_destroy_cond: valgrind   -q ./pth_destroy_cond 
++pth_spinlock:    (skipping, prereq failed: false)
++rwlock_race:     valgrind   --read-var-info=yes ./../../drd/tests/rwlock_race 
++rwlock_test:     valgrind   ./../../drd/tests/rwlock_test 
++t2t_laog:        valgrind   ./t2t 30 10 4
++tc01_simple_race: valgrind   --read-var-info=yes ./tc01_simple_race 
++tc02_simple_tls: valgrind   ./tc02_simple_tls 
++tc03_re_excl:    valgrind   ./tc03_re_excl 
++tc04_free_lock:  valgrind   ./tc04_free_lock 
++tc05_simple_race: valgrind   --read-var-info=yes ./tc05_simple_race 
++tc06_two_races:  valgrind   --read-var-info=yes ./tc06_two_races 
++tc06_two_races_xml: valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --log-file=/dev/null ./tc06_two_races 
++tc07_hbl1:       valgrind   ./tc07_hbl1 
++tc08_hbl2:       valgrind   ./tc08_hbl2 
++tc09_bad_unlock: valgrind   ./tc09_bad_unlock 
++tc10_rec_lock:   valgrind   ./tc10_rec_lock 
++tc11_XCHG:       valgrind   ./tc11_XCHG 
++tc12_rwl_trivial: valgrind   ./tc12_rwl_trivial 
++tc13_laog1:      valgrind   ./tc13_laog1 
++tc14_laog_dinphils: valgrind   ./tc14_laog_dinphils 
++tc15_laog_lockdel: valgrind   ./tc15_laog_lockdel 
++tc16_byterace:   valgrind   --read-var-info=yes ./tc16_byterace 
++tc17_sembar:     valgrind   ./tc17_sembar 
++tc18_semabuse:   valgrind   ./tc18_semabuse 
++*** tc18_semabuse failed (stderr) ***
++tc19_shadowmem:  valgrind   --cmp-race-err-addrs=yes --error-limit=no ./tc19_shadowmem 
++tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap 
++*** tc20_verifywrap failed (stderr) ***
++tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
++tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
++sh: line 1:  3926 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
++tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
++-- Finished tests in helgrind/tests ------------------------------------
++-- Running  tests in drd/tests -----------------------------------------
++annotate_barrier: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./annotate_barrier 2 1 1 
++annotate_barrier_xml: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 --xml=yes --xml-fd=2 ./annotate_barrier 2 1 1 
++annotate_hb_err: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_hb_err 
++annotate_hb_race: valgrind   --check-stack-var=yes --show-confl-seg=no ./annotate_hb_race 
++annotate_hbefore: valgrind   --fair-sched=try --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_hbefore 
++annotate_ignore_read: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 69
++annotate_ignore_rw: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw 
++annotate_ignore_rw2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw -r
++annotate_ignore_write: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write 
++annotate_ignore_write2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write -r
++annotate_order_1: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 3
++annotate_order_2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 30
++annotate_order_3: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 31
++annotate_publish_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_publish_hg 
++annotate_rwlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_rwlock 
++annotate_rwlock_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_rwlock 
++annotate_smart_pointer: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 50 5
++annotate_smart_pointer2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 1 1 0
++annotate_spinlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 27
++annotate_static: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_static 
++annotate_trace_memory: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
++annotate_trace_memory_xml: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
++atomic_var:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2 ./atomic_var 
++bar_bad:         valgrind   ./../../helgrind/tests/bar_bad 
++bar_bad_xml:     valgrind   --xml=yes --xml-fd=2 ./../../helgrind/tests/bar_bad 
++bar_trivial:     valgrind   ./../../helgrind/tests/bar_trivial 
++boost_thread:    (skipping, prereq failed: test -e boost_thread)
++bug-235681:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./bug-235681 -q
++circular_buffer: valgrind   ./circular_buffer -q
++custom_alloc:    valgrind   ./custom_alloc 
++custom_alloc_fiw: valgrind   --free-is-write=yes ./custom_alloc 
++fp_race:         valgrind   --read-var-info=yes ./fp_race 
++fp_race2:        valgrind   ./fp_race -m
++fp_race_xml:     valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --trace-fork-join=yes ./fp_race 
++free_is_write:   valgrind   --read-var-info=yes --free-is-write=yes --show-confl-seg=no ./free_is_write -q
++free_is_write2:  valgrind   --read-var-info=yes --free-is-write=yes --check-stack-var=yes --show-confl-seg=no ./free_is_write -q
++hg01_all_ok:     valgrind   ./../../helgrind/tests/hg01_all_ok 
++hg02_deadlock:   valgrind   ./../../helgrind/tests/hg02_deadlock 
++hg03_inherit:    valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg03_inherit 
++hg04_race:       valgrind   --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg04_race 
++hg05_race2:      valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=2 ./../../helgrind/tests/hg05_race2 
++hg06_readshared: valgrind   ./../../helgrind/tests/hg06_readshared 
++hold_lock_1:     valgrind   --exclusive-threshold=500 --shared-threshold=2000 ./hold_lock -i 1000
++hold_lock_2:     valgrind   --exclusive-threshold=2000 --shared-threshold=500 ./hold_lock -i 1000
++linuxthreads_det: valgrind   --read-var-info=yes ./linuxthreads_det 
++matinv:          valgrind   ./matinv 30 -t 15 -q
++memory_allocation: valgrind   ./memory_allocation 
++monitor_example: valgrind   ./monitor_example 
++new_delete:      valgrind   ./new_delete 
++omp_matinv:      (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
++omp_matinv_racy: (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
++omp_prime_racy:  (skipping, prereq failed: ./run_openmp_test ./omp_prime)
++omp_printf:      (skipping, prereq failed: ./run_openmp_test ./omp_printf)
++pth_barrier:     valgrind   ./pth_barrier 2 1 1
++pth_barrier2:    valgrind   ./pth_barrier 2 32 1
++pth_barrier3:    valgrind   ./pth_barrier 32 1 1
++pth_barrier_race: valgrind   --num-callers=3 ./pth_barrier_race 
++pth_barrier_reinit: valgrind   ./pth_barrier_reinit 
++pth_barrier_thr_cr: valgrind   --suppressions=pth_barrier_thr_cr.supp ./pth_barrier_thr_cr 50
++pth_broadcast:   valgrind   ./pth_broadcast 
++pth_cancel_locked: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cancel_locked 
++pth_cleanup_handler: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cleanup_handler 
++pth_cond_race:   valgrind   --num-callers=3 ./pth_cond_race 
++pth_cond_race2:  valgrind   ./pth_cond_race -m
++pth_cond_race3:  valgrind   --report-signal-unlocked=no ./pth_cond_race 
++pth_create_chain: (skipping, prereq failed: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ])
++pth_create_glibc_2_0: (skipping, prereq failed: test -e pth_create_glibc_2_0 && ./supported_libpthread)
++pth_detached:    valgrind   ./pth_detached 1 1
++pth_detached2:   valgrind   --read-var-info=yes ./pth_detached 10 10
++pth_detached3:   valgrind   ./pth_detached3 
++pth_detached_sem: valgrind   ./pth_detached_sem 10 10
++pth_inconsistent_cond_wait: valgrind   --num-callers=3 ./pth_inconsistent_cond_wait -q
++pth_mutex_reinit: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_mutex_reinit 
++pth_once:        valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./tsan_unittest 106
++pth_process_shared_mutex: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_process_shared_mutex 
++pth_spinlock:    valgrind   --read-var-info=yes --check-stack-var=yes ./pth_spinlock 
++pth_uninitialized_cond: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_uninitialized_cond 
++read_and_free_race: valgrind   --free-is-write=yes --num-callers=3 --show-confl-seg=no ./../../helgrind/tests/free_is_write 
++recursive_mutex: valgrind   --check-stack-var=yes --read-var-info=yes ./recursive_mutex 
++rwlock_race:     valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./rwlock_race 
++rwlock_test:     valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./rwlock_test 
++rwlock_type_checking: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./rwlock_type_checking 
++sem_as_mutex:    valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex 
++sem_as_mutex2:   valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex -m
++sem_as_mutex3:   valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_as_mutex 
++sem_open:        valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open 
++sem_open2:       valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open -m
++*** sem_open2 failed (stderr) ***
++sem_open3:       valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_open 
++sem_open_traced: valgrind   --check-stack-var=yes --read-var-info=yes --trace-semaphore=yes ./sem_open -m
++*** sem_open_traced failed (stderr) ***
++sigalrm:         valgrind   ./sigalrm 
++sigaltstack:     valgrind   -q ./../../memcheck/tests/sigaltstack 
++std_thread:      (skipping, prereq failed: false && test -e std_thread && ./supported_libpthread)
++tc01_simple_race: valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc01_simple_race 
++tc02_simple_tls: valgrind   ./../../helgrind/tests/tc02_simple_tls 
++tc03_re_excl:    valgrind   ./../../helgrind/tests/tc03_re_excl 
++tc04_free_lock:  valgrind   --check-stack-var=yes ./../../helgrind/tests/tc04_free_lock 
++tc05_simple_race: valgrind   ./../../helgrind/tests/tc05_simple_race 
++tc06_two_races:  valgrind   ./../../helgrind/tests/tc06_two_races 
++tc07_hbl1:       valgrind   ./../../helgrind/tests/tc07_hbl1 
++tc08_hbl2:       valgrind   ./../../helgrind/tests/tc08_hbl2 
++tc09_bad_unlock: valgrind   --check-stack-var=yes --num-callers=3 ./../../helgrind/tests/tc09_bad_unlock 
++tc10_rec_lock:   valgrind   ./../../helgrind/tests/tc10_rec_lock 
++tc11_XCHG:       valgrind   ./../../helgrind/tests/tc11_XCHG 
++tc12_rwl_trivial: valgrind   ./../../helgrind/tests/tc12_rwl_trivial 
++tc13_laog1:      valgrind   ./../../helgrind/tests/tc13_laog1 
++tc15_laog_lockdel: valgrind   ./../../helgrind/tests/tc15_laog_lockdel 
++tc16_byterace:   valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc16_byterace 
++tc17_sembar:     valgrind   ./../../helgrind/tests/tc17_sembar 
++tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse 
++tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
++tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
++tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
++sh: line 1:  9338 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
++tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
++thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
++thread_name_xml: valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 --xml=yes --xml-fd=2 ./thread_name 
++threaded-fork:   valgrind   ./threaded-fork 
++trylock:         valgrind   ./trylock 
++unit_bitmap:     valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_bitmap -s 93 -t 97 -q
++unit_vc:         valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_vc 
++-- Finished tests in drd/tests -----------------------------------------
++-- Running  tests in exp-sgcheck/tests ---------------------------------
++bad_percentify:  (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++globalerr:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++hackedbz2:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++hsg:             (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++preen_invars:    (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++stackerr:        (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++-- Finished tests in exp-sgcheck/tests ---------------------------------
++-- Running  tests in exp-bbv/tests/ppc32-linux -------------------------
++ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll 
++million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
++-- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
++
++== 529 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++gdbserver_tests/mcmain_pic               (stdout)
++gdbserver_tests/mcmain_pic               (stderr)
++gdbserver_tests/mcmain_pic               (stdoutB)
++gdbserver_tests/mcmain_pic               (stderrB)
++memcheck/tests/linux/timerfd-syscall     (stderr)
++memcheck/tests/supp_unknown              (stderr)
++memcheck/tests/varinfo6                  (stderr)
++memcheck/tests/wrap8                     (stdout)
++memcheck/tests/wrap8                     (stderr)
++massif/tests/big-alloc                   (post)
++massif/tests/deep-D                      (post)
++none/tests/shell_dir                     (stderr)
++helgrind/tests/tc18_semabuse             (stderr)
++helgrind/tests/tc20_verifywrap           (stderr)
++drd/tests/sem_open2                      (stderr)
++drd/tests/sem_open_traced                (stderr)
++
++make: *** [regtest] Error 1
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0002-Configure-for-SPE-on-an-SPE-machine.patch b/recipes-devtools/valgrind/files/0002-Configure-for-SPE-on-an-SPE-machine.patch
new file mode 100644
index 0000000..3abfe6f
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0002-Configure-for-SPE-on-an-SPE-machine.patch
@@ -0,0 +1,420 @@
+From 59c75c5dda7fce837a682b991282365ec8b905c8 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 2 Jan 2013 10:48:36 -0800
+Subject: [PATCH 02/65]  Configure for SPE on an SPE machine.
+
+---
+ VEX/priv/guest_ppc_toIR.c |   36 +++++++++++++-----
+ VEX/priv/main_main.c      |   20 ++++++++---
+ VEX/pub/libvex.h          |    1 +
+ configure.in              |   29 +++++++++++++++
+ coregrind/m_machine.c     |   89 +++++++++++++++++++++++++++++++++++++++++----
+ regtest-power7-64.log     |   24 ++++++------
+ 6 files changed, 164 insertions(+), 35 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 0ca00d8..57f7248 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -16483,11 +16483,14 @@ DisResult disInstr_PPC_WRK (
+    DisResult dres;
+    UInt      theInstr;
+    IRType    ty = mode64 ? Ity_I64 : Ity_I32;
+-   Bool      allow_F  = False;
+-   Bool      allow_V  = False;
+-   Bool      allow_FX = False;
+-   Bool      allow_GX = False;
+-   Bool      allow_VX = False;  // Equates to "supports Power ISA 2.06
++   Bool      allow_F   = False;
++   Bool      allow_V   = False;
++#ifdef __SPE__
++   Bool      allow_SPE = False;
++#endif
++   Bool      allow_FX  = False;
++   Bool      allow_GX  = False;
++   Bool      allow_VX  = False;  // Equates to "supports Power ISA 2.06
+    Bool      allow_DFP = False;
+    UInt      hwcaps = archinfo->hwcaps;
+    Long      delta;
+@@ -16501,11 +16504,14 @@ DisResult disInstr_PPC_WRK (
+       allow_VX = (0 != (hwcaps & VEX_HWCAPS_PPC64_VX));
+       allow_DFP = (0 != (hwcaps & VEX_HWCAPS_PPC64_DFP));
+    } else {
+-      allow_F  = (0 != (hwcaps & VEX_HWCAPS_PPC32_F));
+-      allow_V  = (0 != (hwcaps & VEX_HWCAPS_PPC32_V));
+-      allow_FX = (0 != (hwcaps & VEX_HWCAPS_PPC32_FX));
+-      allow_GX = (0 != (hwcaps & VEX_HWCAPS_PPC32_GX));
+-      allow_VX = (0 != (hwcaps & VEX_HWCAPS_PPC32_VX));
++      allow_F   = (0 != (hwcaps & VEX_HWCAPS_PPC32_F));
++      allow_V   = (0 != (hwcaps & VEX_HWCAPS_PPC32_V));
++#ifdef __SPE__
++      allow_SPE = (0 != (hwcaps & VEX_HWCAPS_PPC32_SPE));
++#endif
++      allow_FX  = (0 != (hwcaps & VEX_HWCAPS_PPC32_FX));
++      allow_GX  = (0 != (hwcaps & VEX_HWCAPS_PPC32_GX));
++      allow_VX  = (0 != (hwcaps & VEX_HWCAPS_PPC32_VX));
+       allow_DFP = (0 != (hwcaps & VEX_HWCAPS_PPC32_DFP));
+    }
+ 
+@@ -17485,6 +17491,9 @@ DisResult disInstr_PPC_WRK (
+ 
+ 
+    case 0x04:
++#ifdef __SPE__
++      if (allow_SPE) goto decode_noSPE;
++#else
+       /* AltiVec instructions */
+ 
+       opc2 = IFIELD(theInstr, 0, 6);
+@@ -17630,6 +17639,7 @@ DisResult disInstr_PPC_WRK (
+       default:
+          goto decode_failure;
+       }
++#endif
+       break;
+ 
+    default:
+@@ -17643,6 +17653,12 @@ DisResult disInstr_PPC_WRK (
+       vassert(!allow_V);
+       vex_printf("disInstr(ppc): declined to decode an AltiVec insn.\n");
+       goto decode_failure;
++#ifdef __SPE__
++   decode_noSPE: /* yet! :) */
++      vassert(allow_SPE);
++      vex_printf("disInstr(ppc): not ready to decode an SPE insn yet!\n");
++      goto decode_failure;
++#endif
+    decode_noVX:
+       vassert(!allow_VX);
+       vex_printf("disInstr(ppc): declined to decode a Power ISA 2.06 insn.\n");
+diff --git a/VEX/priv/main_main.c b/VEX/priv/main_main.c
+index b093292..3a3690c 100644
+--- a/VEX/priv/main_main.c
++++ b/VEX/priv/main_main.c
+@@ -1149,11 +1149,14 @@ static HChar* show_hwcaps_ppc32 ( UInt hwcaps )
+ {
+    /* Monotonic with complications.  Basically V > F > baseline,
+       but once you have F then you can have FX or GX too. */
+-   const UInt F  = VEX_HWCAPS_PPC32_F;
+-   const UInt V  = VEX_HWCAPS_PPC32_V;
+-   const UInt FX = VEX_HWCAPS_PPC32_FX;
+-   const UInt GX = VEX_HWCAPS_PPC32_GX;
+-   const UInt VX = VEX_HWCAPS_PPC32_VX;
++   const UInt F   = VEX_HWCAPS_PPC32_F;
++   const UInt V   = VEX_HWCAPS_PPC32_V;
++#ifdef __SPE__
++   const UInt SPE = VEX_HWCAPS_PPC32_SPE;
++#endif
++   const UInt FX  = VEX_HWCAPS_PPC32_FX;
++   const UInt GX  = VEX_HWCAPS_PPC32_GX;
++   const UInt VX  = VEX_HWCAPS_PPC32_VX;
+    const UInt DFP = VEX_HWCAPS_PPC32_DFP;
+          UInt c  = hwcaps;
+    if (c == 0)           return "ppc32-int";
+@@ -1161,11 +1164,18 @@ static HChar* show_hwcaps_ppc32 ( UInt hwcaps )
+    if (c == (F|FX))      return "ppc32-int-flt-FX";
+    if (c == (F|GX))      return "ppc32-int-flt-GX";
+    if (c == (F|FX|GX))   return "ppc32-int-flt-FX-GX";
++#ifdef __SPE__
++   if (c == (F|SPE))       return "ppc32-int-flt-SPE";
++   if (c == (F|SPE|FX))    return "ppc32-int-flt-SPE-FX";
++   if (c == (F|SPE|GX))    return "ppc32-int-flt-SPE-GX";
++   if (c == (F|SPE|FX|GX)) return "ppc32-int-flt-SPE-FX-GX";
++#else
+    if (c == (F|V))       return "ppc32-int-flt-vmx";
+    if (c == (F|V|FX))    return "ppc32-int-flt-vmx-FX";
+    if (c == (F|V|GX))    return "ppc32-int-flt-vmx-GX";
+    if (c == (F|V|FX|GX)) return "ppc32-int-flt-vmx-FX-GX";
+    if (c == (F|V|FX|GX|DFP))    return "ppc32-int-flt-vmx-FX-GX-DFP";
++#endif
+    if (c == (F|V|FX|GX|VX|DFP)) return "ppc32-int-flt-vmx-FX-GX-VX-DFP";
+    return NULL;
+ }
+diff --git a/VEX/pub/libvex.h b/VEX/pub/libvex.h
+index 9d7fcb0..c94e16d 100644
+--- a/VEX/pub/libvex.h
++++ b/VEX/pub/libvex.h
+@@ -86,6 +86,7 @@ typedef
+ /* ppc32: baseline capability is integer only */
+ #define VEX_HWCAPS_PPC32_F     (1<<8)  /* basic (non-optional) FP */
+ #define VEX_HWCAPS_PPC32_V     (1<<9)  /* Altivec (VMX) */
++#define VEX_HWCAPS_PPC32_SPE   (1<<19) /* SPE */
+ #define VEX_HWCAPS_PPC32_FX    (1<<10) /* FP extns (fsqrt, fsqrts) */
+ #define VEX_HWCAPS_PPC32_GX    (1<<11) /* Graphics extns
+                                           (fres,frsqrte,fsel,stfiwx) */
+diff --git a/configure.in b/configure.in
+index 1da3a2c..3445879 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1184,6 +1184,35 @@ CFLAGS=$safe_CFLAGS
+ 
+ AM_CONDITIONAL(HAS_VSX, test x$ac_have_vsx = xyes)
+ 
++# Check for SPE:
++# Does this compiler support -mspe?
++# Can we include the header <spe.h>?
++# Can we compile SPE instructions?
++
++AC_MSG_CHECKING([for SPE])
++
++safe_CFLAGS=$CFLAGS
++CFLAGS="-mspe"
++
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <spe.h>
++]], [[
++  __ev64_u16__ s = (__ev64_u16__) { 0xdead, 0xbeef, 0xdead, 0xbeef };
++  __ev64_u16__ t = (__ev64_u16__) { 0xffff, 0xffff, 0xffff, 0xffff };
++
++  t = __ev_ldd (&s, 0);
++]])], [
++ac_have_spe=yes
++AC_MSG_RESULT([yes])
++AC_DEFINE([HAS_SPE], 1,
++          [Define to 1 if gcc/as can do SPE.])
++], [
++ac_have_spe=no
++AC_MSG_RESULT([no])
++])
++CFLAGS=$safe_CFLAGS
++
++AM_CONDITIONAL(HAS_SPE, test x$ac_have_spe = xyes)
+ 
+ AC_MSG_CHECKING([that assembler knows DFP])
+ 
+diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c
+index 82c5751..6a77057 100644
+--- a/coregrind/m_machine.c
++++ b/coregrind/m_machine.c
+@@ -850,7 +850,7 @@ Bool VG_(machine_get_hwcaps)( void )
+      vki_sigaction_fromK_t saved_sigill_act, saved_sigfpe_act;
+      vki_sigaction_toK_t     tmp_sigill_act,   tmp_sigfpe_act;
+ 
+-     volatile Bool have_F, have_V, have_FX, have_GX, have_VX, have_DFP;
++     volatile Bool have_F, have_V, have_SPE, have_FX, have_GX, have_VX, have_DFP;
+      Int r;
+ 
+      /* This is a kludge.  Really we ought to back-convert saved_act
+@@ -913,6 +913,78 @@ Bool VG_(machine_get_hwcaps)( void )
+         __asm__ __volatile__(".long 0x10000484"); /*vor 0,0,0*/
+      }
+ 
++#ifdef __SPE__
++
++     /* SPE insns */
++
++     /* Altivec and SPE have overlapping opcode space, and thus are
++      * mutually exclusive (ref. Power ISA Version 2.06 Revision B,
++      * Section 1.3.5: 'Categories', Figure 1, Footnote 1).
++      *
++      * TODO: Add test for mutual exclusivity of Altivec and SPE
++      *       If we are on a PPC, the test should test that exactly
++      *       one of Altivec and SPE is true (by dumping the HW
++      *       capability).
++      *       If we are not on a PPC, obviously the test should not
++      *       be run.
++      *       Based on this code below:
++      *       VG_(debugLog)(1, "machine", "F %d V %d SPE %d FX %d GX %d VX %d DFP %d\n",
++      *             (Int)have_F, (Int)have_V, (Int)have_SPE, (Int)have_FX,
++      *             (Int)have_GX, (Int)have_VX, (Int)have_DFP);
++      *
++      * How do we detect in here, without including config.h (Ref.
++      * http://thread.gmane.org/gmane.comp.debugging.valgrind.devel/\
++      * 10487) that we are on a system with SPE capability?
++      *
++      * - Per the SPE2PIM, Section 2.2.5: 'Programming Interface', an
++      * implementation that provides the macro __SPE__ should define
++      * it to a non-zero value and that definition should not occur in
++      * the <spe.h> header file.
++      *
++      * Per configure.in, Valgrind requires GCC to be compiled, and a
++      * GCC configured for gnuspe, will define the macro __SPE__ (see:
++      * gcc/config/rs6000/rs6000-c.c), thus we can assume that if the
++      * macro __SPE__ is defined, then we are on a system with SPE
++      * capability.
++      *
++      * Note: SPE support only implemented for VGA_ppc32
++      *
++      * References:
++      *
++      * 0. SPE2PIM
++      *
++      *    Enhanced Signal Processing Extension and
++      *    Embedded Floating-Point Version 2
++      *    Auxiliary Processing Units
++      *    Programming Interface Manual
++      *
++      *    Document Number: SPE2PIM
++      *    Rev. 1.0-1 : Based on Specifications SPE2rev1.0
++      *    and EFP2rev1.3
++      *    10/2011
++      *
++      *    Freescale Semiconductor, Inc.
++      *    http://www.freescale.com
++      */
++
++     /* Turn off Altivec. */
++     have_V = False;
++
++     have_SPE = True;
++     /* TODO: In include/pub_tool_libcsetjmp.h:
++      * #define VG_MINIMAL_JMP_BUF(_name)        UInt _name [32+1+1]
++      * 32+1+1 UInt's may be inadequate size for _name on SPE?
++      */
++     if (VG_MINIMAL_SETJMP(env_unsup_insn)) {
++        VG_(dmsg)("warning: __SPE__ defined, but SPE insns illegal. Assuming no SPE.\n");
++        have_SPE = False;
++     } else {
++        __asm__ __volatile__(".long 0x10000217"); /* evor 0,0,0 */
++     }
++#else
++     have_SPE = False;
++#endif
++
+      /* General-Purpose optional (fsqrt, fsqrts) */
+      have_FX = True;
+      if (VG_MINIMAL_SETJMP(env_unsup_insn)) {
+@@ -955,8 +1027,8 @@ Bool VG_(machine_get_hwcaps)( void )
+      vg_assert(r == 0);
+      r = VG_(sigprocmask)(VKI_SIG_SETMASK, &saved_set, NULL);
+      vg_assert(r == 0);
+-     VG_(debugLog)(1, "machine", "F %d V %d FX %d GX %d VX %d DFP %d\n",
+-                    (Int)have_F, (Int)have_V, (Int)have_FX,
++     VG_(debugLog)(1, "machine", "F %d V %d SPE %d FX %d GX %d VX %d DFP %d\n",
++                    (Int)have_F, (Int)have_V, (Int)have_SPE, (Int)have_FX,
+                     (Int)have_GX, (Int)have_VX, (Int)have_DFP);
+      /* Make FP a prerequisite for VMX (bogusly so), and for FX and GX. */
+      if (have_V && !have_F)
+@@ -972,11 +1044,12 @@ Bool VG_(machine_get_hwcaps)( void )
+      va = VexArchPPC32;
+ 
+      vai.hwcaps = 0;
+-     if (have_F)  vai.hwcaps |= VEX_HWCAPS_PPC32_F;
+-     if (have_V)  vai.hwcaps |= VEX_HWCAPS_PPC32_V;
+-     if (have_FX) vai.hwcaps |= VEX_HWCAPS_PPC32_FX;
+-     if (have_GX) vai.hwcaps |= VEX_HWCAPS_PPC32_GX;
+-     if (have_VX) vai.hwcaps |= VEX_HWCAPS_PPC32_VX;
++     if (have_F)   vai.hwcaps |= VEX_HWCAPS_PPC32_F;
++     if (have_V)   vai.hwcaps |= VEX_HWCAPS_PPC32_V;
++     if (have_SPE) vai.hwcaps |= VEX_HWCAPS_PPC32_SPE;
++     if (have_FX)  vai.hwcaps |= VEX_HWCAPS_PPC32_FX;
++     if (have_GX)  vai.hwcaps |= VEX_HWCAPS_PPC32_GX;
++     if (have_VX)  vai.hwcaps |= VEX_HWCAPS_PPC32_VX;
+      if (have_DFP) vai.hwcaps |= VEX_HWCAPS_PPC32_DFP;
+ 
+ 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index ebd4ebe..c3a03f9 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 59 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 56 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1063,7 +1063,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 62 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 61 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1155,7 +1155,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 60 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 59 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1223,7 +1223,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 60 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 59 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1625,7 +1625,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 54 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 53 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1860,7 +1860,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 62 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 63 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1977,7 +1977,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  8985 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 23950 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1994,7 +1994,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  9544 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 31147 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2106,7 +2106,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 14245 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 29122 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2242,7 +2242,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 18718 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:   451 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2408,7 +2408,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  3926 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 25497 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2527,7 +2527,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  9338 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 28309 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0003-Declare-the-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch b/recipes-devtools/valgrind/files/0003-Declare-the-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch
new file mode 100644
index 0000000..a8654e8
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0003-Declare-the-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch
@@ -0,0 +1,303 @@
+From 00e825be1fe85be497771bceeb9e738a1675cdcb Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 3 Jan 2013 10:23:46 -0800
+Subject: [PATCH 03/65] Declare the 64-bit SPE GPR's to the PPC32 guest state. (Add upper word per GPR).
+
+---
+ VEX/priv/guest_ppc_helpers.c |   96 +++++++++++++++++++++++++++--------------
+ VEX/priv/guest_ppc_toIR.c    |   56 ++++++++++++++++++++++++
+ VEX/pub/libvex_guest_ppc32.h |   97 ++++++++++++++++++++++++++++--------------
+ 3 files changed, 185 insertions(+), 64 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 6ffb1ea..4f457e0 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -357,38 +357,70 @@ void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state )
+    vex_state->pad3 = 0;
+    vex_state->pad4 = 0;
+ 
+-   vex_state->guest_GPR0  = 0;
+-   vex_state->guest_GPR1  = 0;
+-   vex_state->guest_GPR2  = 0;
+-   vex_state->guest_GPR3  = 0;
+-   vex_state->guest_GPR4  = 0;
+-   vex_state->guest_GPR5  = 0;
+-   vex_state->guest_GPR6  = 0;
+-   vex_state->guest_GPR7  = 0;
+-   vex_state->guest_GPR8  = 0;
+-   vex_state->guest_GPR9  = 0;
+-   vex_state->guest_GPR10 = 0;
+-   vex_state->guest_GPR11 = 0;
+-   vex_state->guest_GPR12 = 0;
+-   vex_state->guest_GPR13 = 0;
+-   vex_state->guest_GPR14 = 0;
+-   vex_state->guest_GPR15 = 0;
+-   vex_state->guest_GPR16 = 0;
+-   vex_state->guest_GPR17 = 0;
+-   vex_state->guest_GPR18 = 0;
+-   vex_state->guest_GPR19 = 0;
+-   vex_state->guest_GPR20 = 0;
+-   vex_state->guest_GPR21 = 0;
+-   vex_state->guest_GPR22 = 0;
+-   vex_state->guest_GPR23 = 0;
+-   vex_state->guest_GPR24 = 0;
+-   vex_state->guest_GPR25 = 0;
+-   vex_state->guest_GPR26 = 0;
+-   vex_state->guest_GPR27 = 0;
+-   vex_state->guest_GPR28 = 0;
+-   vex_state->guest_GPR29 = 0;
+-   vex_state->guest_GPR30 = 0;
+-   vex_state->guest_GPR31 = 0;
++   vex_state->guest_GPR0U  = 0;
++   vex_state->guest_GPR0   = 0;
++   vex_state->guest_GPR1U  = 0;
++   vex_state->guest_GPR1   = 0;
++   vex_state->guest_GPR2U  = 0;
++   vex_state->guest_GPR2   = 0;
++   vex_state->guest_GPR3U  = 0;
++   vex_state->guest_GPR3   = 0;
++   vex_state->guest_GPR4U  = 0;
++   vex_state->guest_GPR4   = 0;
++   vex_state->guest_GPR5U  = 0;
++   vex_state->guest_GPR5   = 0;
++   vex_state->guest_GPR6U  = 0;
++   vex_state->guest_GPR6   = 0;
++   vex_state->guest_GPR7U  = 0;
++   vex_state->guest_GPR7   = 0;
++   vex_state->guest_GPR8U  = 0;
++   vex_state->guest_GPR8   = 0;
++   vex_state->guest_GPR9U  = 0;
++   vex_state->guest_GPR9   = 0;
++   vex_state->guest_GPR10U = 0;
++   vex_state->guest_GPR10  = 0;
++   vex_state->guest_GPR11U = 0;
++   vex_state->guest_GPR11  = 0;
++   vex_state->guest_GPR12U = 0;
++   vex_state->guest_GPR12  = 0;
++   vex_state->guest_GPR13U = 0;
++   vex_state->guest_GPR13  = 0;
++   vex_state->guest_GPR14U = 0;
++   vex_state->guest_GPR14  = 0;
++   vex_state->guest_GPR15U = 0;
++   vex_state->guest_GPR15  = 0;
++   vex_state->guest_GPR16U = 0;
++   vex_state->guest_GPR16  = 0;
++   vex_state->guest_GPR17U = 0;
++   vex_state->guest_GPR17  = 0;
++   vex_state->guest_GPR18U = 0;
++   vex_state->guest_GPR18  = 0;
++   vex_state->guest_GPR19U = 0;
++   vex_state->guest_GPR19  = 0;
++   vex_state->guest_GPR20U = 0;
++   vex_state->guest_GPR20  = 0;
++   vex_state->guest_GPR21U = 0;
++   vex_state->guest_GPR21  = 0;
++   vex_state->guest_GPR22U = 0;
++   vex_state->guest_GPR22  = 0;
++   vex_state->guest_GPR23U = 0;
++   vex_state->guest_GPR23  = 0;
++   vex_state->guest_GPR24U = 0;
++   vex_state->guest_GPR24  = 0;
++   vex_state->guest_GPR25U = 0;
++   vex_state->guest_GPR25  = 0;
++   vex_state->guest_GPR26U = 0;
++   vex_state->guest_GPR26  = 0;
++   vex_state->guest_GPR27U = 0;
++   vex_state->guest_GPR27  = 0;
++   vex_state->guest_GPR28U = 0;
++   vex_state->guest_GPR28  = 0;
++   vex_state->guest_GPR29U = 0;
++   vex_state->guest_GPR29  = 0;
++   vex_state->guest_GPR30U = 0;
++   vex_state->guest_GPR30  = 0;
++   vex_state->guest_GPR31U = 0;
++   vex_state->guest_GPR31  = 0;
+ 
+    /* Initialise the vector state. */
+ #  define VECZERO(_vr) _vr[0]=_vr[1]=_vr[2]=_vr[3] = 0;
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 57f7248..dcca701 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -1303,6 +1303,62 @@ static void putVSReg ( UInt archreg, IRExpr* e )
+    stmt( IRStmt_Put(vsxGuestRegOffset(archreg), e) );
+ }
+ 
++static Int speGuestRegOffset ( UInt archreg )
++{
++   vassert(archreg < 32);
++
++   switch (archreg) {
++   case  0: return offsetof(VexGuestPPC32State, guest_GPR0U);
++   case  1: return offsetof(VexGuestPPC32State, guest_GPR1U);
++   case  2: return offsetof(VexGuestPPC32State, guest_GPR2U);
++   case  3: return offsetof(VexGuestPPC32State, guest_GPR3U);
++   case  4: return offsetof(VexGuestPPC32State, guest_GPR4U);
++   case  5: return offsetof(VexGuestPPC32State, guest_GPR5U);
++   case  6: return offsetof(VexGuestPPC32State, guest_GPR6U);
++   case  7: return offsetof(VexGuestPPC32State, guest_GPR7U);
++   case  8: return offsetof(VexGuestPPC32State, guest_GPR8U);
++   case  9: return offsetof(VexGuestPPC32State, guest_GPR9U);
++   case 10: return offsetof(VexGuestPPC32State, guest_GPR10U);
++   case 11: return offsetof(VexGuestPPC32State, guest_GPR11U);
++   case 12: return offsetof(VexGuestPPC32State, guest_GPR12U);
++   case 13: return offsetof(VexGuestPPC32State, guest_GPR13U);
++   case 14: return offsetof(VexGuestPPC32State, guest_GPR14U);
++   case 15: return offsetof(VexGuestPPC32State, guest_GPR15U);
++   case 16: return offsetof(VexGuestPPC32State, guest_GPR16U);
++   case 17: return offsetof(VexGuestPPC32State, guest_GPR17U);
++   case 18: return offsetof(VexGuestPPC32State, guest_GPR18U);
++   case 19: return offsetof(VexGuestPPC32State, guest_GPR19U);
++   case 20: return offsetof(VexGuestPPC32State, guest_GPR20U);
++   case 21: return offsetof(VexGuestPPC32State, guest_GPR21U);
++   case 22: return offsetof(VexGuestPPC32State, guest_GPR22U);
++   case 23: return offsetof(VexGuestPPC32State, guest_GPR23U);
++   case 24: return offsetof(VexGuestPPC32State, guest_GPR24U);
++   case 25: return offsetof(VexGuestPPC32State, guest_GPR25U);
++   case 26: return offsetof(VexGuestPPC32State, guest_GPR26U);
++   case 27: return offsetof(VexGuestPPC32State, guest_GPR27U);
++   case 28: return offsetof(VexGuestPPC32State, guest_GPR28U);
++   case 29: return offsetof(VexGuestPPC32State, guest_GPR29U);
++   case 30: return offsetof(VexGuestPPC32State, guest_GPR30U);
++   case 31: return offsetof(VexGuestPPC32State, guest_GPR31U);
++   default: break;
++   }
++   vpanic("speGuestRegOffset(ppc)"); /*notreached*/
++}
++
++/* Get contents of an SPE 64-bit GPRguest register */
++static IRExpr* getSPEReg ( UInt archreg )
++{
++   vassert(archreg < 32);
++   return IRExpr_Get( speGuestRegOffset(archreg), Ity_I64 );
++}
++
++/* Ditto, but write to an SPE 64-bit GPR instead. */
++static void putSPEReg ( UInt archreg, IRExpr* e )
++{
++   vassert(archreg < 32);
++   vassert(typeOfIRExpr(irsb->tyenv, e) == Ity_I64 );
++   stmt( IRStmt_Put( speGuestRegOffset(archreg), e) );
++}
+ 
+ static Int guestCR321offset ( UInt cr )
+ {
+diff --git a/VEX/pub/libvex_guest_ppc32.h b/VEX/pub/libvex_guest_ppc32.h
+index 606f16c..b31fc5e 100644
+--- a/VEX/pub/libvex_guest_ppc32.h
++++ b/VEX/pub/libvex_guest_ppc32.h
+@@ -55,38 +55,70 @@ typedef
+       /*  12 */ UInt pad4; 
+       /* Add 16 to all the numbers below.  Sigh. */
+       /* General Purpose Registers */
+-      /*   0 */ UInt guest_GPR0;
+-      /*   4 */ UInt guest_GPR1;
+-      /*   8 */ UInt guest_GPR2;
+-      /*  12 */ UInt guest_GPR3;
+-      /*  16 */ UInt guest_GPR4;
+-      /*  20 */ UInt guest_GPR5;
+-      /*  24 */ UInt guest_GPR6;
+-      /*  28 */ UInt guest_GPR7;
+-      /*  32 */ UInt guest_GPR8;
+-      /*  36 */ UInt guest_GPR9;
+-      /*  40 */ UInt guest_GPR10;
+-      /*  44 */ UInt guest_GPR11;
+-      /*  48 */ UInt guest_GPR12;
+-      /*  52 */ UInt guest_GPR13;
+-      /*  56 */ UInt guest_GPR14;
+-      /*  60 */ UInt guest_GPR15;
+-      /*  64 */ UInt guest_GPR16;
+-      /*  68 */ UInt guest_GPR17;
+-      /*  72 */ UInt guest_GPR18;
+-      /*  76 */ UInt guest_GPR19;
+-      /*  80 */ UInt guest_GPR20;
+-      /*  84 */ UInt guest_GPR21;
+-      /*  88 */ UInt guest_GPR22;
+-      /*  92 */ UInt guest_GPR23;
+-      /*  96 */ UInt guest_GPR24;
+-      /* 100 */ UInt guest_GPR25;
+-      /* 104 */ UInt guest_GPR26;
+-      /* 108 */ UInt guest_GPR27;
+-      /* 112 */ UInt guest_GPR28;
+-      /* 116 */ UInt guest_GPR29;
+-      /* 120 */ UInt guest_GPR30;
+-      /* 124 */ UInt guest_GPR31;
++      /*   0 */ UInt guest_GPR0U;
++      /*   4 */ UInt guest_GPR0;
++      /*   8 */ UInt guest_GPR1U;
++      /*  12 */ UInt guest_GPR1;
++      /*  16 */ UInt guest_GPR2U;
++      /*  20 */ UInt guest_GPR2;
++      /*  24 */ UInt guest_GPR3U;
++      /*  28 */ UInt guest_GPR3;
++      /*  32 */ UInt guest_GPR4U;
++      /*  36 */ UInt guest_GPR4;
++      /*  40 */ UInt guest_GPR5U;
++      /*  44 */ UInt guest_GPR5;
++      /*  48 */ UInt guest_GPR6U;
++      /*  52 */ UInt guest_GPR6;
++      /*  56 */ UInt guest_GPR7U;
++      /*  60 */ UInt guest_GPR7;
++      /*  64 */ UInt guest_GPR8U;
++      /*  68 */ UInt guest_GPR8;
++      /*  72 */ UInt guest_GPR9U;
++      /*  76 */ UInt guest_GPR9;
++      /*  80 */ UInt guest_GPR10U;
++      /*  84 */ UInt guest_GPR10;
++      /*  88 */ UInt guest_GPR11U;
++      /*  92 */ UInt guest_GPR11;
++      /*  96 */ UInt guest_GPR12U;
++      /* 100 */ UInt guest_GPR12;
++      /* 104 */ UInt guest_GPR13U;
++      /* 108 */ UInt guest_GPR13;
++      /* 112 */ UInt guest_GPR14U;
++      /* 116 */ UInt guest_GPR14;
++      /* 120 */ UInt guest_GPR15U;
++      /* 124 */ UInt guest_GPR15;
++      /* 128 */ UInt guest_GPR16U;
++      /* 132 */ UInt guest_GPR16;
++      /* 136 */ UInt guest_GPR17U;
++      /* 140 */ UInt guest_GPR17;
++      /* 144 */ UInt guest_GPR18U;
++      /* 148 */ UInt guest_GPR18;
++      /* 152 */ UInt guest_GPR19U;
++      /* 156 */ UInt guest_GPR19;
++      /* 160 */ UInt guest_GPR20U;
++      /* 164 */ UInt guest_GPR20;
++      /* 168 */ UInt guest_GPR21U;
++      /* 172 */ UInt guest_GPR21;
++      /* 176 */ UInt guest_GPR22U;
++      /* 180 */ UInt guest_GPR22;
++      /* 184 */ UInt guest_GPR23U;
++      /* 188 */ UInt guest_GPR23;
++      /* 192 */ UInt guest_GPR24U;
++      /* 196 */ UInt guest_GPR24;
++      /* 200 */ UInt guest_GPR25U;
++      /* 204 */ UInt guest_GPR25;
++      /* 208 */ UInt guest_GPR26U;
++      /* 212 */ UInt guest_GPR26;
++      /* 216 */ UInt guest_GPR27U;
++      /* 220 */ UInt guest_GPR27;
++      /* 224 */ UInt guest_GPR28U;
++      /* 228 */ UInt guest_GPR28;
++      /* 232 */ UInt guest_GPR29U;
++      /* 236 */ UInt guest_GPR29;
++      /* 240 */ UInt guest_GPR30U;
++      /* 244 */ UInt guest_GPR30;
++      /* 248 */ UInt guest_GPR31U;
++      /* 252 */ UInt guest_GPR31;
+ 
+       // Vector Registers, Floating Point Registers, and VSX Registers
+       // With ISA 2.06, the "Vector-Scalar Floating-point" category
+@@ -241,6 +273,7 @@ typedef
+ 
+       /* Padding to make it have an 8-aligned size */
+       /* 1356 */ UInt  padding;
++
+    }
+    VexGuestPPC32State;
+ 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0004-Power-ISA-V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch b/recipes-devtools/valgrind/files/0004-Power-ISA-V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch
new file mode 100644
index 0000000..7361b27
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0004-Power-ISA-V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch
@@ -0,0 +1,49 @@
+From 600c565e2133cc2b6f28a349e1376cbf21598f88 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 3 Jan 2013 11:05:08 -0800
+Subject: [PATCH 04/65] Power ISA V2.06B V2 Sec. 1.6.24 EVX-FORM extractors.
+
+---
+ VEX/priv/guest_ppc_toIR.c |   26 ++++++++++++++++++++++++++
+ 1 files changed, 26 insertions(+), 0 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index dcca701..fc5dd3c 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -358,6 +358,32 @@ static inline UChar ifieldSHW ( UInt instr )
+   return ifieldDM ( instr );
+ }
+ 
++/* Power ISA V2.06B V2 Sec. 1.6.24 EVX-FORM extractors. */
++
++static inline UChar evxOpcode( UInt instr ) {
++   return ifieldOPC( instr );
++}
++
++static inline UChar evxRS( UInt instr ) {
++   return toUChar( IFIELD( instr, 21, 5 ) );
++}
++
++static inline UChar evxRD( UInt instr ) {
++   return toUChar( IFIELD( instr, 21, 5 ) );
++}
++
++static inline UChar evxRA( UInt instr ) {
++   return toUChar( IFIELD( instr, 16, 5 ) );
++}
++
++static inline UChar evxRB( UInt instr ) {
++   return toUChar( IFIELD( instr, 11, 5 ) );
++}
++
++static inline UInt evxXO ( UInt instr) {
++   return IFIELD( instr, 0, 11 );
++}
++
+ /*------------------------------------------------------------*/
+ /*--- Guest-state identifiers                              ---*/
+ /*------------------------------------------------------------*/
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0005-Extend-addr_align-for-double-word-alignment.patch b/recipes-devtools/valgrind/files/0005-Extend-addr_align-for-double-word-alignment.patch
new file mode 100644
index 0000000..32946b9
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0005-Extend-addr_align-for-double-word-alignment.patch
@@ -0,0 +1,24 @@
+From 232868c1e873281f2fc275d4141dabfc7de49260 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 3 Jan 2013 12:50:25 -0800
+Subject: [PATCH 05/65] Extend addr_align () for double-word alignment.
+
+---
+ VEX/priv/guest_ppc_toIR.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index fc5dd3c..1fd62f9 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -1583,6 +1583,7 @@ static IRExpr* addr_align( IRExpr* addr, UChar align )
+    case 1:  return addr;                    // byte aligned
+    case 2:  mask = ((Long)-1) << 1; break;  // half-word aligned
+    case 4:  mask = ((Long)-1) << 2; break;  // word aligned
++   case 8:  mask = ((Long)-1) << 3; break;  // double-word aligned
+    case 16: mask = ((Long)-1) << 4; break;  // quad-word aligned
+    default:
+       vex_printf("addr_align: align = %u\n", align);
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0006-Implement-SPE-Instructions-evldd-evstdd-evxor-base-f.patch b/recipes-devtools/valgrind/files/0006-Implement-SPE-Instructions-evldd-evstdd-evxor-base-f.patch
new file mode 100644
index 0000000..8b054d7
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0006-Implement-SPE-Instructions-evldd-evstdd-evxor-base-f.patch
@@ -0,0 +1,1721 @@
+From 8dade36f8b8a3d80a4ab02142bfaf918fc4fd84f Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 22 Jan 2013 20:16:40 -0800
+Subject: [PATCH 06/65] Implement SPE Instructions: { evldd, evstdd, evxor }, base functionality, SPE Regression Test, and a temporary kludge for mbar.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  191 ++++++-
+ memcheck/tests/ppc32/Makefile.am         |    6 +-
+ memcheck/tests/ppc32/Makefile.in         |   16 +-
+ memcheck/tests/ppc32/test_spe.c          |  936 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |   91 +++
+ memcheck/tests/ppc32/test_spe.stderr.exp |   40 ++
+ memcheck/tests/ppc32/test_spe.stdout.exp |   21 +
+ memcheck/tests/ppc32/test_spe.vgtest     |    2 +
+ regtest-power7-64.log                    |   56 +-
+ 9 files changed, 1320 insertions(+), 39 deletions(-)
+ create mode 100644 memcheck/tests/ppc32/test_spe.c
+ create mode 100644 memcheck/tests/ppc32/test_spe.h
+ create mode 100644 memcheck/tests/ppc32/test_spe.stderr.exp
+ create mode 100644 memcheck/tests/ppc32/test_spe.stdout.exp
+ create mode 100644 memcheck/tests/ppc32/test_spe.vgtest
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 1fd62f9..1015202 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -1541,6 +1541,16 @@ static IRExpr* ea_rA_simm ( UInt rA, UInt simm16 )
+                 mkSzExtendS16(ty, simm16));
+ }
+ 
++/* Standard effective address calc: (rA + disp) */
++static IRExpr* ea_rA_uimm ( UInt rA, UInt disp )
++{
++   IRType ty = mode64 ? Ity_I64 : Ity_I32;
++   vassert( rA < 32 );
++   /* TODO: Should we not be using Iop_Add32 instead of Iop_Add8? */
++   return binop( mkSzOp( ty, Iop_Add8 ), getIReg( rA ),
++                ( ty == Ity_I32 ) ? mkU32 ( disp ) : mkU64 ( disp ) );
++}
++
+ /* Standard effective address calc: (rA|0) */
+ static IRExpr* ea_rAor0 ( UInt rA )
+ {
+@@ -1573,6 +1583,17 @@ static IRExpr* ea_rAor0_simm ( UInt rA, UInt simm16 )
+    }
+ }
+ 
++/* Standard effective address calc: (rA|0) + disp */
++static IRExpr* ea_rAor0_disp ( UInt rA, UInt disp )
++{
++   IRType ty = mode64 ? Ity_I64 : Ity_I32;
++   vassert( rA < 32 );
++   if ( rA == 0 ) {
++     return ( ty == Ity_I32 ) ? mkU32 ( disp ) : mkU64 ( disp );
++   } else {
++     return ea_rA_uimm( rA, disp );
++   }
++}
+ 
+ /* Align effective address */
+ static IRExpr* addr_align( IRExpr* addr, UChar align )
+@@ -5923,11 +5944,23 @@ static Bool dis_memsync ( UInt theInstr )
+    case 0x1F:
+       switch (opc2) {
+       case 0x356: // eieio (Enforce In-Order Exec of I/O, PPC32 p394)
++#ifdef __SPE__
++         /* !!!!!!!!!!!!!!!!!!!! */
++         /* !!! Kludge alert !!! */
++         /* !!!!!!!!!!!!!!!!!!!! */
++         /* TODO:
++            Remove this kludge once we implement mbar for SPE.
++            For now, we just emit the Imbe_Fence unconditionally.
++            Later, once we understand the mbar semantics a bit
++            better, we will chenge these parts as needed. */
++         DIP("eieio kludge for (mbar)\n");
++#else
+          if (b11to25 != 0 || b0 != 0) {
+             vex_printf("dis_memsync(ppc)(eiei0,b11to25|b0)\n");
+             return False;
+          }
+          DIP("eieio\n");
++#endif
+          /* Insert a memory fence, just to be on the safe side. */
+          stmt( IRStmt_MBE(Imbe_Fence) );
+          break;
+@@ -11596,6 +11629,132 @@ static Bool dis_dfp_significant_digits( UInt theInstr )
+    return True;
+ }
+ 
++/*-----------------------------------------------------------------------*/
++/*--- SPE Instruction Translation                                     ---*/
++/*--- Reference:                                                      ---*/
++/*--- (SPEPEM)                                                        ---*/
++/*--- Signal Processing Engine (SPE) Programming Environments Manual: ---*/
++/*--- A Supplement to the EREF SPEPEM Rev. 0 01/2008                  ---*/
++/*--- Freescale Semiconductor, Inc.                                   ---*/
++/*-----------------------------------------------------------------------*/
++
++/*
++ * SPE Load Instructions
++ */
++static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1    = evxOpcode( theInstr );
++   UChar rD_addr = evxRD( theInstr );
++   UChar rA_addr = evxRA( theInstr );
++   UChar uimm    = evxRB( theInstr );
++   UChar disp    = 0;
++   UInt  opc2    = evxXO( theInstr );
++
++   IRTemp EA = newTemp( Ity_I32 );
++   IRTemp rD = newTemp( Ity_I64 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_load(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++
++   switch (opc2) {
++   case 0x301:
++      // evldd (Vector Load Double of Double, SPEPEM p5-112)
++      disp = 8 * uimm;
++      DIP( "evldd r%d, %u(r%u)\n", rD_addr, disp, rA_addr );
++      assign( EA, ea_rAor0_disp( rA_addr, disp ) );
++      putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
++      break;
++   }
++
++   return True;
++}
++
++/*
++ * SPE Store Instructions
++ */
++static Bool dis_spe_store ( UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1    = evxOpcode( theInstr );
++   UInt  opc2    = evxXO( theInstr );
++   UChar rS_addr = evxRS( theInstr );
++   UChar rA_addr = evxRA( theInstr );
++   UChar uimm    = evxRB( theInstr );
++   UInt  disp    = 0;
++
++   IRTemp EA = newTemp( Ity_I32 );
++   IRTemp rS = newTemp( Ity_I64 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_store(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++
++   assign( rS, getSPEReg( rS_addr ) );
++
++   switch (opc2) {
++   case 0x321:
++      // evstdd (Vector Store Double of Double, SPEPEM p5-228)
++      disp = 8 * uimm;
++      DIP( "evstdd r%d, %u(r%u)\n", rS_addr, disp, rA_addr );
++      assign( EA, ea_rAor0_disp( rA_addr, disp ) );
++      storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
++      break;
++   }
++
++   return True;
++}
++
++/*
++ * SPE Bitwise Instructions
++ */
++static Bool dis_spe_bitwise ( UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1    = evxOpcode( theInstr );
++   UInt  opc2    = evxXO( theInstr );
++   UChar rD_addr = evxRD( theInstr );
++   UChar rA_addr = evxRA( theInstr );
++   UChar rB_addr = evxRB( theInstr );
++
++   IRTemp rA = newTemp( Ity_I64 );
++   IRTemp rB = newTemp( Ity_I64 );
++
++   IRTemp rAU  = newTemp( Ity_I32 );
++   IRTemp rAL  = newTemp( Ity_I32 );
++   IRTemp rBU  = newTemp( Ity_I32 );
++   IRTemp rBL  = newTemp( Ity_I32 );
++   IRTemp rDU  = newTemp( Ity_I32 );
++   IRTemp rDL  = newTemp( Ity_I32 );
++
++   IRTemp rD = newTemp( Ity_I64 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_bitwise(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++   switch (opc2) {
++   case 0x216:
++      // evxor (Vector XOR, SPEPEM p5-248)
++      DIP( "evxor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++
++      assign ( rA, getSPEReg( rA_addr ) );
++      assign ( rB, getSPEReg( rB_addr ) );
++      assign ( rAL, unop( Iop_64to32, mkexpr ( rA ) ) );
++      assign ( rAU, unop( Iop_64HIto32, mkexpr ( rA ) ) );
++      assign ( rBL, unop( Iop_64to32, mkexpr ( rB ) ) );
++      assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
++      assign ( rDL, binop( Iop_Xor32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++      assign ( rDU, binop( Iop_Xor32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      assign ( rD,  binop( Iop_32HLto64, mkexpr ( rDU ), mkexpr ( rDL ) ) );
++      putSPEReg( rD_addr, mkexpr ( rD ) );
++   }
++   return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -17575,7 +17734,25 @@ DisResult disInstr_PPC_WRK (
+ 
+    case 0x04:
+ #ifdef __SPE__
+-      if (allow_SPE) goto decode_noSPE;
++      opc2 = IFIELD(theInstr, 0, 11);
++      switch (opc2) {
++      case 0x301: // evldd
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
++         goto decode_failure;
++      case 0x321: // evstdd
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_store( theInstr )) goto decode_success;
++         goto decode_failure;
++      case 0x216: // evxor
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_bitwise( theInstr )) goto decode_success;
++         goto decode_failure;
++      default:
++         vex_printf("disInstr_PPC_WRK (ppc): unhandled SPE instruction: "
++                    "0x%x\n", theInstr);
++         goto decode_failure;
++      }
+ #else
+       /* AltiVec instructions */
+ 
+@@ -17732,16 +17909,16 @@ DisResult disInstr_PPC_WRK (
+       vassert(!allow_F);
+       vex_printf("disInstr(ppc): declined to decode an FP insn.\n");
+       goto decode_failure;
++#ifdef __SPE__
++   decode_noSPE:
++      vassert(!allow_SPE);
++      vex_printf("disInstr(ppc): declined to decode an SPE insn.\n");
++      goto decode_failure;
++#endif
+    decode_noV:
+       vassert(!allow_V);
+       vex_printf("disInstr(ppc): declined to decode an AltiVec insn.\n");
+       goto decode_failure;
+-#ifdef __SPE__
+-   decode_noSPE: /* yet! :) */
+-      vassert(allow_SPE);
+-      vex_printf("disInstr(ppc): not ready to decode an SPE insn yet!\n");
+-      goto decode_failure;
+-#endif
+    decode_noVX:
+       vassert(!allow_VX);
+       vex_printf("disInstr(ppc): declined to decode a Power ISA 2.06 insn.\n");
+diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am
+index 40033fc..32ad86e 100644
+--- a/memcheck/tests/ppc32/Makefile.am
++++ b/memcheck/tests/ppc32/Makefile.am
+@@ -4,10 +4,12 @@ include $(top_srcdir)/Makefile.tool-tests.am
+ dist_noinst_SCRIPTS = filter_stderr
+ 
+ EXTRA_DIST = $(noinst_SCRIPTS) \
+-	power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest
++	power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest \
++	test_spe.stderr.exp test_spe.stdout.exp test_spe.vgtest
+ 
+ check_PROGRAMS = \
+-	power_ISA2_05
++	power_ISA2_05 \
++	test_spe
+ 
+ power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \
+ 		-I$(top_srcdir)/include @FLAG_M32@
+diff --git a/memcheck/tests/ppc32/Makefile.in b/memcheck/tests/ppc32/Makefile.in
+index 17f526e..0e12643 100644
+--- a/memcheck/tests/ppc32/Makefile.in
++++ b/memcheck/tests/ppc32/Makefile.in
+@@ -54,7 +54,7 @@ DIST_COMMON = $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \
+ @VGCONF_HAVE_PLATFORM_SEC_TRUE at am__append_2 = -DVGA_SEC_ at VGCONF_ARCH_SEC@=1  \
+ @VGCONF_HAVE_PLATFORM_SEC_TRUE@		-DVGP_SEC_ at VGCONF_ARCH_PRI@_ at VGCONF_OS@=1
+ 
+-check_PROGRAMS = power_ISA2_05$(EXEEXT)
++check_PROGRAMS = power_ISA2_05$(EXEEXT) test_spe$(EXEEXT)
+ subdir = memcheck/tests/ppc32
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/configure.in
+@@ -69,6 +69,9 @@ power_ISA2_05_OBJECTS = power_ISA2_05-power_ISA2_05.$(OBJEXT)
+ power_ISA2_05_LDADD = $(LDADD)
+ power_ISA2_05_LINK = $(CCLD) $(power_ISA2_05_CFLAGS) $(CFLAGS) \
+ 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
++test_spe_SOURCES = test_spe.c
++test_spe_OBJECTS = test_spe.$(OBJEXT)
++test_spe_LDADD = $(LDADD)
+ SCRIPTS = $(dist_noinst_SCRIPTS)
+ DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+@@ -78,8 +81,8 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = power_ISA2_05.c
+-DIST_SOURCES = power_ISA2_05.c
++SOURCES = power_ISA2_05.c test_spe.c
++DIST_SOURCES = power_ISA2_05.c test_spe.c
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+@@ -361,7 +364,8 @@ AM_CCASFLAGS = $(AM_CPPFLAGS)
+ @VGCONF_OS_IS_DARWIN_TRUE at noinst_DSYMS = $(check_PROGRAMS)
+ dist_noinst_SCRIPTS = filter_stderr
+ EXTRA_DIST = $(noinst_SCRIPTS) \
+-	power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest
++	power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest \
++	test_spe.stderr.exp test_spe.stdout.exp test_spe.vgtest
+ 
+ power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \
+ 		-I$(top_srcdir)/include @FLAG_M32@
+@@ -406,6 +410,9 @@ clean-checkPROGRAMS:
+ power_ISA2_05$(EXEEXT): $(power_ISA2_05_OBJECTS) $(power_ISA2_05_DEPENDENCIES) 
+ 	@rm -f power_ISA2_05$(EXEEXT)
+ 	$(power_ISA2_05_LINK) $(power_ISA2_05_OBJECTS) $(power_ISA2_05_LDADD) $(LIBS)
++test_spe$(EXEEXT): $(test_spe_OBJECTS) $(test_spe_DEPENDENCIES) 
++	@rm -f test_spe$(EXEEXT)
++	$(LINK) $(test_spe_OBJECTS) $(test_spe_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+@@ -414,6 +421,7 @@ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/power_ISA2_05-power_ISA2_05.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/test_spe.Po at am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+new file mode 100644
+index 0000000..687a6bb
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -0,0 +1,936 @@
++#include "test_spe.h"
++
++int minimal(void)
++{
++  return 0;
++}
++TEST_SPE_DECL(minimal, "The most minimal C program");
++
++int hello_world (void)
++{
++  int failures = 0;
++#define STR "hello, world!\n"
++  char str[256];
++  VERIFY (sprintf (str, STR) == 14);
++  VERIFY (strcmp (str, STR) == 0);
++  return failures;
++}
++TEST_SPE_DECL(hello_world, "The classic hello-world C program");
++
++/* This example is derived from the zeroeth example given in:
++ * The Valgrind Quick Start Guide (vg-3.8.1), Section 4
++ */
++void vg_quick_start_guide_aux(void)
++{
++  int failures = 0;
++  int *x = malloc (10 * sizeof (int));
++  VERIFY (x != NULL);
++  x[10] = 0;       // problem 1: heap block overrun
++                   // problem 2: memory leak -- x not freed
++}
++
++int vg_quick_start_guide(void)
++{
++  vg_quick_start_guide_aux();
++  return 0;
++}
++TEST_SPE_DECL(vg_quick_start_guide, "Valgrind Quick Start Guide zeroeth example");
++
++#ifdef __SPE__
++__ev64_u32__ evldd_asm_src[32] = {
++
++ (__ev64_u32__) { 0xae64430d, 0x7b18c709 },
++ (__ev64_u32__) { 0x37c1b335, 0x0db10021 },
++ (__ev64_u32__) { 0xe0d8866d, 0xaa1c042b },
++ (__ev64_u32__) { 0x148fda15, 0x0cd65f1e },
++ (__ev64_u32__) { 0x7e897f32, 0xe413635e },
++ (__ev64_u32__) { 0xc8d3da59, 0x74ba7ecd },
++ (__ev64_u32__) { 0x249d80ef, 0x6db328cd },
++ (__ev64_u32__) { 0x91e06344, 0x829ffd7f },
++ (__ev64_u32__) { 0x3f0f09e1, 0x8d1c1ecb },
++ (__ev64_u32__) { 0x47ed39b8, 0x1e58a314 },
++ (__ev64_u32__) { 0x52d004af, 0x4488e7b9 },
++ (__ev64_u32__) { 0x4a2676cd, 0x46de39f3 },
++ (__ev64_u32__) { 0x01ff81e5, 0x9c6bdf87 },
++ (__ev64_u32__) { 0x1bf3db0e, 0x37d5b6a0 },
++ (__ev64_u32__) { 0x13567b27, 0x57600ba9 },
++ (__ev64_u32__) { 0x85e89631, 0xc2a14450 },
++ (__ev64_u32__) { 0x9340aeb3, 0x15f43eac },
++ (__ev64_u32__) { 0x8da7059e, 0x8880cf48 },
++ (__ev64_u32__) { 0xbd986622, 0xa66f77cd },
++ (__ev64_u32__) { 0x5436ea2d, 0x00351998 },
++ (__ev64_u32__) { 0xb398a289, 0x774f146c },
++ (__ev64_u32__) { 0x7a11c4c0, 0x6f47bec4 },
++ (__ev64_u32__) { 0x1cc37fdd, 0x96f9713b },
++ (__ev64_u32__) { 0x45363975, 0x9d204eee },
++ (__ev64_u32__) { 0xa2bede0c, 0x3ed58b51 },
++ (__ev64_u32__) { 0xe2e0a92f, 0x0d43a039 },
++ (__ev64_u32__) { 0x48ff4739, 0xaa89910b },
++ (__ev64_u32__) { 0x15178a44, 0xeee4f253 },
++ (__ev64_u32__) { 0x22e1ffc7, 0xa37c003f },
++ (__ev64_u32__) { 0x3b34994e, 0xe434ef59 },
++ (__ev64_u32__) { 0xceaf4f21, 0x4f33e1fe },
++ (__ev64_u32__) { 0xc982c9cc, 0x2f51fdfa },
++
++};
++#endif // __SPE__
++
++int evldd_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base asm ("30");
++  register __ev64_u32__ vec asm ("29");
++
++  asm volatile ("lis %[b], evldd_asm_src at ha" : [b] "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], evldd_asm_src at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == evldd_asm_src);
++
++#define EVLDD(index)                                                                      \
++  asm volatile ("evldd %[v], " #index " *8(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY (vec[0] == evldd_asm_src[index][0] && vec[1] == evldd_asm_src[index][1]);
++
++  EVLDD(0);
++  EVLDD(1);
++  EVLDD(2);
++  EVLDD(3);
++  EVLDD(4);
++  EVLDD(5);
++  EVLDD(6);
++  EVLDD(7);
++  EVLDD(8);
++  EVLDD(9);
++  EVLDD(10);
++  EVLDD(11);
++  EVLDD(12);
++  EVLDD(13);
++  EVLDD(14);
++  EVLDD(15);
++  EVLDD(16);
++  EVLDD(17);
++  EVLDD(18);
++  EVLDD(19);
++  EVLDD(20);
++  EVLDD(21);
++  EVLDD(22);
++  EVLDD(23);
++  EVLDD(24);
++  EVLDD(25);
++  EVLDD(26);
++  EVLDD(27);
++  EVLDD(28);
++  EVLDD(29);
++  EVLDD(30);
++  EVLDD(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldd_asm, "Unit test for evldd using asm");
++
++#ifdef __SPE__
++__ev64_u32__ evstdd_asm_dst[32];
++#endif // __SPE__
++
++int evstdd_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *dst_base asm ("29");
++  register __ev64_u32__ vec asm ("30");
++
++  asm volatile ("lis %[b], evstdd_asm_dst at ha" : [b] "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], evstdd_asm_dst at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++
++  vec = (__ev64_u32__) { 0xd5e80d24, 0xcd019f8f };
++  asm volatile ("evstdd %[v], 0*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[0][0] == 0xd5e80d24 && evstdd_asm_dst[0][1] == 0xcd019f8f);
++
++  vec = (__ev64_u32__) { 0xa2710780, 0x3e50576e };
++  asm volatile ("evstdd %[v], 1*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[1][0] == 0xa2710780 && evstdd_asm_dst[1][1] == 0x3e50576e);
++
++  vec = (__ev64_u32__) { 0x9fc90cb6, 0xa784453e };
++  asm volatile ("evstdd %[v], 2*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[2][0] == 0x9fc90cb6 && evstdd_asm_dst[2][1] == 0xa784453e);
++
++  vec = (__ev64_u32__) { 0xe71596a2, 0x573a90f3 };
++  asm volatile ("evstdd %[v], 3*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[3][0] == 0xe71596a2 && evstdd_asm_dst[3][1] == 0x573a90f3);
++
++  vec = (__ev64_u32__) { 0xafe1fca6, 0x2625d451 };
++  asm volatile ("evstdd %[v], 4*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[4][0] == 0xafe1fca6 && evstdd_asm_dst[4][1] == 0x2625d451);
++
++  vec = (__ev64_u32__) { 0xd2b9f988, 0x2b819222 };
++  asm volatile ("evstdd %[v], 5*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[5][0] == 0xd2b9f988 && evstdd_asm_dst[5][1] == 0x2b819222);
++
++  vec = (__ev64_u32__) { 0x309c9019, 0x38e11c55 };
++  asm volatile ("evstdd %[v], 6*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[6][0] == 0x309c9019 && evstdd_asm_dst[6][1] == 0x38e11c55);
++
++  vec = (__ev64_u32__) { 0xf8cd97ec, 0xf4c3a9fb };
++  asm volatile ("evstdd %[v], 7*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[7][0] == 0xf8cd97ec && evstdd_asm_dst[7][1] == 0xf4c3a9fb);
++
++  vec = (__ev64_u32__) { 0xee7c08d6, 0x7ed67555 };
++  asm volatile ("evstdd %[v], 8*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[8][0] == 0xee7c08d6 && evstdd_asm_dst[8][1] == 0x7ed67555);
++
++  vec = (__ev64_u32__) { 0xb81617a4, 0xed28fe61 };
++  asm volatile ("evstdd %[v], 9*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[9][0] == 0xb81617a4 && evstdd_asm_dst[9][1] == 0xed28fe61);
++
++  vec = (__ev64_u32__) { 0xe6e838d8, 0xe798ed70 };
++  asm volatile ("evstdd %[v], 10*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[10][0] == 0xe6e838d8 && evstdd_asm_dst[10][1] == 0xe798ed70);
++
++  vec = (__ev64_u32__) { 0xb462fcf2, 0xeb2280b5 };
++  asm volatile ("evstdd %[v], 11*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[11][0] == 0xb462fcf2 && evstdd_asm_dst[11][1] == 0xeb2280b5);
++
++  vec = (__ev64_u32__) { 0x9278e4a8, 0x9c4cd3b7 };
++  asm volatile ("evstdd %[v], 12*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[12][0] == 0x9278e4a8 && evstdd_asm_dst[12][1] == 0x9c4cd3b7);
++
++  vec = (__ev64_u32__) { 0xdf804478, 0x5c77d6bc };
++  asm volatile ("evstdd %[v], 13*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[13][0] == 0xdf804478 && evstdd_asm_dst[13][1] == 0x5c77d6bc);
++
++  vec = (__ev64_u32__) { 0x2f2899f9, 0x39a4c433 };
++  asm volatile ("evstdd %[v], 14*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[14][0] == 0x2f2899f9 && evstdd_asm_dst[14][1] == 0x39a4c433);
++
++  vec = (__ev64_u32__) { 0xf3c64145, 0xa9e111d4 };
++  asm volatile ("evstdd %[v], 15*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[15][0] == 0xf3c64145 && evstdd_asm_dst[15][1] == 0xa9e111d4);
++
++  vec = (__ev64_u32__) { 0xfa6c19f8, 0xea17d96f };
++  asm volatile ("evstdd %[v], 16*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[16][0] == 0xfa6c19f8 && evstdd_asm_dst[16][1] == 0xea17d96f);
++
++  vec = (__ev64_u32__) { 0x9ecc98f6, 0x8e7a368a };
++  asm volatile ("evstdd %[v], 17*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[17][0] == 0x9ecc98f6 && evstdd_asm_dst[17][1] == 0x8e7a368a);
++
++  vec = (__ev64_u32__) { 0x0cc06b83, 0x4108be2f };
++  asm volatile ("evstdd %[v], 18*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[18][0] == 0x0cc06b83 && evstdd_asm_dst[18][1] == 0x4108be2f);
++
++  vec = (__ev64_u32__) { 0x6fa49893, 0xe7f9a50d };
++  asm volatile ("evstdd %[v], 19*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[19][0] == 0x6fa49893 && evstdd_asm_dst[19][1] == 0xe7f9a50d);
++
++  vec = (__ev64_u32__) { 0xb9e590af, 0x54c3f09e };
++  asm volatile ("evstdd %[v], 20*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[20][0] == 0xb9e590af && evstdd_asm_dst[20][1] == 0x54c3f09e);
++
++  vec = (__ev64_u32__) { 0xc0f9f024, 0x175c9d12 };
++  asm volatile ("evstdd %[v], 21*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[21][0] == 0xc0f9f024 && evstdd_asm_dst[21][1] == 0x175c9d12);
++
++  vec = (__ev64_u32__) { 0x28d55d51, 0xa5ba8569 };
++  asm volatile ("evstdd %[v], 22*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[22][0] == 0x28d55d51 && evstdd_asm_dst[22][1] == 0xa5ba8569);
++
++  vec = (__ev64_u32__) { 0x68b2f5d6, 0x6f6db375 };
++  asm volatile ("evstdd %[v], 23*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[23][0] == 0x68b2f5d6 && evstdd_asm_dst[23][1] == 0x6f6db375);
++
++  vec = (__ev64_u32__) { 0xe21eada1, 0xca51865f };
++  asm volatile ("evstdd %[v], 24*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[24][0] == 0xe21eada1 && evstdd_asm_dst[24][1] == 0xca51865f);
++
++  vec = (__ev64_u32__) { 0xfc2a4ff3, 0x5a4d04ab };
++  asm volatile ("evstdd %[v], 25*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[25][0] == 0xfc2a4ff3 && evstdd_asm_dst[25][1] == 0x5a4d04ab);
++
++  vec = (__ev64_u32__) { 0xaa41414a, 0x00a546e5 };
++  asm volatile ("evstdd %[v], 26*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[26][0] == 0xaa41414a && evstdd_asm_dst[26][1] == 0x00a546e5);
++
++  vec = (__ev64_u32__) { 0x5da31deb, 0x9508aada };
++  asm volatile ("evstdd %[v], 27*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[27][0] == 0x5da31deb && evstdd_asm_dst[27][1] == 0x9508aada);
++
++  vec = (__ev64_u32__) { 0x9bc2f7f5, 0x69ae0cc8 };
++  asm volatile ("evstdd %[v], 28*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[28][0] == 0x9bc2f7f5 && evstdd_asm_dst[28][1] == 0x69ae0cc8);
++
++  vec = (__ev64_u32__) { 0xa2037d9f, 0x1a57cd53 };
++  asm volatile ("evstdd %[v], 29*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[29][0] == 0xa2037d9f && evstdd_asm_dst[29][1] == 0x1a57cd53);
++
++  vec = (__ev64_u32__) { 0x15db13bb, 0x64dc655a };
++  asm volatile ("evstdd %[v], 30*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[30][0] == 0x15db13bb && evstdd_asm_dst[30][1] == 0x64dc655a);
++
++  vec = (__ev64_u32__) { 0x98d2685f, 0x1a6f9ad8 };
++  asm volatile ("evstdd %[v], 31*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++  VERIFY (evstdd_asm_dst[31][0] == 0x98d2685f && evstdd_asm_dst[31][1] == 0x1a6f9ad8);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstdd_asm, "Unit test for evstdd using asm");
++
++#ifdef __SPE__
++__ev64_u32__ evldd_evstdd_mem_xfer_src[32] = {
++
++  (__ev64_u32__) { 0xf084cd8c, 0x64678685 },
++  (__ev64_u32__) { 0x2f83f5f8, 0x2caa3fb5 },
++  (__ev64_u32__) { 0x1b898e01, 0x5e1a31a5 },
++  (__ev64_u32__) { 0x470b17f9, 0x196d35d4 },
++  (__ev64_u32__) { 0x4c6c344b, 0xba2c77dd },
++  (__ev64_u32__) { 0xf40760f3, 0x729bb5ba },
++  (__ev64_u32__) { 0x67fff7bd, 0x8f665d71 },
++  (__ev64_u32__) { 0x0c873140, 0x991b2de0 },
++  (__ev64_u32__) { 0x3021db5d, 0x7e4d5730 },
++  (__ev64_u32__) { 0x8c865d9f, 0x33b23244 },
++  (__ev64_u32__) { 0x61731ae2, 0x6d9a0df5 },
++  (__ev64_u32__) { 0xa84ef6c6, 0xfa0e5a15 },
++  (__ev64_u32__) { 0x21d4bb57, 0x3fa857b7 },
++  (__ev64_u32__) { 0x6eef6ca4, 0x333231d6 },
++  (__ev64_u32__) { 0x2dfd26f1, 0x35f629ee },
++  (__ev64_u32__) { 0xfca5fefc, 0x48330e63 },
++  (__ev64_u32__) { 0x07dac751, 0x2a4d8cfe },
++  (__ev64_u32__) { 0x733a71f8, 0x8d43145a },
++  (__ev64_u32__) { 0x3794949b, 0xfe34201d },
++  (__ev64_u32__) { 0xe196155e, 0xd6e362d5 },
++  (__ev64_u32__) { 0xabe7a248, 0x70469bea },
++  (__ev64_u32__) { 0xe41fda64, 0xc24d46a5 },
++  (__ev64_u32__) { 0x5ca778e0, 0x334d69dd },
++  (__ev64_u32__) { 0x47e77b25, 0xb5a22431 },
++  (__ev64_u32__) { 0x12f623d4, 0x3dfe0278 },
++  (__ev64_u32__) { 0x687e161b, 0x28d6f08f },
++  (__ev64_u32__) { 0x01f38d7b, 0x03587196 },
++  (__ev64_u32__) { 0x04c76db1, 0x82b505f4 },
++  (__ev64_u32__) { 0xef808111, 0x26459f4a },
++  (__ev64_u32__) { 0xd185770f, 0xfebd6f0d },
++  (__ev64_u32__) { 0x9a14f08e, 0x772b3f8b },
++  (__ev64_u32__) { 0x0b2483bf, 0x753e5813 },
++
++};
++__ev64_u32__ evldd_evstdd_mem_xfer_dst[32];
++#endif // __SPE__
++
++int evldd_evstdd_mem_xfer(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base asm ("29");
++  register void *dst_base asm ("30");
++  /* Assign a register to vec, else, the last read-write in the sequence
++   * of read-writes will be in error (the VERIFY will fail on the last index)!
++   * Compile  gcc -S to see - GCC 4.6.2 - messes up the registers on the last
++   * evldd-evstdd combination.
++   */
++  register __ev64_u32__ vec asm ("28");
++  int i;
++
++  asm volatile ("lis %[b], evldd_evstdd_mem_xfer_src at ha" : [b] "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], evldd_evstdd_mem_xfer_src at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == evldd_evstdd_mem_xfer_src);
++
++  asm volatile ("lis %[b], evldd_evstdd_mem_xfer_dst at ha" : [b] "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], evldd_evstdd_mem_xfer_dst at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == evldd_evstdd_mem_xfer_dst);
++
++#define EVLDD_EVSTDD_MEM_XFER(index)                                                        \
++  asm volatile ("evldd  %[v],   " #index "*8(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  asm volatile ("evstdd %[v],   " #index "*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
++
++  EVLDD_EVSTDD_MEM_XFER(0);
++  EVLDD_EVSTDD_MEM_XFER(1);
++  EVLDD_EVSTDD_MEM_XFER(2);
++  EVLDD_EVSTDD_MEM_XFER(3);
++  EVLDD_EVSTDD_MEM_XFER(4);
++  EVLDD_EVSTDD_MEM_XFER(5);
++  EVLDD_EVSTDD_MEM_XFER(6);
++  EVLDD_EVSTDD_MEM_XFER(7);
++  EVLDD_EVSTDD_MEM_XFER(8);
++  EVLDD_EVSTDD_MEM_XFER(9);
++  EVLDD_EVSTDD_MEM_XFER(10);
++  EVLDD_EVSTDD_MEM_XFER(11);
++  EVLDD_EVSTDD_MEM_XFER(12);
++  EVLDD_EVSTDD_MEM_XFER(13);
++  EVLDD_EVSTDD_MEM_XFER(14);
++  EVLDD_EVSTDD_MEM_XFER(15);
++  EVLDD_EVSTDD_MEM_XFER(16);
++  EVLDD_EVSTDD_MEM_XFER(17);
++  EVLDD_EVSTDD_MEM_XFER(18);
++  EVLDD_EVSTDD_MEM_XFER(19);
++  EVLDD_EVSTDD_MEM_XFER(20);
++  EVLDD_EVSTDD_MEM_XFER(21);
++  EVLDD_EVSTDD_MEM_XFER(22);
++  EVLDD_EVSTDD_MEM_XFER(23);
++  EVLDD_EVSTDD_MEM_XFER(24);
++  EVLDD_EVSTDD_MEM_XFER(25);
++  EVLDD_EVSTDD_MEM_XFER(26);
++  EVLDD_EVSTDD_MEM_XFER(27);
++  EVLDD_EVSTDD_MEM_XFER(28);
++  EVLDD_EVSTDD_MEM_XFER(29);
++  EVLDD_EVSTDD_MEM_XFER(30);
++  EVLDD_EVSTDD_MEM_XFER(31);
++
++  for (i = 0; i < 32; i++) {
++    VERIFY ((evldd_evstdd_mem_xfer_src[i][0] == evldd_evstdd_mem_xfer_dst[i][0]) &&
++            (evldd_evstdd_mem_xfer_src[i][1] == evldd_evstdd_mem_xfer_dst[i][1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldd_evstdd_mem_xfer, "Memory transfer using evldd-evstdd");
++
++int fib (unsigned int n)
++{
++  return (n == 0 || n == 1) ? 1 : fib (n - 1) + fib (n - 2);
++}
++
++int fibonnaci (void)
++{
++  int failures = 0;
++  VERIFY (fib (0) == 1);
++  VERIFY (fib (1) == 1);
++  VERIFY (fib (2) == 2);
++  VERIFY (fib (3) == 3);
++  VERIFY (fib (4) == 5);
++  VERIFY (fib (5) == 8);
++  VERIFY (fib (6) == 13);
++  VERIFY (fib (7) == 21);
++  VERIFY (fib (8) == 34);
++  VERIFY (fib (9) == 55);
++  VERIFY (fib (10) == 89);
++  return failures;
++}
++TEST_SPE_DECL(fibonnaci, "Fibonnaci");
++
++int simple_loop(void)
++{
++  int failures = 0;
++  int i = 0;
++  int *p = (int *) malloc (64 * sizeof (int));
++  VERIFY (p);
++
++  while (i < 64) {
++    p[i] = i;
++    i++;
++  }
++  while (i < 64) {
++    VERIFY (p[i] == i);
++    i++;
++  }
++  free (p); // Free it. (We are testing if loops work).
++  return failures;
++}
++TEST_SPE_DECL(simple_loop, "Simple loops");
++
++int simple_array(void)
++{
++  int failures = 0;
++  int a[16] = {
++    7, 2, 1, 4,
++    2, 5, 6, 3,
++    4, 5, 6, 7,
++    3, 4, 2, 8
++  };
++  int b[16];
++  int i;
++
++  VERIFY (a[0] == 7);
++  VERIFY (a[1] == 2);
++  VERIFY (a[2] == 1);
++  VERIFY (a[3] == 4);
++  VERIFY (a[4] == 2);
++  VERIFY (a[5] == 5);
++  VERIFY (a[6] == 6);
++  VERIFY (a[7] == 3);
++  VERIFY (a[8] == 4);
++  VERIFY (a[9] == 5);
++  VERIFY (a[10] == 6);
++  VERIFY (a[11] == 7);
++  VERIFY (a[12] == 3);
++  VERIFY (a[13] == 4);
++  VERIFY (a[14] == 2);
++  VERIFY (a[15] == 8);
++
++  for (i = 0; i < 16; i++)
++    a[i] = i;
++  for (i = 0; i < 16; i++)
++    VERIFY (a[i] == i);
++
++  for (i = 0; i < 16; i++)
++    b[i] = a[i];
++  for (i = 0; i < 16; i++)
++    VERIFY (a[i] == b[i]);
++
++  return failures;
++}
++TEST_SPE_DECL(simple_array, "Simple array");
++
++void zanzibar(void) { return; }
++int ptr_to_function(void)
++{
++  void (*fp) (void);
++
++  fp = &zanzibar;
++  (*fp) ();
++  return 0;
++}
++TEST_SPE_DECL(ptr_to_function, "Pointer to function");
++
++#ifdef __SPE__
++__ev64_u32__ rA_evxor_asm[32] = {
++
++  (__ev64_u32__) { 0xb1203289, 0x15629917 },
++  (__ev64_u32__) { 0x6e0b1812, 0x590d4253 },
++  (__ev64_u32__) { 0x25f1db4b, 0x9c15dcde },
++  (__ev64_u32__) { 0x965a138e, 0xe19bb6e0 },
++  (__ev64_u32__) { 0x45e8a691, 0xe9f0d8f8 },
++  (__ev64_u32__) { 0x8bda2cf9, 0xc0856d8c },
++  (__ev64_u32__) { 0x81366f9c, 0xa0594292 },
++  (__ev64_u32__) { 0xda835b42, 0xac0e99e5 },
++  (__ev64_u32__) { 0x3e134ce3, 0x4060381e },
++  (__ev64_u32__) { 0xaf673f60, 0x7396f645 },
++  (__ev64_u32__) { 0xfbd64960, 0xfa42d57b },
++  (__ev64_u32__) { 0xdc8381d0, 0x96d5f71b },
++  (__ev64_u32__) { 0xff9b69d2, 0xc3594b58 },
++  (__ev64_u32__) { 0xcdda605e, 0xd5f67ab3 },
++  (__ev64_u32__) { 0x58a34691, 0xa2759e01 },
++  (__ev64_u32__) { 0xdccb7886, 0xea1e4909 },
++  (__ev64_u32__) { 0x0bd16a97, 0xe3d42238 },
++  (__ev64_u32__) { 0x76e4ea19, 0x09684ad9 },
++  (__ev64_u32__) { 0x034b1a19, 0x0461521c },
++  (__ev64_u32__) { 0x27052751, 0xa8b808ca },
++  (__ev64_u32__) { 0x1f59f48a, 0x7ee2d223 },
++  (__ev64_u32__) { 0xeb1e2de5, 0xc1ce2f82 },
++  (__ev64_u32__) { 0x7c7ec82b, 0x68980d29 },
++  (__ev64_u32__) { 0x189d6ee1, 0x5392e9c0 },
++  (__ev64_u32__) { 0x4ec9eef9, 0x33dd5b86 },
++  (__ev64_u32__) { 0x8dea5ca6, 0xfc315f18 },
++  (__ev64_u32__) { 0x84e5adb6, 0xaf1b2e87 },
++  (__ev64_u32__) { 0x92a04585, 0xdc53de5b },
++  (__ev64_u32__) { 0xb400cb0b, 0xc8e30025 },
++  (__ev64_u32__) { 0xf971c58d, 0xc40a69bb },
++  (__ev64_u32__) { 0x7cbb8ea4, 0xfde72c48 },
++  (__ev64_u32__) { 0x5459940d, 0x0081595a },
++};
++
++__ev64_u32__ rB_evxor_asm[32] = {
++
++  (__ev64_u32__) { 0xa055ffc7, 0xd6fa3d55 },
++  (__ev64_u32__) { 0xedf0d6a1, 0xe9d77778 },
++  (__ev64_u32__) { 0x1f5cd131, 0xa371c7c9 },
++  (__ev64_u32__) { 0xe78c205d, 0xc156ec0c },
++  (__ev64_u32__) { 0x7cdabbdd, 0xc7992d80 },
++  (__ev64_u32__) { 0xcb0dd703, 0x6d687c60 },
++  (__ev64_u32__) { 0xc1860a7f, 0x4b672b78 },
++  (__ev64_u32__) { 0xe275eee3, 0xe840424b },
++  (__ev64_u32__) { 0x5dc58a97, 0xb6476b86 },
++  (__ev64_u32__) { 0xc524d7bd, 0xa0f8d9bd },
++  (__ev64_u32__) { 0xa506ae49, 0x97291d0c },
++  (__ev64_u32__) { 0xa94dabf6, 0xe1612d9b },
++  (__ev64_u32__) { 0xf5270ad1, 0x3b724ee0 },
++  (__ev64_u32__) { 0xec590001, 0x14a68773 },
++  (__ev64_u32__) { 0x8086050c, 0xb1d0b21c },
++  (__ev64_u32__) { 0xd71e2d70, 0x299cc640 },
++  (__ev64_u32__) { 0xc824bf32, 0x04f78283 },
++  (__ev64_u32__) { 0x1cf04389, 0xf4cab765 },
++  (__ev64_u32__) { 0x539db17a, 0x563c641d },
++  (__ev64_u32__) { 0xed556beb, 0x3d0093f3 },
++  (__ev64_u32__) { 0x244fd9aa, 0xde2ffef3 },
++  (__ev64_u32__) { 0x2ddd24f6, 0x45ec4645 },
++  (__ev64_u32__) { 0xe6dea9f3, 0x83ed4452 },
++  (__ev64_u32__) { 0x74717c16, 0xca83aaf6 },
++  (__ev64_u32__) { 0x82d065d3, 0x0f56e8b7 },
++  (__ev64_u32__) { 0xd16c9d1c, 0x5a702331 },
++  (__ev64_u32__) { 0xed33c157, 0x9c15121e },
++  (__ev64_u32__) { 0xabc7621b, 0xc7d57464 },
++  (__ev64_u32__) { 0xe3bee72c, 0x6f293ef6 },
++  (__ev64_u32__) { 0x2b379b84, 0x78df7a31 },
++  (__ev64_u32__) { 0x5848efce, 0xccdbdd4d },
++  (__ev64_u32__) { 0xfa03c641, 0xe4e57539 },
++};
++
++__ev64_u32__ rD_evxor_asm_master[32] = {
++
++  (__ev64_u32__) { 0x1175cd4e, 0xc398a442 },
++  (__ev64_u32__) { 0x83fbceb3, 0xb0da352b },
++  (__ev64_u32__) { 0x3aad0a7a, 0x3f641b17 },
++  (__ev64_u32__) { 0x71d633d3, 0x20cd5aec },
++  (__ev64_u32__) { 0x39321d4c, 0x2e69f578 },
++  (__ev64_u32__) { 0x40d7fbfa, 0xaded11ec },
++  (__ev64_u32__) { 0x40b065e3, 0xeb3e69ea },
++  (__ev64_u32__) { 0x38f6b5a1, 0x444edbae },
++  (__ev64_u32__) { 0x63d6c674, 0xf6275398 },
++  (__ev64_u32__) { 0x6a43e8dd, 0xd36e2ff8 },
++  (__ev64_u32__) { 0x5ed0e729, 0x6d6bc877 },
++  (__ev64_u32__) { 0x75ce2a26, 0x77b4da80 },
++  (__ev64_u32__) { 0xabc6303,  0xf82b05b8 },
++  (__ev64_u32__) { 0x2183605f, 0xc150fdc0 },
++  (__ev64_u32__) { 0xd825439d, 0x13a52c1d },
++  (__ev64_u32__) { 0xbd555f6,  0xc3828f49 },
++  (__ev64_u32__) { 0xc3f5d5a5, 0xe723a0bb },
++  (__ev64_u32__) { 0x6a14a990, 0xfda2fdbc },
++  (__ev64_u32__) { 0x50d6ab63, 0x525d3601 },
++  (__ev64_u32__) { 0xca504cba, 0x95b89b39 },
++  (__ev64_u32__) { 0x3b162d20, 0xa0cd2cd0 },
++  (__ev64_u32__) { 0xc6c30913, 0x842269c7 },
++  (__ev64_u32__) { 0x9aa061d8, 0xeb75497b },
++  (__ev64_u32__) { 0x6cec12f7, 0x99114336 },
++  (__ev64_u32__) { 0xcc198b2a, 0x3c8bb331 },
++  (__ev64_u32__) { 0x5c86c1ba, 0xa6417c29 },
++  (__ev64_u32__) { 0x69d66ce1, 0x330e3c99 },
++  (__ev64_u32__) { 0x3967279e, 0x1b86aa3f },
++  (__ev64_u32__) { 0x57be2c27, 0xa7ca3ed3 },
++  (__ev64_u32__) { 0xd2465e09, 0xbcd5138a },
++  (__ev64_u32__) { 0x24f3616a, 0x313cf105 },
++  (__ev64_u32__) { 0xae5a524c, 0xe4642c63 },
++
++};
++
++__ev64_u32__ rD_evxor_asm[32];
++#endif // __SPE__
++
++int evxor_asm (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  register void *rA_evxor_asm_base asm ("27");
++  register void *rB_evxor_asm_base asm ("26");
++  register void *rD_evxor_asm_base asm ("25");
++
++  asm volatile ("lis %[b], rA_evxor_asm at ha" : [b] "=r" (rA_evxor_asm_base));
++  asm volatile ("addic %[bd], %[bs], rA_evxor_asm at l" : [bd] "=r" (rA_evxor_asm_base) : [bs] "r" (rA_evxor_asm_base));
++  VERIFY (rA_evxor_asm_base == rA_evxor_asm);
++
++  asm volatile ("lis %[b], rB_evxor_asm at ha" : [b] "=r" (rB_evxor_asm_base));
++  asm volatile ("addic %[bd], %[bs], rB_evxor_asm at l" : [bd] "=r" (rB_evxor_asm_base) : [bs] "r" (rB_evxor_asm_base));
++  VERIFY (rB_evxor_asm_base == rB_evxor_asm);
++
++  asm volatile ("lis %[b], rD_evxor_asm at ha" : [b] "=r" (rD_evxor_asm_base));
++  asm volatile ("addic %[bd], %[bs], rD_evxor_asm at l" : [bd] "=r" (rD_evxor_asm_base) : [bs] "r" (rD_evxor_asm_base));
++  VERIFY (rD_evxor_asm_base == rD_evxor_asm);
++
++  /* Do not iterate through the arrays, this will generate evlddx/evstddx's
++   * and will not execute under valgrind as we do not support them yet. */
++#ifdef GEN_BASELINE
++  int i;
++  for (i = 0; i < 32; i++) {
++
++    regA = rA_evxor_asm[i];
++    regB = rB_evxor_asm[i];
++    asm volatile ("evxor %[D], %[A], %[B]" : [D] "=r" (regD) : [A] "r" (regA), [B] "r" (regB));
++    rD_evxor_asm[i] = regD;
++    // printf ("evxor ({0x%x, 0x%x}, { 0x%x, 0x%x }) = (__ev64_u32__) { 0x%x, 0x%x }\n",
++    //         rA_evxor_asm[i][0], rA_evxor_asm[i][1],
++    //         rB_evxor_asm[i][0], rB_evxor_asm[i][1],
++    //         rD_evxor_asm[i][0], rD_evxor_asm[i][1]);
++    VERIFY (rD_evxor_asm[i][0] == rD_evxor_asm_master[i][0] &&
++            rD_evxor_asm[i][1] == rD_evxor_asm_master[i][1]);
++  }
++#endif // GEN_BASELINE
++
++#define EVXOR(index)                                                                                \
++  asm volatile ("evldd %[v], " #index "*8(%[b])"  : [v] "=r" (regA) : [b] "r" (rA_evxor_asm_base)); \
++  asm volatile ("evldd %[v], " #index "*8(%[b])"  : [v] "=r" (regB) : [b] "r" (rB_evxor_asm_base)); \
++  asm volatile ("evxor %[D], %[A], %[B]" : [D] "=r" (regD) : [A] "r" (regA), [B] "r" (regB));       \
++  asm volatile ("evstdd %[v]," #index "*8(%[b])"  : [v] "=r" (regD) : [b] "r" (rD_evxor_asm_base)); \
++  VERIFY(rD_evxor_asm[index][0] == rD_evxor_asm_master[index][0] &&                                 \
++         rD_evxor_asm[index][1] == rD_evxor_asm_master[index][1]);
++
++  EVXOR(0);
++  EVXOR(1);
++  EVXOR(2);
++  EVXOR(3);
++  EVXOR(4);
++  EVXOR(5);
++  EVXOR(6);
++  EVXOR(7);
++  EVXOR(8);
++  EVXOR(9);
++  EVXOR(10);
++  EVXOR(11);
++  EVXOR(12);
++  EVXOR(13);
++  EVXOR(14);
++  EVXOR(15);
++  EVXOR(16);
++  EVXOR(17);
++  EVXOR(18);
++  EVXOR(19);
++  EVXOR(20);
++  EVXOR(21);
++  EVXOR(22);
++  EVXOR(23);
++  EVXOR(24);
++  EVXOR(25);
++  EVXOR(26);
++  EVXOR(27);
++  EVXOR(28);
++  EVXOR(29);
++  EVXOR(30);
++  EVXOR(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evxor_asm, "Unit test for evxor using asm");
++
++long long evxor_algo(long long rA, long long rB)
++{
++  unsigned int rAU = 0x0;
++  unsigned int rAL = 0x0;
++  unsigned long long rAT = 0x0;
++  unsigned int rBU = 0x0;
++  unsigned int rBL = 0x0;
++  unsigned long long rBT = 0x0;
++  unsigned int rDU = 0x0;
++  unsigned int rDL = 0x0;
++  unsigned int mask = 0xffffffff;
++  long long rD = 0x0;
++
++  rAL = rA & mask;
++  rAT = rA >> 32;
++  rAU = rAT & mask;
++
++  rBL = rB & mask;
++  rBT = rB >> 32;
++  rBU = rBT & mask;
++
++  rDL = rAL ^ rBL;
++  rDU = rAU ^ rBU;
++
++  rD |= rDU;
++  rD <<= 32;
++  rD |= rDL;
++  rD = rA ^ rB;
++
++  return rD;
++}
++
++#define EVXOR_ALGO_VAL_COUNT 16
++
++long long rA_evxor_algo[EVXOR_ALGO_VAL_COUNT] = {
++
++  0x57a827955db1e5a1,
++  0x6f3412e3ac8f8797,
++  0x065511b6c8c12bd8,
++  0x20f709d4acc28270,
++  0xcd9e173d864b8171,
++  0x92f513aebb0c1c1f,
++  0x6a357e6c4eb3d32f,
++  0x34d1294c0a8d7bbc,
++  0xf9ff6cf6f709de7a,
++  0x101dd0e1eaf8f880,
++  0x38326fb1646962e1,
++  0xf1f6dcc8a6aa2f51,
++  0xbe68a5e883662bce,
++  0xb4c5f88ed452e42b,
++  0x2693d9e835e8ee6a,
++  0x897c73e9d9aa7009,
++
++};
++
++long long rB_evxor_algo[EVXOR_ALGO_VAL_COUNT] = {
++
++  0x6cb3e416fa014fa3,
++  0x03eb8c7af7a0c7a5,
++  0x79c327b8d33b54ff,
++  0xf839f0bebb162cea,
++  0xdbc283248c167962,
++  0x4a0bb2807e4a5554,
++  0x4749ed7a07b1dbf1,
++  0x6e3b1d0c6732228e,
++  0xabb6695aace8b8ab,
++  0x42dc08c4ac46a385,
++  0x1f87ccc931b62353,
++  0x46c0de704d3aed16,
++  0x1027ec44136c6104,
++  0xe5c69dd896515429,
++  0x7135b0ace7745bee,
++  0xaaf84d0f75ba34fa,
++
++};
++
++long long rD_evxor_algo[EVXOR_ALGO_VAL_COUNT];
++
++int evxor_generic(void)
++{
++  int failures = 0;
++  int i;
++
++  for (i = 0; i < EVXOR_ALGO_VAL_COUNT; i++) {
++    rD_evxor_algo[i] = evxor_algo (rA_evxor_algo[i], rB_evxor_algo[i]);
++    VERIFY (rD_evxor_algo[i] == (rA_evxor_algo[i] ^ rB_evxor_algo[i]));
++  }
++  return failures;
++}
++TEST_SPE_DECL(evxor_generic, "Algorithm in C for evxor");
++
++struct node {
++
++ int v;
++ struct node *l;
++ struct node *r;
++
++};
++
++struct node node_7 = { 0, NULL, NULL };
++struct node node_6 = { 0, NULL, NULL };
++struct node node_5 = { 0, &node_6, &node_7 };
++struct node node_4 = { 0, NULL, NULL };
++struct node node_3 = { 0, NULL, NULL };
++struct node node_2 = { 0, &node_5, NULL };
++struct node node_1 = { 0, &node_3, &node_4 };
++struct node node_0 = { 0, &node_1, &node_2 };
++
++int leaf_count( struct node *t)
++{
++  if (t == NULL)
++    return 0;
++  else if (!t->l && !t->r)
++    return 1;
++  else if (t->l && !t->r)
++    return leaf_count (t->l);
++  else if (t->r && !t->l)
++    return leaf_count (t->r);
++  else
++    return leaf_count (t->l) +
++           leaf_count (t->r);
++}
++
++int get_leaf_count (void)
++{
++  int failures = 0;
++  VERIFY (leaf_count (&node_0) == 4);
++  VERIFY (leaf_count (&node_1) == 2);
++  VERIFY (leaf_count (&node_2) == 2);
++  VERIFY (leaf_count (&node_3) == 1);
++  VERIFY (leaf_count (&node_4) == 1);
++  VERIFY (leaf_count (&node_5) == 2);
++  VERIFY (leaf_count (&node_6) == 1);
++  VERIFY (leaf_count (&node_7) == 1);
++  VERIFY (leaf_count (NULL) == 0);
++  return failures;
++}
++TEST_SPE_DECL(get_leaf_count, "Count the number of leaves in a binary tree");
++
++/* NOTE: To avoid having to remaster the .exp files entirely, add
++ *       new test functions /just above/ this comment.
++ *       That way, you only need to worry about the test that you
++ *       newly added. (And take into ammount how much the run() call
++ *       in main () got displaced by).
++ *
++ *       Add new tables /below/ this comment.
++ */
++
++/* NOTE: The Miscellaneous tests ought to run on *any* platform. */
++test_t recursive_tests_table = {
++  .type = table,
++  .description = "Recursive Tests",
++  .table = {
++    F(fibonnaci),
++    F(get_leaf_count),
++    NULL
++  }
++};
++
++test_t misc_test_table = {
++
++  .type = table,
++  .description = "Generic Assorted Tests",
++  .table = {
++    F(minimal),
++    F(hello_world),
++    F(vg_quick_start_guide),
++    &recursive_tests_table,
++    F(simple_loop),
++    F(simple_array),
++    F(ptr_to_function),
++    F(evxor_generic),
++    NULL
++  }
++};
++
++test_t spe_isa_load_store_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Load Store Tests",
++  .table = {
++    F(evldd_asm),
++    F(evstdd_asm),
++    NULL
++  }
++};
++
++test_t spe_isa_bitwise_operators_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Bitwise Operators Tests",
++  .table = {
++    F(evxor_asm),
++    NULL
++  }
++};
++
++test_t spe_isa_insn_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Standalone Instruction Tests",
++  .table = {
++    &spe_isa_load_store_test_table,
++    &spe_isa_bitwise_operators_test_table,
++    NULL
++  }
++};
++
++test_t spe_isa_misc_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Miscellaneous Tests",
++  .table = {
++    F(evldd_evstdd_mem_xfer),
++    NULL
++  }
++};
++
++/* NOTE: The SPE ISA tests are meant to run only on the SPE platform.
++ *       Code them so that they are a NOP on any other platform.
++ */
++test_t spe_isa_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Tests",
++  .table = {
++    &spe_isa_insn_test_table,
++    &spe_isa_misc_test_table,
++    NULL
++  }
++};
++
++/* Top Level Tests Table. */
++test_t spe_test_table = {
++
++  .type = table,
++  .description = "SPE Regression Tests",
++  .table = {
++    &misc_test_table,
++    &spe_isa_test_table,
++    NULL
++  }
++};
++
++int main(void)
++{
++  int failures;
++  failures = run (&spe_test_table);
++  report (&spe_test_table);
++  return failures;
++}
++
++// TODOS:
++// 0. Add extensive tests for printf ()-family functions with varied format.
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+new file mode 100644
+index 0000000..23b4beb
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -0,0 +1,91 @@
++#include <stdio.h>
++#include <stdint.h>
++#include <stdlib.h>
++#include <string.h>
++#include <malloc.h>
++#include <assert.h>
++#ifdef __SPE__
++#include <spe.h>
++#endif
++
++typedef enum test_type { function, table } test_type_t;
++typedef int (*test_func_t)(void);
++typedef struct test
++{
++  test_type_t type;
++  char *description;
++  unsigned int errors;
++  test_func_t function;
++  /* Note: table is a NULL-terminated array. Also, if table itself
++   * is empty, denote it by { NULL } and not {}!
++   * Last but not the least, keep table last. ;)
++   */
++  struct test *table[];
++} test_t;
++
++#define TEST_SPE_DECL(f, desc) \
++test_t f ## _tf  = {           \
++  .type = function,            \
++  .description = desc,         \
++  .function = &f,              \
++};
++#define F(f) &f ## _tf
++#define ECHO_LOC() printf ("### %s() ###\n", __func__);
++
++static int run (test_t *test)
++{
++  int failures;
++
++  if (!test)
++    failures = 0;
++  else if(test && test->type == function)
++    failures = (test->errors = (*test->function) ()) ? 1 : 0;
++  else if(test && test->type == table) {
++
++    failures = 0;
++    test_t **p;
++    for (p = test->table; p && *p; p++) {
++      failures += run (*p);
++    }
++    test->errors = failures;
++  }
++  return failures;
++}
++
++static unsigned int indentation;
++static void indent(void)
++{
++  int i;
++  for (i = 0; i < indentation; i++)
++    printf(".");
++}
++
++static void report (test_t *test)
++{
++  if (!test)
++    return;
++
++  indent();
++  printf ("%s: ", test->description);
++  if (test->errors)
++    printf ("FAIL (%d)\n", test->errors);
++  else if (!test->errors)
++    printf ("PASS\n");
++
++  if (test->type == table) {
++
++    test_t **p;
++    indentation++;
++    for (p = test->table; p && *p; p++)
++      report (*p);
++    indentation--;
++  }
++}
++
++#define VERIFY(condition)                      \
++{                                              \
++  if (!(condition)) {                          \
++    failures++;                                \
++    printf("Failure at line: %d\n", __LINE__); \
++  }                                            \
++}
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+new file mode 100644
+index 0000000..0f498a1
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -0,0 +1,40 @@
++
++Invalid write of size 4
++   at 0x........: vg_quick_start_guide_aux (test_spe.c:28)
++   by 0x........: vg_quick_start_guide (test_spe.c:34)
++   by 0x........: run (test_spe.h:42)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: main (test_spe.c:930)
++ Address 0x........ is 0 bytes after a block of size 40 alloc'd
++   at 0x........: malloc (vg_replace_malloc.c:...)
++   by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
++   by 0x........: vg_quick_start_guide (test_spe.c:34)
++   by 0x........: run (test_spe.h:42)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: main (test_spe.c:930)
++
++
++HEAP SUMMARY:
++    in use at exit: 40 bytes in 1 blocks
++  total heap usage: 2 allocs, 1 frees, 296 bytes allocated
++
++40 bytes in 1 blocks are definitely lost in loss record ... of ...
++   at 0x........: malloc (vg_replace_malloc.c:...)
++   by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
++   by 0x........: vg_quick_start_guide (test_spe.c:34)
++   by 0x........: run (test_spe.h:42)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: run (test_spe.h:48)
++   by 0x........: main (test_spe.c:930)
++
++LEAK SUMMARY:
++   definitely lost: 40 bytes in 1 blocks
++   indirectly lost: 0 bytes in 0 blocks
++     possibly lost: 0 bytes in 0 blocks
++   still reachable: 0 bytes in 0 blocks
++        suppressed: 0 bytes in 0 blocks
++
++For counts of detected and suppressed errors, rerun with: -v
++ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+new file mode 100644
+index 0000000..8c7fd04
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -0,0 +1,21 @@
++SPE Regression Tests: PASS
++.Generic Assorted Tests: PASS
++..The most minimal C program: PASS
++..The classic hello-world C program: PASS
++..Valgrind Quick Start Guide zeroeth example: PASS
++..Recursive Tests: PASS
++...Fibonnaci: PASS
++...Count the number of leaves in a binary tree: PASS
++..Simple loops: PASS
++..Simple array: PASS
++..Pointer to function: PASS
++..Algorithm in C for evxor: PASS
++.SPE ISA Tests: PASS
++..SPE ISA Standalone Instruction Tests: PASS
++...SPE ISA Load Store Tests: PASS
++....Unit test for evldd using asm: PASS
++....Unit test for evstdd using asm: PASS
++...SPE ISA Bitwise Operators Tests: PASS
++....Unit test for evxor using asm: PASS
++..SPE ISA Miscellaneous Tests: PASS
++...Memory transfer using evldd-evstdd: PASS
+diff --git a/memcheck/tests/ppc32/test_spe.vgtest b/memcheck/tests/ppc32/test_spe.vgtest
+new file mode 100644
+index 0000000..2c9cab3
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.vgtest
+@@ -0,0 +1,2 @@
++prog: test_spe
++vgopts: --leak-check=full
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index c3a03f9..f889ca8 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 56 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 65 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -473,15 +473,18 @@ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/m
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ Making check in ppc32
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make  power_ISA2_05
++make  power_ISA2_05 test_spe
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
+ mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
+ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++mv -f .deps/test_spe.Tpo .deps/test_spe.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_spe test_spe.o  
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -501,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -548,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -602,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -653,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -761,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 63 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1063,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 61 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1155,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 59 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1223,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 59 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1252,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1415,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 62 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1625,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 53 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 64 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1686,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 63 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1756,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 63 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1816,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 63 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1860,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 63 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1898,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 63 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1977,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 23950 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 10642 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1994,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 31147 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 11202 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2085,6 +2088,7 @@ pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace
+ post-syscall:    valgrind   -q ./post-syscall 
+ -- Running  tests in memcheck/tests/ppc32 ------------------------------
+ power_ISA2_05:   valgrind   ./power_ISA2_05 
++test_spe:        valgrind   --leak-check=full ./test_spe 
+ -- Finished tests in memcheck/tests/ppc32 ------------------------------
+ -- Running  tests in memcheck/tests/ppc64 ------------------------------
+ power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+@@ -2106,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 29122 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 15901 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2242,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:   451 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 20385 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2408,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 25497 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  5524 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2527,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 28309 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 10910 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2550,7 +2554,7 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 529 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 530 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0007-Implement-SPE-Instructions-evlddx-evstddx.patch b/recipes-devtools/valgrind/files/0007-Implement-SPE-Instructions-evlddx-evstddx.patch
new file mode 100644
index 0000000..cf81f12
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0007-Implement-SPE-Instructions-evlddx-evstddx.patch
@@ -0,0 +1,433 @@
+From 9f6c00609ba413bf6cead081256861839f21273e Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 25 Jan 2013 09:18:11 -0800
+Subject: [PATCH 07/65] Implement SPE Instructions: { evlddx, evstddx }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   16 +++
+ memcheck/tests/ppc32/test_spe.c          |  198 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    2 +
+ regtest-power7-64.log                    |   20 ++--
+ 5 files changed, 229 insertions(+), 13 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 1015202..f4e28a3 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11647,6 +11647,7 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    UChar opc1    = evxOpcode( theInstr );
+    UChar rD_addr = evxRD( theInstr );
+    UChar rA_addr = evxRA( theInstr );
++   UChar rB_addr = evxRB( theInstr );
+    UChar uimm    = evxRB( theInstr );
+    UChar disp    = 0;
+    UInt  opc2    = evxXO( theInstr );
+@@ -11660,6 +11661,12 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    }
+ 
+    switch (opc2) {
++   case 0x300:
++      // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
++      DIP( "evlddx r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      assign( EA, ea_rAor0_idxd ( rA_addr, rB_addr ) );
++      putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
++      break;
+    case 0x301:
+       // evldd (Vector Load Double of Double, SPEPEM p5-112)
+       disp = 8 * uimm;
+@@ -11682,6 +11689,7 @@ static Bool dis_spe_store ( UInt theInstr )
+    UInt  opc2    = evxXO( theInstr );
+    UChar rS_addr = evxRS( theInstr );
+    UChar rA_addr = evxRA( theInstr );
++   UChar rB_addr = evxRB( theInstr );
+    UChar uimm    = evxRB( theInstr );
+    UInt  disp    = 0;
+ 
+@@ -11696,6 +11704,12 @@ static Bool dis_spe_store ( UInt theInstr )
+    assign( rS, getSPEReg( rS_addr ) );
+ 
+    switch (opc2) {
++   case 0x320:
++      // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
++      DIP( "evstddx r%d, r%d, r%d\n", rS_addr, rA_addr, rB_addr );
++      assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
++      storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
++      break;
+    case 0x321:
+       // evstdd (Vector Store Double of Double, SPEPEM p5-228)
+       disp = 8 * uimm;
+@@ -17736,10 +17750,12 @@ DisResult disInstr_PPC_WRK (
+ #ifdef __SPE__
+       opc2 = IFIELD(theInstr, 0, 11);
+       switch (opc2) {
++      case 0x300: // evlddx
+       case 0x301: // evldd
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x320: // evstddx
+       case 0x321: // evstdd
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 687a6bb..5f8fa56 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -819,6 +819,200 @@ int get_leaf_count (void)
+ }
+ TEST_SPE_DECL(get_leaf_count, "Count the number of leaves in a binary tree");
+ 
++#ifdef __SPE__
++__ev64_u64__ evlddx_asm_src[64] = {
++
++  (__ev64_u64__) { 0x1b8fb34fe81044b1 },
++  (__ev64_u64__) { 0x0a4a591f5b8f8497 },
++  (__ev64_u64__) { 0x00a57506182a59f9 },
++  (__ev64_u64__) { 0x78fe213915f4ca9c },
++  (__ev64_u64__) { 0x4808bd326348bcae },
++  (__ev64_u64__) { 0xbc6a6b892c51b01d },
++  (__ev64_u64__) { 0x2a4d520f29419f9e },
++  (__ev64_u64__) { 0xece64f6b4a39edca },
++  (__ev64_u64__) { 0xb278818cbb1d299b },
++  (__ev64_u64__) { 0x021197d9f2d304e8 },
++  (__ev64_u64__) { 0x01f80b84d9b03412 },
++  (__ev64_u64__) { 0x680483b30cba9c1e },
++  (__ev64_u64__) { 0x9d53d07ace9ea315 },
++  (__ev64_u64__) { 0x4f9620bfc4b7ad55 },
++  (__ev64_u64__) { 0x2bfcc8d727e10222 },
++  (__ev64_u64__) { 0x63c0f3c70c009cd6 },
++  (__ev64_u64__) { 0xc66635a4cc5021e8 },
++  (__ev64_u64__) { 0x5d416b08140732be },
++  (__ev64_u64__) { 0xdb9094474ea04fba },
++  (__ev64_u64__) { 0xf727eb805697c5fe },
++  (__ev64_u64__) { 0x084453eb30bac461 },
++  (__ev64_u64__) { 0x79361c10f2da6463 },
++  (__ev64_u64__) { 0xfc0a1324817b381d },
++  (__ev64_u64__) { 0x4c6bea4f190771fe },
++  (__ev64_u64__) { 0x627f5cbd1aa84af0 },
++  (__ev64_u64__) { 0x6323f32a76672009 },
++  (__ev64_u64__) { 0xafc2447cf9e6b02b },
++  (__ev64_u64__) { 0x5bb45e002b8bcf0f },
++  (__ev64_u64__) { 0x759897fccc6c7033 },
++  (__ev64_u64__) { 0xc8e8ec759a5aafb2 },
++  (__ev64_u64__) { 0xb8929a7965faa8d3 },
++  (__ev64_u64__) { 0xe639f8ec7b53b9b7 },
++  (__ev64_u64__) { 0x25653bd837027e48 },
++  (__ev64_u64__) { 0x8bac19d30acfb5e6 },
++  (__ev64_u64__) { 0x95f48dcde3521a00 },
++  (__ev64_u64__) { 0x6daa3b4f2b87bbd3 },
++  (__ev64_u64__) { 0x2b736f2428a2b9b0 },
++  (__ev64_u64__) { 0xe1afc87fc70a94ef },
++  (__ev64_u64__) { 0x4b0a474600b0db38 },
++  (__ev64_u64__) { 0xf84db8cb500e5743 },
++  (__ev64_u64__) { 0x93564adf48ad9efc },
++  (__ev64_u64__) { 0xd4c8bc4761ba565c },
++  (__ev64_u64__) { 0x886bc0def5c5746f },
++  (__ev64_u64__) { 0xf69db114fb369fa2 },
++  (__ev64_u64__) { 0x18fcffd5735062ac },
++  (__ev64_u64__) { 0x772a2de0b594bbf8 },
++  (__ev64_u64__) { 0x10883d1a81a68ac1 },
++  (__ev64_u64__) { 0xf13b1ad7bf01cc86 },
++  (__ev64_u64__) { 0x764e44f2ef6e0905 },
++  (__ev64_u64__) { 0x70a481e80e521384 },
++  (__ev64_u64__) { 0x278e63feff165f44 },
++  (__ev64_u64__) { 0xa2ac6d34c903d1f1 },
++  (__ev64_u64__) { 0x653f50aa521e0b00 },
++  (__ev64_u64__) { 0x98a906b12eb7d278 },
++  (__ev64_u64__) { 0x79411d622d642425 },
++  (__ev64_u64__) { 0x94730d1662a01b5f },
++  (__ev64_u64__) { 0xe50b8fe1d3b47dd9 },
++  (__ev64_u64__) { 0x86b15f48c057921a },
++  (__ev64_u64__) { 0x079e0e8bc5aa2557 },
++  (__ev64_u64__) { 0x7af52553dbcd1d18 },
++  (__ev64_u64__) { 0xfe343510bdc4dc89 },
++  (__ev64_u64__) { 0x5107ed123527c906 },
++  (__ev64_u64__) { 0xc828f032e071851b },
++  (__ev64_u64__) { 0xa6bb92c486a00207 },
++
++};
++#endif // __SPE__
++
++int evlddx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base asm ("30");
++  register __ev64_u64__ vec asm ("29");
++  register int idx asm ("28");
++  register int i asm ("27");
++
++  asm volatile ("lis %[b], evlddx_asm_src at ha" : [b] "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], evlddx_asm_src at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == evlddx_asm_src);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u64__);
++    asm volatile ("evlddx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY (vec[0] == evlddx_asm_src[i][0]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlddx_asm, "Unit test for evlddx using asm");
++
++#ifdef __SPE__
++__ev64_u64__ evstddx_asm_src[64] = {
++
++  (__ev64_u64__) { 0xdec3d88456c3fc40 },
++  (__ev64_u64__) { 0xbe720bc3771b154e },
++  (__ev64_u64__) { 0x833bcbf3ae8c4c0f },
++  (__ev64_u64__) { 0xa9a2596949543224 },
++  (__ev64_u64__) { 0x8e9ca8ead04e5d37 },
++  (__ev64_u64__) { 0x7134c39e522a34c8 },
++  (__ev64_u64__) { 0xdea7d65919c7475b },
++  (__ev64_u64__) { 0x5d9863f9c28b2ffb },
++  (__ev64_u64__) { 0xa280012e4eb729f3 },
++  (__ev64_u64__) { 0xf0d4fdfc1f8f506b },
++  (__ev64_u64__) { 0xd82d384cf2d2d354 },
++  (__ev64_u64__) { 0x99d022e8b099ddc4 },
++  (__ev64_u64__) { 0x2f026f03f54332a9 },
++  (__ev64_u64__) { 0x84af34a0dac1b00d },
++  (__ev64_u64__) { 0xd6cfb9b12c2234c4 },
++  (__ev64_u64__) { 0x618a828356df1dcd },
++  (__ev64_u64__) { 0x6e70df6b685576cd },
++  (__ev64_u64__) { 0xcef34a707c2d4a0c },
++  (__ev64_u64__) { 0xd8d704809fbe84dc },
++  (__ev64_u64__) { 0xfc7c44d0b3f0fa87 },
++  (__ev64_u64__) { 0x613e1b1534c64b4c },
++  (__ev64_u64__) { 0x48dade5a56120e88 },
++  (__ev64_u64__) { 0x9ac0df694634ab4a },
++  (__ev64_u64__) { 0x3fdac62e9b0b37af },
++  (__ev64_u64__) { 0x6e25e43b79c49958 },
++  (__ev64_u64__) { 0x8103b390c4c66e52 },
++  (__ev64_u64__) { 0x34aeb3affb5b47bc },
++  (__ev64_u64__) { 0xb7739f8d6d756616 },
++  (__ev64_u64__) { 0x9f6dca723d42c69a },
++  (__ev64_u64__) { 0xaf74fa824d3d8c35 },
++  (__ev64_u64__) { 0xf672667dbcc25995 },
++  (__ev64_u64__) { 0x1258b8efc1da491a },
++  (__ev64_u64__) { 0xa99e289dc903d104 },
++  (__ev64_u64__) { 0x866b1039c7e012a6 },
++  (__ev64_u64__) { 0x54608819d6e84391 },
++  (__ev64_u64__) { 0x46577617962f3983 },
++  (__ev64_u64__) { 0xd5e48e1a1f950ebf },
++  (__ev64_u64__) { 0xd30a4c1bc0c68494 },
++  (__ev64_u64__) { 0xb75672415e161e8f },
++  (__ev64_u64__) { 0x8d08b9b6d17f349e },
++  (__ev64_u64__) { 0x3d8f99e1675618fb },
++  (__ev64_u64__) { 0x362c8aeb0b23ccda },
++  (__ev64_u64__) { 0x735cde2c49dd2ad8 },
++  (__ev64_u64__) { 0x2bbb26ee0e4cb870 },
++  (__ev64_u64__) { 0x4ffecb72064b2c64 },
++  (__ev64_u64__) { 0xc2da207386620594 },
++  (__ev64_u64__) { 0x281691ce95a80716 },
++  (__ev64_u64__) { 0x982ad6886e682c8e },
++  (__ev64_u64__) { 0xe3db256ba10c9b6b },
++  (__ev64_u64__) { 0xf2b0c81559acc89b },
++  (__ev64_u64__) { 0xd4cc367069e3fe9b },
++  (__ev64_u64__) { 0x130d008bd08ad56c },
++  (__ev64_u64__) { 0xbf55dc4a6c0f3ada },
++  (__ev64_u64__) { 0x5dd1771d3c1f036d },
++  (__ev64_u64__) { 0xe76dfa68185fb2fa },
++  (__ev64_u64__) { 0x504939bb6bfe9db8 },
++  (__ev64_u64__) { 0x0eb3ebfaa5b120d8 },
++  (__ev64_u64__) { 0x7c8a2be338214a74 },
++  (__ev64_u64__) { 0x2d756daf7b385001 },
++  (__ev64_u64__) { 0x3c78f432ae907855 },
++  (__ev64_u64__) { 0x3babc8041813a111 },
++  (__ev64_u64__) { 0x841d99971c964f9e },
++  (__ev64_u64__) { 0x8a9f6045109e1c2d },
++  (__ev64_u64__) { 0xb72d4efc2e4410b5 },
++};
++__ev64_u64__ evstddx_asm_dst[64];
++#endif // __SPE__
++
++int evstddx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base asm ("30");
++  register void *dst_base asm ("29");
++  register __ev64_u64__ vec asm ("28");
++  register int idx asm ("27");
++  register int i asm ("26");
++
++  asm volatile ("lis %[b], evstddx_asm_src at ha" : [b] "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], evstddx_asm_src at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == evstddx_asm_src);
++
++  asm volatile ("lis %[b], evstddx_asm_dst at ha" : [b] "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], evstddx_asm_dst at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == evstddx_asm_dst);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx));
++    VERIFY (evstddx_asm_src[i][0] == evstddx_asm_dst[i][0]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstddx_asm, "Unit test for evstddx using asm");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -863,6 +1057,8 @@ test_t spe_isa_load_store_test_table = {
+   .table = {
+     F(evldd_asm),
+     F(evstdd_asm),
++    F(evlddx_asm),
++    F(evstddx_asm),
+     NULL
+   }
+ };
+@@ -934,3 +1130,5 @@ int main(void)
+ 
+ // TODOS:
+ // 0. Add extensive tests for printf ()-family functions with varied format.
++// 1. Make VERIFY() a variadic function, parametrized with the local paramters in addition to __LINE__.
++// 2. Make a data header file per test and include those throughout the code where you have those blobs of 0x's.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 0f498a1..00f2f76 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:930)
++   by 0x........: main (test_spe.c:1126)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:930)
++   by 0x........: main (test_spe.c:1126)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:930)
++   by 0x........: main (test_spe.c:1126)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 8c7fd04..714eaa6 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -15,6 +15,8 @@ SPE Regression Tests: PASS
+ ...SPE ISA Load Store Tests: PASS
+ ....Unit test for evldd using asm: PASS
+ ....Unit test for evstdd using asm: PASS
++....Unit test for evlddx using asm: PASS
++....Unit test for evstddx using asm: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....Unit test for evxor using asm: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index f889ca8..9306be8 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 65 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 66 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 68 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 69 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 10642 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 18704 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 11202 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 19268 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 15901 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 23965 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 20385 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 28448 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  5524 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 13600 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 10910 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18941 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0008-Implement-SPE-Instructions-evldh-evstdh.patch b/recipes-devtools/valgrind/files/0008-Implement-SPE-Instructions-evldh-evstdh.patch
new file mode 100644
index 0000000..432ba12
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0008-Implement-SPE-Instructions-evldh-evstdh.patch
@@ -0,0 +1,437 @@
+From b2591320f2ec6892e5d5d9532db4f75a0a316cbb Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Sat, 26 Jan 2013 06:40:37 -0800
+Subject: [PATCH 08/65] Implement SPE Instructions: { evldh, evstdh }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   91 ++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  153 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    2 +
+ regtest-power7-64.log                    |   14 ++--
+ 5 files changed, 256 insertions(+), 10 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index f4e28a3..1170363 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11655,6 +11655,27 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    IRTemp EA = newTemp( Ity_I32 );
+    IRTemp rD = newTemp( Ity_I64 );
+ 
++   IRTemp ea0 = newTemp( Ity_I32 );
++   IRTemp ea2 = newTemp( Ity_I32 );
++   IRTemp ea4 = newTemp( Ity_I32 );
++   IRTemp ea6 = newTemp( Ity_I32 );
++
++   IRTemp ehwu = newTemp( Ity_I16 );
++   IRTemp ohwu = newTemp( Ity_I16 );
++   IRTemp ehwl = newTemp( Ity_I16 );
++   IRTemp ohwl = newTemp( Ity_I16 );
++
++   IRTemp u0 = newTemp( Ity_I32 );
++   IRTemp u1 = newTemp( Ity_I32 );
++   IRTemp u2 = newTemp( Ity_I32 );
++
++   IRTemp l0 = newTemp( Ity_I32 );
++   IRTemp l1 = newTemp( Ity_I32 );
++   IRTemp l2 = newTemp( Ity_I32 );
++
++   IRTemp wu  = newTemp( Ity_I32 );
++   IRTemp wl  = newTemp( Ity_I32 );
++
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_load(ppc)(opc1 != 0x4)\n" );
+       return False;
+@@ -11674,6 +11695,37 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+       assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+       putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
+       break;
++   case 0x305:
++      // evldh (Vector Load Double into Four Half Words, SPEPEM p5-114)
++      disp = 8 * uimm;
++      DIP( "evldh r%d, %u(r%u)\n", rD_addr, disp, rA_addr );
++
++      assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++
++      assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++      assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
++      assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
++      assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
++
++      assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++      assign( ohwu, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++      assign( ehwl, loadBE( Ity_I16, mkexpr ( ea4 ) ) );
++      assign( ohwl, loadBE( Ity_I16, mkexpr ( ea6 ) ) );
++
++      assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++      assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++      assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++      assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++      assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++      assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++      assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++      assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++      assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++
++      putSPEReg( rD_addr, mkexpr ( rD ) );
++      break;
+    }
+ 
+    return True;
+@@ -11696,6 +11748,19 @@ static Bool dis_spe_store ( UInt theInstr )
+    IRTemp EA = newTemp( Ity_I32 );
+    IRTemp rS = newTemp( Ity_I64 );
+ 
++   IRTemp ea0 = newTemp( Ity_I32 );
++   IRTemp ea2 = newTemp( Ity_I32 );
++   IRTemp ea4 = newTemp( Ity_I32 );
++   IRTemp ea6 = newTemp( Ity_I32 );
++
++   IRTemp rSU  = newTemp( Ity_I32 );
++   IRTemp rSL  = newTemp( Ity_I32 );
++
++   IRTemp rSUU = newTemp( Ity_I16 );
++   IRTemp rSUL = newTemp( Ity_I16 );
++   IRTemp rSLU = newTemp( Ity_I16 );
++   IRTemp rSLL = newTemp( Ity_I16 );
++
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_store(ppc)(opc1 != 0x4)\n" );
+       return False;
+@@ -11717,6 +11782,30 @@ static Bool dis_spe_store ( UInt theInstr )
+       assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+       storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
+       break;
++   case 0x325:
++      // evstdh (Vector Store Double of Four Half Words, SPEPEM p5-230)
++      disp = 8 * uimm;
++      DIP( "evstdh r%d, %u(r%u)\n", rS_addr, disp, rA_addr );
++
++      assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++
++      assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++      assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
++      assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
++      assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
++
++      assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++      assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++
++      assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
++      assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
++      assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
++      assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
++
++      storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
++      storeBE( mkexpr( ea2 ), mkexpr( rSUL ) );
++      storeBE( mkexpr( ea4 ), mkexpr( rSLU ) );
++      storeBE( mkexpr( ea6 ), mkexpr( rSLL ) );
+    }
+ 
+    return True;
+@@ -17752,11 +17841,13 @@ DisResult disInstr_PPC_WRK (
+       switch (opc2) {
+       case 0x300: // evlddx
+       case 0x301: // evldd
++      case 0x305: // evldh
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
+       case 0x320: // evstddx
+       case 0x321: // evstdd
++      case 0x325: // evstdh
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 5f8fa56..a154615 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -1013,6 +1013,156 @@ int evstddx_asm(void)
+ }
+ TEST_SPE_DECL(evstddx_asm, "Unit test for evstddx using asm");
+ 
++#ifdef __SPE__
++__ev64_u16__ evldh_asm_src[32] = {
++
++  (__ev64_u16__) { 0x71ef, 0x9842, 0x308c, 0x55d3 },
++  (__ev64_u16__) { 0xd4ea, 0xcd1c, 0xde21, 0xc2df },
++  (__ev64_u16__) { 0xf1f7, 0xe213, 0x239c, 0x316a },
++  (__ev64_u16__) { 0x9103, 0x599d, 0x8eb2, 0xe8c9 },
++  (__ev64_u16__) { 0x47d5, 0x9ce5, 0xcac4, 0xf89e },
++  (__ev64_u16__) { 0x88f7, 0x6a5e, 0x1dce, 0x769d },
++  (__ev64_u16__) { 0x9265, 0x826a, 0xf1a0, 0x6557 },
++  (__ev64_u16__) { 0x48c4, 0xbbf2, 0xb5f6, 0x0d56 },
++  (__ev64_u16__) { 0x902d, 0x7174, 0x9c4a, 0x74a3 },
++  (__ev64_u16__) { 0xec08, 0x566b, 0xf2d4, 0x510b },
++  (__ev64_u16__) { 0x1853, 0x1f8d, 0x116b, 0x5aa1 },
++  (__ev64_u16__) { 0x02f9, 0xd7d4, 0xddbb, 0xebfc },
++  (__ev64_u16__) { 0xf732, 0x6d97, 0x0261, 0xd5a6 },
++  (__ev64_u16__) { 0xeba3, 0xd32b, 0x8ff2, 0xa8bc },
++  (__ev64_u16__) { 0xdf2a, 0x19cf, 0x4c2d, 0x5c80 },
++  (__ev64_u16__) { 0xc2da, 0x9c5e, 0x743f, 0xfb8a },
++  (__ev64_u16__) { 0xc92c, 0x8690, 0x90e2, 0x82eb },
++  (__ev64_u16__) { 0xdf29, 0x1a8f, 0x3f46, 0x25d8 },
++  (__ev64_u16__) { 0x492f, 0x32c9, 0xd565, 0x642e },
++  (__ev64_u16__) { 0x502c, 0x9467, 0x7580, 0x3037 },
++  (__ev64_u16__) { 0x2cb3, 0x9493, 0xe8f8, 0x1b8e },
++  (__ev64_u16__) { 0xdeec, 0x713d, 0xe660, 0x8657 },
++  (__ev64_u16__) { 0x2643, 0x7bf1, 0x191d, 0x3ad4 },
++  (__ev64_u16__) { 0x8af3, 0xd95f, 0x006c, 0xf976 },
++  (__ev64_u16__) { 0x1462, 0x9a3c, 0xf1d3, 0xe7d1 },
++  (__ev64_u16__) { 0x56db, 0xfb5b, 0xbc03, 0xd675 },
++  (__ev64_u16__) { 0x15a2, 0xac3c, 0x4e3c, 0xce2b },
++  (__ev64_u16__) { 0xdb24, 0x21fc, 0xf47a, 0x8dca },
++  (__ev64_u16__) { 0xb6a6, 0x2cda, 0x306a, 0x1304 },
++  (__ev64_u16__) { 0x3d47, 0xc3bf, 0x29eb, 0xc414 },
++  (__ev64_u16__) { 0xbeca, 0x6def, 0xb46a, 0xac27 },
++  (__ev64_u16__) { 0x758a, 0x056f, 0x48bf, 0xa1da },
++
++};
++#endif // __SPE__
++
++int evldh_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base asm ("30");
++  register __ev64_u16__ vec asm ("29");
++
++  asm volatile ("lis %[b], evldh_asm_src at ha" : [b] "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], evldh_asm_src at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == evldh_asm_src);
++
++#define EVLDH(index)                                                                      \
++  asm volatile ("evldh %[v], " #index " *8(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY (vec[0] == evldh_asm_src[index][0] && vec[1] == evldh_asm_src[index][1] &&       \
++          vec[2] == evldh_asm_src[index][2] && vec[3] == evldh_asm_src[index][3]);
++
++  EVLDH(0);
++  EVLDH(1);
++  EVLDH(2);
++  EVLDH(3);
++  EVLDH(4);
++  EVLDH(5);
++  EVLDH(6);
++  EVLDH(7);
++  EVLDH(8);
++  EVLDH(9);
++  EVLDH(10);
++  EVLDH(11);
++  EVLDH(12);
++  EVLDH(13);
++  EVLDH(14);
++  EVLDH(15);
++  EVLDH(16);
++  EVLDH(17);
++  EVLDH(18);
++  EVLDH(19);
++  EVLDH(20);
++  EVLDH(21);
++  EVLDH(22);
++  EVLDH(23);
++  EVLDH(24);
++  EVLDH(25);
++  EVLDH(26);
++  EVLDH(27);
++  EVLDH(28);
++  EVLDH(29);
++  EVLDH(30);
++  EVLDH(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldh_asm, "Unit test for evldh using asm");
++
++#ifdef __SPE__
++__ev64_u16__ evstdh_asm_dst[32];
++#endif // __SPE__
++
++int evstdh_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *dst_base asm ("29");
++  register __ev64_u16__ vec asm ("30");
++
++  asm volatile ("lis %[b], evstdh_asm_dst at ha" : [b] "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], evstdh_asm_dst at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++
++#define EVSTDH(index, hw0, hw1, hw2, hw3)                                                 \
++  vec = (__ev64_u16__) { (hw0), (hw1), (hw2), (hw3) };                                    \
++  asm volatile ("evstdh %[v], " #index "*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY (evstdh_asm_dst[index][0] == (hw0) && evstdh_asm_dst[index][1] == (hw1) &&       \
++          evstdh_asm_dst[index][2] == (hw2) && evstdh_asm_dst[index][3] == (hw3));
++
++  EVSTDH(0, 0xf03d, 0xc01d, 0x5dce, 0x105a);
++  EVSTDH(1, 0x21e2, 0xab01, 0xd44c, 0x6e17);
++  EVSTDH(2, 0x397e, 0x8667, 0x198a, 0x9f89);
++  EVSTDH(3, 0x7114, 0xdf86, 0x7588, 0x6667);
++  EVSTDH(4, 0xd5a8, 0xf203, 0xfec1, 0x0141);
++  EVSTDH(5, 0xd8cb, 0x5fc3, 0x861b, 0xb3e8);
++  EVSTDH(6, 0x7114, 0xf9b5, 0x58dc, 0xc615);
++  EVSTDH(7, 0x2212, 0x8f0f, 0xd82c, 0x14d2);
++  EVSTDH(8, 0x88f9, 0xb951, 0x343f, 0x95f7);
++  EVSTDH(9, 0xb87d, 0x2d19, 0xdbf0, 0x1712);
++  EVSTDH(10, 0x67cc, 0x152e, 0xe8c7, 0x9973);
++  EVSTDH(11, 0xcc63, 0x6192, 0xf54d, 0xbc11);
++  EVSTDH(12, 0xc437, 0x81b4, 0xe2c3, 0x05da);
++  EVSTDH(13, 0x69ba, 0xe6a1, 0x094b, 0xd9d8);
++  EVSTDH(14, 0xb310, 0x503c, 0x44b3, 0x94be);
++  EVSTDH(15, 0x7ec7, 0xce4c, 0xbdab, 0x90d8);
++  EVSTDH(16, 0x6eba, 0x47d2, 0x302a, 0x572e);
++  EVSTDH(17, 0xe9d3, 0x817d, 0x6050, 0xbd19);
++  EVSTDH(18, 0xafb1, 0xce08, 0x7e9d, 0x5d86);
++  EVSTDH(19, 0x0ab0, 0xf5dc, 0xca05, 0x900a);
++  EVSTDH(20, 0xd880, 0xf6fe, 0x0070, 0xa3e7);
++  EVSTDH(21, 0x5243, 0x8c91, 0xfeb1, 0x5441);
++  EVSTDH(22, 0x2b6f, 0xe9cb, 0x6556, 0x6147);
++  EVSTDH(23, 0x6f4b, 0x1dbd, 0xe18a, 0x6067);
++  EVSTDH(24, 0x0d45, 0x32c3, 0x4157, 0xcddb);
++  EVSTDH(25, 0xc967, 0xed10, 0xe177, 0x94ce);
++  EVSTDH(26, 0x1ddb, 0x7a29, 0xde47, 0xc593);
++  EVSTDH(27, 0xcfef, 0x3a05, 0x91a3, 0xf02f);
++  EVSTDH(28, 0x4b0c, 0xfe0b, 0xab33, 0xb06c);
++  EVSTDH(29, 0xb224, 0xcda0, 0xf746, 0x8ddb);
++  EVSTDH(30, 0xabda, 0xe546, 0x74e5, 0x862c);
++  EVSTDH(31, 0x443d, 0x598c, 0x743a, 0x3a29);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstdh_asm, "Unit test for evstdh using asm");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -1059,6 +1209,8 @@ test_t spe_isa_load_store_test_table = {
+     F(evstdd_asm),
+     F(evlddx_asm),
+     F(evstddx_asm),
++    F(evldh_asm),
++    F(evstdh_asm),
+     NULL
+   }
+ };
+@@ -1132,3 +1284,4 @@ int main(void)
+ // 0. Add extensive tests for printf ()-family functions with varied format.
+ // 1. Make VERIFY() a variadic function, parametrized with the local paramters in addition to __LINE__.
+ // 2. Make a data header file per test and include those throughout the code where you have those blobs of 0x's.
++// 3. Cleanup evstdd_asm (); like macroise like evstdh_asm ()
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 00f2f76..07fbb6a 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1126)
++   by 0x........: main (test_spe.c:1278)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1126)
++   by 0x........: main (test_spe.c:1278)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1126)
++   by 0x........: main (test_spe.c:1278)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 714eaa6..3a9baaf 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -17,6 +17,8 @@ SPE Regression Tests: PASS
+ ....Unit test for evstdd using asm: PASS
+ ....Unit test for evlddx using asm: PASS
+ ....Unit test for evstddx using asm: PASS
++....Unit test for evldh using asm: PASS
++....Unit test for evstdh using asm: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....Unit test for evxor using asm: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 9306be8..80959da 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 69 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 18704 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 16421 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 19268 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 16980 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 23965 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 21683 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 28448 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 26156 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 13600 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 11310 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 18941 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 16648 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0009-Create-data-pools-per-__ev64_-__-integer-type-and-an.patch b/recipes-devtools/valgrind/files/0009-Create-data-pools-per-__ev64_-__-integer-type-and-an.patch
new file mode 100644
index 0000000..85751d7
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0009-Create-data-pools-per-__ev64_-__-integer-type-and-an.patch
@@ -0,0 +1,4764 @@
+From 7c0305a1d76b4e5742dc90a25bacada75ef558a0 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 29 Jan 2013 11:45:30 -0800
+Subject: [PATCH 09/65] Create data pools per __ev64_*__ integer type and an example demonstrating their use.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |  406 +++
+ memcheck/tests/ppc32/test_spe.h          | 4265 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    7 +
+ 4 files changed, 4681 insertions(+), 3 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index a154615..ffc1a7c 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -1163,6 +1163,396 @@ int evstdh_asm(void)
+ }
+ TEST_SPE_DECL(evstdh_asm, "Unit test for evstdh using asm");
+ 
++#ifdef __SPE__
++__ev64_u16__ pool_demo_4u16_mst[4] = {
++
++  (__ev64_u16__) { 0x2209, 0x202a, 0xdb6c, 0x7710 },
++  (__ev64_u16__) { 0x5869, 0xb207, 0x7430, 0x36ae },
++  (__ev64_u16__) { 0x19a7, 0xaf7e, 0xafb3, 0x4f8b },
++  (__ev64_u16__) { 0xf565, 0x2d72, 0x4863, 0xb1eb },
++
++};
++#endif // __SPE__
++
++int pool_demo_4u16 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA4u16 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA4u16 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA4u16);
++
++  asm volatile ("lis %[b], rB4u16 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB4u16 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB4u16);
++
++  asm volatile ("lis %[b], rD4u16 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD4u16 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD4u16);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_u16__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++#ifdef GEN_BASELINE
++    u16_dump(&rD4u16[i], 1);
++#else
++    VERIFY(rD4u16[i][0] == pool_demo_4u16_mst[i][0] &&
++           rD4u16[i][1] == pool_demo_4u16_mst[i][1] &&
++           rD4u16[i][2] == pool_demo_4u16_mst[i][2] &&
++           rD4u16[i][3] == pool_demo_4u16_mst[i][3]);
++#endif
++  }
++  memset (rD4u16, 0x0, 4 * sizeof (__ev64_u16__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD4u16[i][0] == 0x0);
++    VERIFY(rD4u16[i][1] == 0x0);
++    VERIFY(rD4u16[i][2] == 0x0);
++    VERIFY(rD4u16[i][3] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_4u16, "Using __ev64_u16__ pool");
++
++#ifdef __SPE__
++__ev64_s16__ pool_demo_4s16_mst[4] = {
++
++  (__ev64_s16__) { 0x9cbc, 0xf048, 0xef48, 0xfbe2 },
++  (__ev64_s16__) { 0xc802, 0xa82f, 0xe6b9, 0x1201 },
++  (__ev64_s16__) { 0x98c,  0xdf9,  0x43b8, 0xcae8 },
++  (__ev64_s16__) { 0x8a82, 0x36cb, 0x79f6, 0x4cfd },
++
++};
++#endif // __SPE__
++
++int pool_demo_4s16 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA4s16 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA4s16 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA4s16);
++
++  asm volatile ("lis %[b], rB4s16 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB4s16 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB4s16);
++
++  asm volatile ("lis %[b], rD4s16 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD4s16 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD4s16);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_s16__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++
++#ifdef GEN_BASELINE
++    s16_dump(&rD4s16[i], 1);
++#else
++    VERIFY(rD4s16[i][0] == pool_demo_4s16_mst[i][0] &&
++           rD4s16[i][1] == pool_demo_4s16_mst[i][1] &&
++           rD4s16[i][2] == pool_demo_4s16_mst[i][2] &&
++           rD4s16[i][3] == pool_demo_4s16_mst[i][3]);
++#endif
++  }
++  memset (rD4s16, 0x0, 4 * sizeof (__ev64_s16__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD4s16[i][0] == 0x0);
++    VERIFY(rD4s16[i][1] == 0x0);
++    VERIFY(rD4s16[i][2] == 0x0);
++    VERIFY(rD4s16[i][3] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_4s16, "Using __ev64_s16__ pool");
++
++#ifdef __SPE__
++__ev64_u32__ pool_demo_2u32_mst[4] = {
++
++  (__ev64_u32__) { 0x3058fbc1, 0x6bb5342e },
++  (__ev64_u32__) { 0xfa76e94,  0x73b96508 },
++  (__ev64_u32__) { 0xfd3aac60, 0x17e7ef35 },
++  (__ev64_u32__) { 0xe3bcc82,  0x95ac6bc3 },
++
++};
++#endif // __SPE__
++
++int pool_demo_2u32 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA2u32 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA2u32 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA2u32);
++
++  asm volatile ("lis %[b], rB2u32 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB2u32 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB2u32);
++
++  asm volatile ("lis %[b], rD2u32 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD2u32 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD2u32);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_u32__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++#ifdef GEN_BASELINE
++    u32_dump(&rD2u32[i], 1);
++#else
++    VERIFY(rD2u32[i][0] == pool_demo_2u32_mst[i][0] &&
++           rD2u32[i][1] == pool_demo_2u32_mst[i][1]);
++#endif
++  }
++  memset (rD2u32, 0x0, 4 * sizeof (__ev64_u32__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD2u32[i][0] == 0x0);
++    VERIFY(rD2u32[i][1] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_2u32, "Using __ev64_u32__ pool");
++
++#ifdef __SPE__
++__ev64_s32__ pool_demo_2s32_mst[4] = {
++
++  (__ev64_s32__) { 0xfced1f25, 0x2a3ca7c1 },
++  (__ev64_s32__) { 0xd7b15967, 0x7755589d },
++  (__ev64_s32__) { 0xcb31a16c, 0x25139a87 },
++  (__ev64_s32__) { 0xc4ec3236, 0x867286c6 },
++
++};
++#endif // __SPE__
++
++int pool_demo_2s32 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA2s32 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA2s32 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA2s32);
++
++  asm volatile ("lis %[b], rB2s32 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB2s32 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB2s32);
++
++  asm volatile ("lis %[b], rD2s32 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD2s32 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD2s32);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_s32__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++
++#ifdef GEN_BASELINE
++    s32_dump(&rD2s32[i], 1);
++#else
++    VERIFY(rD2s32[i][0] == pool_demo_2s32_mst[i][0] &&
++           rD2s32[i][1] == pool_demo_2s32_mst[i][1]);
++#endif
++  }
++  memset (rD2s32, 0x0, 4 * sizeof (__ev64_s32__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD2s32[i][0] == 0x0);
++    VERIFY(rD2s32[i][1] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_2s32, "Using __ev64_s32__ pool");
++
++#ifdef __SPE__
++__ev64_u64__ pool_demo_1u64_mst[4] = {
++
++  (__ev64_u64__) { 0x6e2bfa62bfd667df },
++  (__ev64_u64__) { 0x2276c522bcf9df78 },
++  (__ev64_u64__) { 0xd4e311de2b71052d },
++  (__ev64_u64__) { 0xf3335d181ac35510 },
++
++};
++#endif // __SPE__
++
++int pool_demo_1u64 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA1u64 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA1u64 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA1u64);
++
++  asm volatile ("lis %[b], rB1u64 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB1u64 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB1u64);
++
++  asm volatile ("lis %[b], rD1u64 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD1u64 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD1u64);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_u64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++#ifdef GEN_BASELINE
++    u64_dump(&rD1u64[i], 1);
++#else
++    VERIFY(rD1u64[i][0] == pool_demo_1u64_mst[i][0]);
++#endif
++  }
++  memset (rD1u64, 0x0, 4 * sizeof (__ev64_u64__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD1u64[i][0] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_1u64, "Using __ev64_u64__ pool");
++
++#ifdef __SPE__
++__ev64_s64__ pool_demo_1s64_mst[4] = {
++
++  (__ev64_s64__) { 0xed104444be7ea95a },
++  (__ev64_s64__) { 0xfbbee593dccd1f7f },
++  (__ev64_s64__) { 0xa40cce39ea85a9b6 },
++  (__ev64_s64__) { 0x4136395f0865bf39 },
++
++};
++#endif // __SPE__
++
++int pool_demo_1s64 (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA1s64 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA1s64 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA1s64);
++
++  asm volatile ("lis %[b], rB1s64 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB1s64 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB1s64);
++
++  asm volatile ("lis %[b], rD1s64 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD1s64 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD1s64);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_s64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++
++#ifdef GEN_BASELINE
++    s64_dump(&rD1s64[i], 1);
++#else
++    VERIFY(rD1s64[i][0] == pool_demo_1s64_mst[i][0]);
++#endif
++  }
++  memset (rD1s64, 0x0, 4 * sizeof (__ev64_s64__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD1s64[i][0] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(pool_demo_1s64, "Using __ev64_s64__ pool");
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -1236,12 +1626,28 @@ test_t spe_isa_insn_test_table = {
+   }
+ };
+ 
++test_t pool_demo_table = {
++
++  .type = table,
++  .description = "Value pool demo",
++  .table = {
++    F(pool_demo_4u16),
++    F(pool_demo_4s16),
++    F(pool_demo_2u32),
++    F(pool_demo_2s32),
++    F(pool_demo_1u64),
++    F(pool_demo_1s64),
++    NULL
++  }
++};
++
+ test_t spe_isa_misc_test_table = {
+ 
+   .type = table,
+   .description = "SPE ISA Miscellaneous Tests",
+   .table = {
+     F(evldd_evstdd_mem_xfer),
++    &pool_demo_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 23b4beb..83ffd41 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -89,3 +89,4268 @@ static void report (test_t *test)
+     printf("Failure at line: %d\n", __LINE__); \
+   }                                            \
+ }
++
++#define NELTS(a) (sizeof ((a))/sizeof((a)[0]))
++
++#ifdef __SPE__
++/* Create pools of randomly generated values per type in
++ * Table 2-1. Data Types,
++ * SPE2PIM Rev. 1.0-1:Based on Specifications SPE2rev1.0
++ * and EFP2rev1.3 10/2011
++ *
++ * For each type, create an array corresponding to values to
++ * be read from, for using in rA, rB and to be written into
++ * from rD. Ensure that the number of elements in all three
++ * arrays is the same. Use the NELTS() macro to refer to the
++ * size of an array.
++ */
++
++#if __EV64_US8__AVAILABLE
++const __ev64_u8__ rA8u8[] = {
++
++  /*    0 */ (__ev64_u8__) { 0xa1, 0x15, 0x72, 0x4c, 0x87, 0x67, 0xd9, 0x12 },
++  /*    1 */ (__ev64_u8__) { 0x0a, 0xf0, 0x0d, 0x95, 0xcc, 0x4e, 0xb2, 0x6b },
++  /*    2 */ (__ev64_u8__) { 0x14, 0x53, 0x97, 0x67, 0xba, 0xdd, 0x04, 0xba },
++  /*    3 */ (__ev64_u8__) { 0x4f, 0x31, 0x13, 0xbe, 0x02, 0x53, 0x4b, 0x85 },
++  /*    4 */ (__ev64_u8__) { 0xc1, 0x6c, 0x1f, 0x6c, 0xe0, 0x4d, 0x31, 0x47 },
++  /*    5 */ (__ev64_u8__) { 0xe9, 0xad, 0xe1, 0xe7, 0x22, 0x8f, 0x00, 0x87 },
++  /*    6 */ (__ev64_u8__) { 0x3b, 0xc2, 0x54, 0x65, 0xee, 0xa5, 0x40, 0x09 },
++  /*    7 */ (__ev64_u8__) { 0x0d, 0x9b, 0x39, 0xc1, 0x16, 0x1a, 0x34, 0x9e },
++  /*    8 */ (__ev64_u8__) { 0x6f, 0xe3, 0x7f, 0x06, 0xf5, 0x07, 0xa9, 0x6e },
++  /*    9 */ (__ev64_u8__) { 0xf7, 0xe6, 0x35, 0x80, 0xc9, 0xf2, 0x94, 0xbe },
++  /*   10 */ (__ev64_u8__) { 0xfb, 0x2a, 0x60, 0xd3, 0xf5, 0xaa, 0xe5, 0xc8 },
++  /*   11 */ (__ev64_u8__) { 0x08, 0x5f, 0xa1, 0x04, 0xbf, 0x66, 0x82, 0x09 },
++  /*   12 */ (__ev64_u8__) { 0xc5, 0xa5, 0x18, 0xa5, 0xc7, 0xb6, 0xe6, 0x38 },
++  /*   13 */ (__ev64_u8__) { 0xbc, 0xca, 0x2c, 0x31, 0x4c, 0x7a, 0x01, 0x45 },
++  /*   14 */ (__ev64_u8__) { 0xcb, 0x23, 0xd0, 0xad, 0xc5, 0xd1, 0x4d, 0x1d },
++  /*   15 */ (__ev64_u8__) { 0x68, 0x97, 0x40, 0x99, 0x7d, 0xe2, 0x52, 0xe8 },
++  /*   16 */ (__ev64_u8__) { 0x69, 0x2c, 0x7c, 0x85, 0x40, 0xe9, 0x15, 0x4b },
++  /*   17 */ (__ev64_u8__) { 0x89, 0xe3, 0x23, 0xee, 0x0f, 0xf0, 0xa9, 0x2b },
++  /*   18 */ (__ev64_u8__) { 0xaf, 0xd9, 0xac, 0x3f, 0x4f, 0xe2, 0x46, 0x95 },
++  /*   19 */ (__ev64_u8__) { 0x76, 0x63, 0x91, 0x0c, 0xcd, 0xa4, 0x12, 0x13 },
++  /*   20 */ (__ev64_u8__) { 0xdf, 0xe9, 0x09, 0xd3, 0xaa, 0xeb, 0xa9, 0xd1 },
++  /*   21 */ (__ev64_u8__) { 0x43, 0x32, 0x22, 0xd5, 0x7e, 0x2f, 0x6f, 0x2b },
++  /*   22 */ (__ev64_u8__) { 0x56, 0xe4, 0x52, 0x03, 0x6b, 0xc3, 0x26, 0xa5 },
++  /*   23 */ (__ev64_u8__) { 0x67, 0x3e, 0x96, 0x7e, 0x16, 0x95, 0xf1, 0x54 },
++  /*   24 */ (__ev64_u8__) { 0x7c, 0xa1, 0x61, 0x7a, 0xcc, 0x21, 0xfc, 0x9f },
++  /*   25 */ (__ev64_u8__) { 0xe4, 0x1d, 0x10, 0xd3, 0x76, 0xaf, 0xba, 0x30 },
++  /*   26 */ (__ev64_u8__) { 0x41, 0x34, 0x31, 0x54, 0xe5, 0x05, 0x00, 0x06 },
++  /*   27 */ (__ev64_u8__) { 0x3f, 0x01, 0x0c, 0x6e, 0x41, 0x80, 0xb1, 0x07 },
++  /*   28 */ (__ev64_u8__) { 0xd6, 0x9a, 0x77, 0xd7, 0x8b, 0x1b, 0xa8, 0x84 },
++  /*   29 */ (__ev64_u8__) { 0xca, 0xca, 0x1e, 0x23, 0x31, 0xf5, 0xde, 0x76 },
++  /*   30 */ (__ev64_u8__) { 0xc3, 0x29, 0xb5, 0xab, 0x4a, 0x55, 0xa0, 0xfe },
++  /*   31 */ (__ev64_u8__) { 0xf4, 0xe4, 0xac, 0x7f, 0x85, 0x34, 0xe6, 0x54 },
++  /*   32 */ (__ev64_u8__) { 0x5b, 0x86, 0x50, 0x29, 0x10, 0x60, 0x69, 0xa4 },
++  /*   33 */ (__ev64_u8__) { 0x9e, 0xd4, 0x0c, 0xfd, 0xe0, 0x75, 0x77, 0x35 },
++  /*   34 */ (__ev64_u8__) { 0x66, 0xbe, 0x13, 0xb4, 0xb8, 0x91, 0x4e, 0x9a },
++  /*   35 */ (__ev64_u8__) { 0xbf, 0xe7, 0xec, 0xb3, 0xe8, 0x21, 0x1b, 0xdc },
++  /*   36 */ (__ev64_u8__) { 0xcf, 0xf8, 0xb8, 0x7d, 0x3c, 0x71, 0x32, 0x65 },
++  /*   37 */ (__ev64_u8__) { 0xfd, 0xbb, 0x3b, 0x05, 0xd2, 0x1c, 0x87, 0xba },
++  /*   38 */ (__ev64_u8__) { 0x85, 0x4a, 0x15, 0xb8, 0xe3, 0xd9, 0xb4, 0x91 },
++  /*   39 */ (__ev64_u8__) { 0x54, 0x52, 0xb5, 0x38, 0x23, 0xa1, 0xdc, 0xd7 },
++  /*   40 */ (__ev64_u8__) { 0x07, 0x5d, 0xb8, 0xd6, 0x0b, 0x9f, 0x58, 0x6c },
++  /*   41 */ (__ev64_u8__) { 0xd8, 0x6f, 0xcb, 0x1f, 0x61, 0x56, 0x92, 0x2f },
++  /*   42 */ (__ev64_u8__) { 0x17, 0x51, 0x83, 0x05, 0xff, 0xb9, 0xe1, 0xea },
++  /*   43 */ (__ev64_u8__) { 0xbc, 0x4a, 0x90, 0xda, 0xaf, 0x11, 0x09, 0xa0 },
++  /*   44 */ (__ev64_u8__) { 0x76, 0xbc, 0xfc, 0xa1, 0x85, 0x41, 0x42, 0xd4 },
++  /*   45 */ (__ev64_u8__) { 0xd0, 0xa0, 0xf5, 0x22, 0x59, 0x67, 0xf8, 0xc4 },
++  /*   46 */ (__ev64_u8__) { 0xeb, 0x77, 0x1a, 0xd3, 0x2d, 0x50, 0x1f, 0x14 },
++  /*   47 */ (__ev64_u8__) { 0xf9, 0x58, 0x5b, 0x51, 0x0b, 0x76, 0x75, 0x39 },
++  /*   48 */ (__ev64_u8__) { 0x7b, 0xdc, 0xfc, 0x65, 0x41, 0xa3, 0x20, 0x4d },
++  /*   49 */ (__ev64_u8__) { 0x2a, 0xb3, 0xb5, 0x1c, 0x96, 0x9b, 0x31, 0x62 },
++  /*   50 */ (__ev64_u8__) { 0xfc, 0x49, 0xd1, 0xf5, 0x9a, 0xee, 0x29, 0x1d },
++  /*   51 */ (__ev64_u8__) { 0xbe, 0x3a, 0x84, 0x24, 0x8b, 0x1d, 0x0e, 0xff },
++  /*   52 */ (__ev64_u8__) { 0x05, 0x94, 0xa9, 0xad, 0xae, 0x64, 0x5c, 0x92 },
++  /*   53 */ (__ev64_u8__) { 0xba, 0xb0, 0x82, 0x49, 0xc7, 0x38, 0x60, 0xda },
++  /*   54 */ (__ev64_u8__) { 0x11, 0xd2, 0xde, 0x9e, 0xdd, 0x66, 0x0a, 0x1a },
++  /*   55 */ (__ev64_u8__) { 0xfe, 0x48, 0x21, 0xbf, 0x53, 0x26, 0x49, 0x6c },
++  /*   56 */ (__ev64_u8__) { 0xe8, 0x18, 0xdc, 0xa7, 0xdc, 0x0e, 0xa3, 0x2e },
++  /*   57 */ (__ev64_u8__) { 0xc4, 0x8d, 0xa7, 0x9a, 0x4e, 0x18, 0x2e, 0xa5 },
++  /*   58 */ (__ev64_u8__) { 0x0e, 0x89, 0x5f, 0x36, 0x37, 0x87, 0x86, 0x95 },
++  /*   59 */ (__ev64_u8__) { 0xba, 0x27, 0x9d, 0x64, 0x34, 0xdf, 0xa3, 0xe4 },
++  /*   60 */ (__ev64_u8__) { 0x62, 0x40, 0x8d, 0x8d, 0x95, 0xdf, 0xe8, 0x13 },
++  /*   61 */ (__ev64_u8__) { 0x5c, 0x02, 0xbe, 0x52, 0x23, 0x4c, 0x2f, 0x58 },
++  /*   62 */ (__ev64_u8__) { 0x93, 0xe2, 0x80, 0xbf, 0x97, 0x7f, 0x71, 0x5d },
++  /*   63 */ (__ev64_u8__) { 0xdc, 0x96, 0x69, 0x85, 0xd2, 0xce, 0x52, 0x7d },
++  /*   64 */ (__ev64_u8__) { 0x85, 0xea, 0x4a, 0x5d, 0x16, 0x11, 0x40, 0x99 },
++  /*   65 */ (__ev64_u8__) { 0x29, 0xb7, 0x82, 0xf6, 0x07, 0x87, 0x50, 0x4a },
++  /*   66 */ (__ev64_u8__) { 0xfb, 0xc7, 0xb9, 0xe7, 0x9e, 0x46, 0xf4, 0x23 },
++  /*   67 */ (__ev64_u8__) { 0x00, 0x2b, 0xaa, 0xb1, 0xaf, 0xf7, 0x2b, 0x7c },
++  /*   68 */ (__ev64_u8__) { 0xd7, 0xd7, 0x1b, 0x04, 0xae, 0x4d, 0x67, 0x34 },
++  /*   69 */ (__ev64_u8__) { 0xb2, 0x59, 0xa7, 0x87, 0x8d, 0xe9, 0xa7, 0x84 },
++  /*   70 */ (__ev64_u8__) { 0x25, 0xc9, 0x9c, 0x24, 0xcf, 0x8c, 0x86, 0x71 },
++  /*   71 */ (__ev64_u8__) { 0xaf, 0x89, 0xa0, 0xfb, 0xc0, 0x64, 0x9c, 0xcd },
++  /*   72 */ (__ev64_u8__) { 0x74, 0xa0, 0x31, 0x39, 0xf4, 0xe3, 0x0f, 0x2f },
++  /*   73 */ (__ev64_u8__) { 0xaa, 0xf2, 0x9b, 0x27, 0x9c, 0x1a, 0x7d, 0x37 },
++  /*   74 */ (__ev64_u8__) { 0x65, 0x12, 0xbe, 0x0a, 0x26, 0x24, 0x4b, 0xe0 },
++  /*   75 */ (__ev64_u8__) { 0xe1, 0x62, 0xc7, 0xe6, 0xe0, 0x96, 0x3d, 0x54 },
++  /*   76 */ (__ev64_u8__) { 0x1a, 0xdd, 0x24, 0x14, 0x84, 0xd5, 0x06, 0xb9 },
++  /*   77 */ (__ev64_u8__) { 0x97, 0x2d, 0xb1, 0x69, 0xbe, 0x7f, 0xe6, 0x50 },
++  /*   78 */ (__ev64_u8__) { 0x6a, 0xa8, 0x90, 0x4e, 0xbe, 0x58, 0x18, 0x6b },
++  /*   79 */ (__ev64_u8__) { 0x38, 0x30, 0xe8, 0x02, 0x8e, 0x80, 0x81, 0xbe },
++  /*   80 */ (__ev64_u8__) { 0x96, 0x54, 0xf3, 0x1d, 0xdd, 0xc3, 0x40, 0xeb },
++  /*   81 */ (__ev64_u8__) { 0x10, 0x6f, 0x53, 0x2b, 0x40, 0xff, 0xa3, 0xf0 },
++  /*   82 */ (__ev64_u8__) { 0xbd, 0x44, 0x3e, 0x05, 0xc0, 0x1d, 0xec, 0x5c },
++  /*   83 */ (__ev64_u8__) { 0x67, 0xe8, 0x5c, 0x27, 0x1c, 0x2a, 0xf1, 0xff },
++  /*   84 */ (__ev64_u8__) { 0x9e, 0xd7, 0x2f, 0x0b, 0x61, 0x90, 0xd3, 0x22 },
++  /*   85 */ (__ev64_u8__) { 0xec, 0xb5, 0x0b, 0xcc, 0xbf, 0xf8, 0x4c, 0xcf },
++  /*   86 */ (__ev64_u8__) { 0x92, 0x3b, 0xc6, 0x05, 0xbd, 0x4a, 0x32, 0xd2 },
++  /*   87 */ (__ev64_u8__) { 0x50, 0x24, 0xeb, 0x93, 0xa7, 0x12, 0x47, 0x4b },
++  /*   88 */ (__ev64_u8__) { 0x5f, 0x5f, 0x59, 0x79, 0x2a, 0xec, 0x50, 0x4c },
++  /*   89 */ (__ev64_u8__) { 0x8b, 0xa1, 0xec, 0x2a, 0x6a, 0xce, 0x5e, 0xd2 },
++  /*   90 */ (__ev64_u8__) { 0x4c, 0xe5, 0x50, 0x2c, 0xdf, 0x79, 0x62, 0x8c },
++  /*   91 */ (__ev64_u8__) { 0x04, 0x00, 0x90, 0x54, 0x4d, 0x8e, 0xaa, 0x78 },
++  /*   92 */ (__ev64_u8__) { 0xf8, 0x68, 0xfb, 0x3c, 0xbc, 0xf3, 0x4e, 0xa3 },
++  /*   93 */ (__ev64_u8__) { 0x98, 0xa2, 0x22, 0x63, 0x25, 0xc8, 0xb1, 0x38 },
++  /*   94 */ (__ev64_u8__) { 0x8f, 0x57, 0x4e, 0x7f, 0x1b, 0xf2, 0x02, 0xa9 },
++  /*   95 */ (__ev64_u8__) { 0xc4, 0x01, 0x16, 0xe9, 0x58, 0x94, 0xf6, 0x57 },
++  /*   96 */ (__ev64_u8__) { 0x22, 0xac, 0xf7, 0x77, 0xd1, 0xfa, 0xeb, 0x7f },
++  /*   97 */ (__ev64_u8__) { 0x1b, 0xee, 0x46, 0x32, 0xea, 0xa5, 0xe4, 0x75 },
++  /*   98 */ (__ev64_u8__) { 0xc1, 0x8c, 0xe5, 0x93, 0xa4, 0x58, 0xea, 0x0d },
++  /*   99 */ (__ev64_u8__) { 0x58, 0xaf, 0xe6, 0x3c, 0xf9, 0x7b, 0x85, 0x47 },
++  /*  100 */ (__ev64_u8__) { 0xd4, 0xee, 0xcc, 0x1d, 0x28, 0x9b, 0x44, 0xc9 },
++  /*  101 */ (__ev64_u8__) { 0x45, 0xd2, 0x65, 0x6d, 0xcc, 0x7e, 0x7a, 0xfc },
++  /*  102 */ (__ev64_u8__) { 0x8d, 0x68, 0x08, 0x0e, 0x5d, 0x6f, 0x83, 0x7d },
++  /*  103 */ (__ev64_u8__) { 0x97, 0xe9, 0xb1, 0xbc, 0xaa, 0x8d, 0xf3, 0xb1 },
++  /*  104 */ (__ev64_u8__) { 0x14, 0x7f, 0x7f, 0xa5, 0x51, 0x3e, 0x1d, 0xaa },
++  /*  105 */ (__ev64_u8__) { 0x1a, 0xea, 0xc3, 0x16, 0x1e, 0xd6, 0x04, 0xdf },
++  /*  106 */ (__ev64_u8__) { 0x92, 0x1f, 0xca, 0xee, 0xd6, 0x04, 0xa1, 0xfd },
++  /*  107 */ (__ev64_u8__) { 0x23, 0x65, 0xc6, 0x53, 0x31, 0x0e, 0x92, 0xb6 },
++  /*  108 */ (__ev64_u8__) { 0xd0, 0x30, 0x09, 0x94, 0x30, 0xbc, 0xd0, 0xf9 },
++  /*  109 */ (__ev64_u8__) { 0x69, 0x6e, 0x10, 0x4b, 0x27, 0x1b, 0x04, 0x74 },
++  /*  110 */ (__ev64_u8__) { 0xd2, 0xac, 0x06, 0x33, 0x6c, 0x5d, 0x23, 0xd5 },
++  /*  111 */ (__ev64_u8__) { 0x61, 0x44, 0x48, 0x7c, 0x5b, 0x30, 0x0c, 0xfa },
++  /*  112 */ (__ev64_u8__) { 0xd0, 0x4e, 0x5c, 0x8b, 0x68, 0x55, 0x27, 0xb7 },
++  /*  113 */ (__ev64_u8__) { 0xc6, 0x34, 0x45, 0xc1, 0xfe, 0x97, 0x17, 0xfb },
++  /*  114 */ (__ev64_u8__) { 0xd6, 0x6c, 0x15, 0x72, 0x36, 0x6e, 0x06, 0xfd },
++  /*  115 */ (__ev64_u8__) { 0x5a, 0x8a, 0xcc, 0xe7, 0x07, 0x37, 0x50, 0x18 },
++  /*  116 */ (__ev64_u8__) { 0x13, 0xef, 0xe9, 0xd3, 0xc6, 0x48, 0xa7, 0xa4 },
++  /*  117 */ (__ev64_u8__) { 0xbc, 0x3b, 0x13, 0x75, 0xe7, 0x69, 0x9d, 0xf2 },
++  /*  118 */ (__ev64_u8__) { 0x99, 0xab, 0xd7, 0x86, 0xb8, 0x95, 0xf2, 0xcc },
++  /*  119 */ (__ev64_u8__) { 0x46, 0x0b, 0x1b, 0x04, 0x45, 0xea, 0x44, 0x1f },
++  /*  120 */ (__ev64_u8__) { 0x40, 0xd2, 0x7c, 0x41, 0xa9, 0xe2, 0x31, 0xcf },
++  /*  121 */ (__ev64_u8__) { 0xda, 0xf7, 0xad, 0x80, 0x71, 0xa1, 0x52, 0x22 },
++  /*  122 */ (__ev64_u8__) { 0xd4, 0x61, 0x9b, 0xc4, 0x0c, 0x2c, 0xf1, 0x4c },
++  /*  123 */ (__ev64_u8__) { 0xa4, 0x0f, 0xaa, 0x72, 0x6b, 0x8d, 0x23, 0xa9 },
++  /*  124 */ (__ev64_u8__) { 0xc3, 0x20, 0x49, 0xf4, 0x48, 0xaa, 0x43, 0x49 },
++  /*  125 */ (__ev64_u8__) { 0x40, 0xcf, 0xef, 0xf9, 0x16, 0x48, 0xf3, 0xc8 },
++  /*  126 */ (__ev64_u8__) { 0x0f, 0x5f, 0xa2, 0xd6, 0xc2, 0x41, 0x45, 0xdc },
++  /*  127 */ (__ev64_u8__) { 0xee, 0xbd, 0x88, 0x5b, 0xf2, 0xc6, 0x05, 0x03 },
++  /*  128 */ (__ev64_u8__) { 0x5f, 0x1d, 0x35, 0x8a, 0x3e, 0xf5, 0x58, 0x85 },
++  /*  129 */ (__ev64_u8__) { 0xae, 0xc2, 0x2b, 0x99, 0x7a, 0x65, 0x4b, 0x9d },
++  /*  130 */ (__ev64_u8__) { 0x46, 0xf1, 0x0c, 0x65, 0xb9, 0xd8, 0x37, 0x05 },
++  /*  131 */ (__ev64_u8__) { 0xb3, 0xc3, 0x54, 0x2f, 0x71, 0x65, 0x0b, 0xcc },
++  /*  132 */ (__ev64_u8__) { 0x65, 0xe6, 0xc6, 0x7c, 0x94, 0xd0, 0x5b, 0x68 },
++  /*  133 */ (__ev64_u8__) { 0x99, 0x0e, 0x00, 0xb9, 0x22, 0x1b, 0x79, 0xeb },
++  /*  134 */ (__ev64_u8__) { 0xef, 0x59, 0xda, 0xab, 0x48, 0xba, 0x8a, 0x61 },
++  /*  135 */ (__ev64_u8__) { 0x95, 0xb6, 0xf0, 0x7d, 0xba, 0x13, 0x0f, 0x04 },
++  /*  136 */ (__ev64_u8__) { 0x82, 0x41, 0xc9, 0xc2, 0x9f, 0x4a, 0x41, 0x9b },
++  /*  137 */ (__ev64_u8__) { 0xfd, 0xb8, 0xb5, 0xfa, 0x96, 0xb2, 0x8a, 0xed },
++  /*  138 */ (__ev64_u8__) { 0x23, 0x0c, 0xb5, 0x44, 0x4d, 0x75, 0xdc, 0xcd },
++  /*  139 */ (__ev64_u8__) { 0xaf, 0x87, 0x85, 0x2a, 0x37, 0x16, 0x7f, 0x33 },
++  /*  140 */ (__ev64_u8__) { 0x55, 0xe1, 0x35, 0x93, 0x7b, 0x5c, 0x6a, 0x8f },
++  /*  141 */ (__ev64_u8__) { 0x3f, 0x38, 0x9e, 0xb8, 0xb4, 0x05, 0xaf, 0xf8 },
++  /*  142 */ (__ev64_u8__) { 0x4b, 0x96, 0x4b, 0x43, 0x86, 0x02, 0x60, 0x8a },
++  /*  143 */ (__ev64_u8__) { 0x03, 0x7a, 0xf7, 0xe3, 0x6e, 0x7b, 0x2e, 0xf1 },
++  /*  144 */ (__ev64_u8__) { 0xfb, 0xca, 0xf2, 0xbc, 0xfb, 0xaf, 0xeb, 0xe9 },
++  /*  145 */ (__ev64_u8__) { 0x8a, 0xec, 0x5a, 0x8c, 0xc3, 0x1d, 0x62, 0x64 },
++  /*  146 */ (__ev64_u8__) { 0x6e, 0xd2, 0x91, 0xa4, 0x45, 0x9f, 0x8f, 0x1d },
++  /*  147 */ (__ev64_u8__) { 0x25, 0x99, 0xa9, 0xb4, 0x15, 0x68, 0xb9, 0xd8 },
++  /*  148 */ (__ev64_u8__) { 0xc3, 0x19, 0x87, 0x42, 0xd2, 0xcf, 0xa4, 0x9d },
++  /*  149 */ (__ev64_u8__) { 0xe4, 0xde, 0x4a, 0xb5, 0x32, 0xfd, 0x9c, 0xbd },
++  /*  150 */ (__ev64_u8__) { 0x0e, 0xfe, 0x34, 0x3e, 0x49, 0x50, 0x1d, 0xad },
++  /*  151 */ (__ev64_u8__) { 0x9b, 0xc9, 0x4b, 0x04, 0x2c, 0x20, 0x12, 0x62 },
++  /*  152 */ (__ev64_u8__) { 0xb8, 0x42, 0x69, 0x95, 0xf7, 0xa3, 0x92, 0xb7 },
++  /*  153 */ (__ev64_u8__) { 0x98, 0x1b, 0xd2, 0xa4, 0x0a, 0x1e, 0x89, 0x71 },
++  /*  154 */ (__ev64_u8__) { 0x75, 0xa9, 0xd5, 0x0a, 0x2c, 0x64, 0xf2, 0xae },
++  /*  155 */ (__ev64_u8__) { 0x6c, 0x5f, 0x35, 0xf1, 0x04, 0x51, 0xf2, 0x7e },
++  /*  156 */ (__ev64_u8__) { 0x5e, 0x39, 0xb7, 0xcd, 0x51, 0x81, 0x3e, 0xa1 },
++  /*  157 */ (__ev64_u8__) { 0xaa, 0x3a, 0x70, 0xed, 0x01, 0xfb, 0x4f, 0xa8 },
++  /*  158 */ (__ev64_u8__) { 0x91, 0x9d, 0xfb, 0xcf, 0x02, 0x38, 0x6d, 0x1a },
++  /*  159 */ (__ev64_u8__) { 0x91, 0x95, 0x12, 0xfc, 0xa1, 0x85, 0xa1, 0x74 },
++  /*  160 */ (__ev64_u8__) { 0x4b, 0x9c, 0xc3, 0x73, 0x5f, 0x16, 0xf9, 0x13 },
++  /*  161 */ (__ev64_u8__) { 0x8c, 0x2d, 0xa7, 0x3c, 0x2a, 0x46, 0x91, 0xe6 },
++  /*  162 */ (__ev64_u8__) { 0x80, 0xc5, 0xa6, 0x27, 0xf6, 0x6b, 0x89, 0xb2 },
++  /*  163 */ (__ev64_u8__) { 0x04, 0x99, 0x7a, 0x04, 0x19, 0x16, 0xf1, 0x57 },
++  /*  164 */ (__ev64_u8__) { 0x35, 0x1d, 0x2a, 0x61, 0x74, 0xcf, 0xf7, 0x90 },
++  /*  165 */ (__ev64_u8__) { 0x72, 0x50, 0xf1, 0xef, 0xe9, 0xc5, 0x67, 0x7e },
++  /*  166 */ (__ev64_u8__) { 0x8a, 0x8e, 0x11, 0x24, 0x9b, 0xc4, 0x60, 0xfc },
++  /*  167 */ (__ev64_u8__) { 0x1f, 0xb4, 0x11, 0xbc, 0x05, 0x0a, 0x4f, 0x7d },
++  /*  168 */ (__ev64_u8__) { 0xd6, 0x63, 0xd0, 0x44, 0xd3, 0x08, 0xd5, 0xef },
++  /*  169 */ (__ev64_u8__) { 0x60, 0xe5, 0x78, 0x96, 0xa9, 0x6b, 0x0b, 0xaa },
++  /*  170 */ (__ev64_u8__) { 0x04, 0xea, 0x28, 0x4c, 0x55, 0x01, 0x06, 0xfa },
++  /*  171 */ (__ev64_u8__) { 0x5c, 0xc0, 0xc9, 0xae, 0x21, 0xd8, 0x05, 0x23 },
++  /*  172 */ (__ev64_u8__) { 0xb9, 0xeb, 0xa8, 0xcc, 0x60, 0x0c, 0x89, 0x8b },
++  /*  173 */ (__ev64_u8__) { 0xe6, 0xb5, 0xaf, 0x8b, 0x23, 0x1b, 0x23, 0xb4 },
++  /*  174 */ (__ev64_u8__) { 0x6b, 0x2a, 0xb7, 0x97, 0x31, 0xbd, 0x02, 0x50 },
++  /*  175 */ (__ev64_u8__) { 0xe5, 0xba, 0x44, 0x34, 0xaa, 0x5b, 0x1e, 0xf0 },
++  /*  176 */ (__ev64_u8__) { 0x3f, 0x29, 0x0c, 0x36, 0x22, 0x3e, 0xd6, 0x5c },
++  /*  177 */ (__ev64_u8__) { 0x16, 0x8d, 0x57, 0xfe, 0xb0, 0x53, 0xa7, 0x57 },
++  /*  178 */ (__ev64_u8__) { 0x06, 0x7c, 0x1f, 0x5b, 0xa8, 0x37, 0x5b, 0xe8 },
++  /*  179 */ (__ev64_u8__) { 0x90, 0x5a, 0x5e, 0xfc, 0x94, 0x41, 0x79, 0x01 },
++  /*  180 */ (__ev64_u8__) { 0x10, 0x51, 0x35, 0xc4, 0x4e, 0xbd, 0x51, 0xfb },
++  /*  181 */ (__ev64_u8__) { 0x52, 0x47, 0xfa, 0xe0, 0x81, 0xcd, 0x99, 0x1b },
++  /*  182 */ (__ev64_u8__) { 0xde, 0x5b, 0x1e, 0xd4, 0x27, 0x49, 0xd7, 0x5b },
++  /*  183 */ (__ev64_u8__) { 0xfa, 0x1e, 0x40, 0xc6, 0x50, 0x7b, 0xb6, 0x3a },
++  /*  184 */ (__ev64_u8__) { 0xc4, 0x83, 0x41, 0x83, 0x73, 0x4c, 0x1e, 0xf6 },
++  /*  185 */ (__ev64_u8__) { 0x94, 0xea, 0x9f, 0x19, 0xa0, 0x0c, 0x8a, 0xe2 },
++  /*  186 */ (__ev64_u8__) { 0x01, 0xd1, 0x94, 0xdb, 0x13, 0x55, 0x9f, 0x61 },
++  /*  187 */ (__ev64_u8__) { 0x94, 0xf9, 0x58, 0xac, 0x1a, 0x24, 0x93, 0xa4 },
++  /*  188 */ (__ev64_u8__) { 0xe6, 0xb7, 0xbd, 0xb7, 0x71, 0x8e, 0x2c, 0xc5 },
++  /*  189 */ (__ev64_u8__) { 0xca, 0x6d, 0x5e, 0x9c, 0x35, 0xff, 0xee, 0x1d },
++  /*  190 */ (__ev64_u8__) { 0xdf, 0xd2, 0x04, 0x51, 0x59, 0xe4, 0xba, 0x87 },
++  /*  191 */ (__ev64_u8__) { 0xed, 0x69, 0x83, 0xcc, 0x53, 0x53, 0x48, 0xa0 },
++  /*  192 */ (__ev64_u8__) { 0x14, 0x45, 0x8c, 0xeb, 0x14, 0x81, 0x52, 0x9c },
++  /*  193 */ (__ev64_u8__) { 0xc2, 0xec, 0x28, 0x74, 0x4d, 0xe4, 0xb2, 0x2c },
++  /*  194 */ (__ev64_u8__) { 0x27, 0x05, 0x65, 0x60, 0xe4, 0x94, 0x57, 0xcd },
++  /*  195 */ (__ev64_u8__) { 0x6b, 0xa2, 0x2b, 0x03, 0xc2, 0x34, 0x85, 0xcf },
++  /*  196 */ (__ev64_u8__) { 0xb4, 0x55, 0x37, 0x6e, 0x2d, 0xfb, 0x54, 0x93 },
++  /*  197 */ (__ev64_u8__) { 0x00, 0x02, 0xc0, 0x7d, 0x5e, 0x08, 0x49, 0x5b },
++  /*  198 */ (__ev64_u8__) { 0x5a, 0x71, 0xa6, 0x96, 0x87, 0xe6, 0xb4, 0x7c },
++  /*  199 */ (__ev64_u8__) { 0x6d, 0xf0, 0xb7, 0xc4, 0xd6, 0xbe, 0x11, 0x0a },
++  /*  200 */ (__ev64_u8__) { 0x78, 0xcf, 0x87, 0xf4, 0xc9, 0x56, 0x05, 0x47 },
++  /*  201 */ (__ev64_u8__) { 0xd8, 0x9b, 0x19, 0x1b, 0x8a, 0xd5, 0xe3, 0x78 },
++  /*  202 */ (__ev64_u8__) { 0xf3, 0xa9, 0xfe, 0xb6, 0xa6, 0xe3, 0x89, 0x39 },
++  /*  203 */ (__ev64_u8__) { 0x18, 0x97, 0xbd, 0x05, 0x01, 0x9f, 0x46, 0xf6 },
++  /*  204 */ (__ev64_u8__) { 0x11, 0x39, 0x25, 0xd1, 0x62, 0x70, 0x64, 0xe4 },
++  /*  205 */ (__ev64_u8__) { 0x10, 0x59, 0xe9, 0x2b, 0x67, 0x64, 0x98, 0xfa },
++  /*  206 */ (__ev64_u8__) { 0xa3, 0x08, 0x94, 0xc6, 0x80, 0xc5, 0x97, 0x10 },
++  /*  207 */ (__ev64_u8__) { 0xf7, 0xd2, 0x48, 0x1e, 0x2e, 0x87, 0x05, 0x2a },
++  /*  208 */ (__ev64_u8__) { 0x4d, 0x66, 0x52, 0x26, 0x84, 0x16, 0xd4, 0x96 },
++  /*  209 */ (__ev64_u8__) { 0x50, 0x49, 0xee, 0x34, 0xd9, 0x1c, 0xa7, 0x94 },
++  /*  210 */ (__ev64_u8__) { 0x13, 0xec, 0x8c, 0x2d, 0x31, 0xf4, 0xf3, 0x9f },
++  /*  211 */ (__ev64_u8__) { 0x4c, 0xbb, 0x5d, 0x9d, 0x1a, 0xa4, 0xea, 0x4c },
++  /*  212 */ (__ev64_u8__) { 0xb4, 0x8f, 0xa8, 0x84, 0x52, 0xe1, 0xd2, 0xf0 },
++  /*  213 */ (__ev64_u8__) { 0x86, 0x84, 0xb9, 0xb8, 0x53, 0x5c, 0x53, 0x96 },
++  /*  214 */ (__ev64_u8__) { 0x3c, 0x03, 0xb8, 0x1c, 0x70, 0x61, 0x83, 0x22 },
++  /*  215 */ (__ev64_u8__) { 0xe8, 0x9e, 0x3a, 0x9e, 0x44, 0x65, 0x17, 0xf2 },
++  /*  216 */ (__ev64_u8__) { 0x7b, 0x36, 0x74, 0xb9, 0xef, 0x6d, 0x19, 0xf7 },
++  /*  217 */ (__ev64_u8__) { 0xc3, 0x1b, 0x1c, 0x80, 0xf2, 0xa9, 0x3c, 0x22 },
++  /*  218 */ (__ev64_u8__) { 0x7c, 0x07, 0xac, 0xfc, 0x71, 0x66, 0x67, 0x84 },
++  /*  219 */ (__ev64_u8__) { 0x0c, 0x20, 0x4a, 0x88, 0xc4, 0xcc, 0x1f, 0x72 },
++  /*  220 */ (__ev64_u8__) { 0x72, 0xdc, 0x4d, 0xb8, 0x15, 0x77, 0xfd, 0xa1 },
++  /*  221 */ (__ev64_u8__) { 0x26, 0x48, 0xe8, 0xab, 0x46, 0xfb, 0x55, 0x1e },
++  /*  222 */ (__ev64_u8__) { 0x8d, 0x15, 0x9a, 0x4d, 0xf0, 0xfe, 0x39, 0x9f },
++  /*  223 */ (__ev64_u8__) { 0x28, 0xc5, 0xcf, 0xe2, 0xf7, 0x16, 0x75, 0x48 },
++  /*  224 */ (__ev64_u8__) { 0xb0, 0xcc, 0x63, 0x86, 0xcb, 0x26, 0x5c, 0x83 },
++  /*  225 */ (__ev64_u8__) { 0x5e, 0xd7, 0x69, 0xd6, 0xc3, 0xe3, 0x0e, 0x5f },
++  /*  226 */ (__ev64_u8__) { 0xcb, 0xf6, 0x4d, 0x5b, 0xde, 0xcf, 0x52, 0x70 },
++  /*  227 */ (__ev64_u8__) { 0xcc, 0x10, 0x72, 0x9b, 0x6d, 0x2d, 0x93, 0x70 },
++  /*  228 */ (__ev64_u8__) { 0x5c, 0x6b, 0xa2, 0xcc, 0xea, 0x15, 0x66, 0x28 },
++  /*  229 */ (__ev64_u8__) { 0xc9, 0xc9, 0x84, 0x47, 0x1c, 0x0f, 0xee, 0x55 },
++  /*  230 */ (__ev64_u8__) { 0x9a, 0xde, 0xf0, 0x8f, 0x6f, 0x6e, 0x36, 0x8f },
++  /*  231 */ (__ev64_u8__) { 0x14, 0x62, 0x5f, 0x37, 0xc7, 0xea, 0x81, 0xe6 },
++  /*  232 */ (__ev64_u8__) { 0x65, 0xe2, 0x45, 0xf4, 0xdc, 0xc5, 0xbd, 0xec },
++  /*  233 */ (__ev64_u8__) { 0x85, 0x8b, 0xa1, 0x55, 0x22, 0xf7, 0x20, 0x9d },
++  /*  234 */ (__ev64_u8__) { 0x75, 0x8d, 0x31, 0x57, 0xb1, 0x68, 0xd1, 0xdf },
++  /*  235 */ (__ev64_u8__) { 0x34, 0xeb, 0x87, 0x72, 0x7d, 0x03, 0x6a, 0xb1 },
++  /*  236 */ (__ev64_u8__) { 0x0f, 0x48, 0xa0, 0x94, 0xc1, 0xbe, 0x9c, 0xc6 },
++  /*  237 */ (__ev64_u8__) { 0x0c, 0xf1, 0x54, 0x0c, 0xa3, 0x7d, 0x23, 0x3c },
++  /*  238 */ (__ev64_u8__) { 0x51, 0x6e, 0xf2, 0x3f, 0x4c, 0x2f, 0xba, 0x5d },
++  /*  239 */ (__ev64_u8__) { 0x34, 0xeb, 0x78, 0x58, 0x73, 0x77, 0xc4, 0xf2 },
++  /*  240 */ (__ev64_u8__) { 0x08, 0xf3, 0x25, 0x60, 0xff, 0x8c, 0xb7, 0xc2 },
++  /*  241 */ (__ev64_u8__) { 0xf3, 0x88, 0x11, 0x38, 0xa5, 0x9d, 0x1a, 0x59 },
++  /*  242 */ (__ev64_u8__) { 0x54, 0x9d, 0x5d, 0xab, 0x22, 0xca, 0xc0, 0xc2 },
++  /*  243 */ (__ev64_u8__) { 0x21, 0xc7, 0x54, 0x20, 0xbe, 0xc2, 0xb6, 0x99 },
++  /*  244 */ (__ev64_u8__) { 0x80, 0x91, 0xd2, 0x3c, 0x65, 0xd5, 0x5b, 0x00 },
++  /*  245 */ (__ev64_u8__) { 0x2f, 0xf4, 0x2f, 0x69, 0x77, 0x78, 0x13, 0xe0 },
++  /*  246 */ (__ev64_u8__) { 0xe7, 0x6b, 0xb3, 0xf3, 0x2b, 0xf4, 0x95, 0x5e },
++  /*  247 */ (__ev64_u8__) { 0x0d, 0x8b, 0x48, 0xca, 0xc8, 0xed, 0xe9, 0xb4 },
++  /*  248 */ (__ev64_u8__) { 0x5e, 0x7d, 0x43, 0x0b, 0x67, 0x7e, 0xa0, 0xf0 },
++  /*  249 */ (__ev64_u8__) { 0x0d, 0xf6, 0x04, 0xeb, 0xf2, 0x16, 0x76, 0xf3 },
++  /*  250 */ (__ev64_u8__) { 0xd3, 0xa4, 0xba, 0xfa, 0x48, 0x0e, 0x97, 0x20 },
++  /*  251 */ (__ev64_u8__) { 0xec, 0xb5, 0x22, 0x07, 0xd7, 0xa9, 0x2f, 0xa0 },
++  /*  252 */ (__ev64_u8__) { 0x51, 0xce, 0xa0, 0x46, 0xfe, 0x90, 0x86, 0x08 },
++  /*  253 */ (__ev64_u8__) { 0x5d, 0xfb, 0xe8, 0xaf, 0xe9, 0xba, 0xe4, 0x40 },
++  /*  254 */ (__ev64_u8__) { 0x69, 0xcb, 0x2d, 0x00, 0x78, 0x7a, 0x13, 0x7d },
++  /*  255 */ (__ev64_u8__) { 0x94, 0xf9, 0x66, 0x23, 0x35, 0x2e, 0xc3, 0x85 },
++
++};
++
++const __ev64_u8__ rB8u8[NELTS(rA8u8)] = {
++
++  /*    0 */ (__ev64_u8__) { 0x4f, 0xde, 0xac, 0xae, 0xd3, 0xac, 0xe0, 0xd3 },
++  /*    1 */ (__ev64_u8__) { 0xd8, 0x7a, 0x8c, 0x4e, 0x42, 0x27, 0x0d, 0x08 },
++  /*    2 */ (__ev64_u8__) { 0x7a, 0x55, 0xdc, 0x66, 0x47, 0xd7, 0x22, 0x99 },
++  /*    3 */ (__ev64_u8__) { 0x6c, 0xf9, 0x4d, 0xdc, 0x13, 0x77, 0x1b, 0x98 },
++  /*    4 */ (__ev64_u8__) { 0xb9, 0x92, 0xb1, 0xa6, 0x02, 0x09, 0xcd, 0xb5 },
++  /*    5 */ (__ev64_u8__) { 0xb2, 0xe0, 0xf9, 0x6a, 0x36, 0x7b, 0x12, 0x7c },
++  /*    6 */ (__ev64_u8__) { 0x4f, 0x59, 0x6e, 0x69, 0x14, 0x72, 0xdd, 0xb0 },
++  /*    7 */ (__ev64_u8__) { 0x14, 0xd9, 0x28, 0x53, 0xe6, 0xde, 0x40, 0xfc },
++  /*    8 */ (__ev64_u8__) { 0x4c, 0xdf, 0x09, 0x02, 0x6e, 0xac, 0x5c, 0x89 },
++  /*    9 */ (__ev64_u8__) { 0x31, 0xbc, 0xd9, 0x5d, 0xbe, 0xf7, 0xe6, 0xd3 },
++  /*   10 */ (__ev64_u8__) { 0xef, 0xff, 0x0b, 0xf9, 0xcf, 0xfb, 0x64, 0xe6 },
++  /*   11 */ (__ev64_u8__) { 0x78, 0xa6, 0xee, 0x0e, 0x1d, 0xa0, 0xd9, 0x82 },
++  /*   12 */ (__ev64_u8__) { 0x96, 0xc8, 0x1e, 0xe6, 0xdf, 0x1f, 0xd7, 0xb7 },
++  /*   13 */ (__ev64_u8__) { 0x0a, 0x61, 0x89, 0x02, 0x54, 0xc6, 0x01, 0xb1 },
++  /*   14 */ (__ev64_u8__) { 0xf1, 0x4c, 0x21, 0x62, 0x6f, 0xb7, 0x2f, 0x84 },
++  /*   15 */ (__ev64_u8__) { 0x01, 0x1b, 0xed, 0xf7, 0xf4, 0x7c, 0xd3, 0x94 },
++  /*   16 */ (__ev64_u8__) { 0x73, 0x01, 0x8a, 0x7f, 0x90, 0xa3, 0xe1, 0x3d },
++  /*   17 */ (__ev64_u8__) { 0xbc, 0x71, 0xed, 0x0e, 0xcb, 0x21, 0x68, 0x3f },
++  /*   18 */ (__ev64_u8__) { 0xcc, 0x48, 0x30, 0x14, 0xd6, 0xed, 0x0d, 0x64 },
++  /*   19 */ (__ev64_u8__) { 0xa5, 0xd6, 0x37, 0x95, 0xc6, 0xc9, 0x6a, 0xed },
++  /*   20 */ (__ev64_u8__) { 0xd6, 0xd2, 0x82, 0x8c, 0x69, 0xb1, 0xce, 0xd1 },
++  /*   21 */ (__ev64_u8__) { 0xea, 0x31, 0xff, 0x2f, 0x41, 0xd5, 0x15, 0x91 },
++  /*   22 */ (__ev64_u8__) { 0xd7, 0x3b, 0x12, 0x03, 0x29, 0xd6, 0xdb, 0xef },
++  /*   23 */ (__ev64_u8__) { 0x1f, 0xdb, 0x00, 0x0e, 0x27, 0xea, 0xbf, 0xc8 },
++  /*   24 */ (__ev64_u8__) { 0x53, 0xeb, 0x02, 0x68, 0x4d, 0xd1, 0xa2, 0xc2 },
++  /*   25 */ (__ev64_u8__) { 0x1f, 0xf7, 0x8c, 0xd8, 0xc0, 0x75, 0x70, 0x3c },
++  /*   26 */ (__ev64_u8__) { 0xc5, 0x3a, 0x43, 0x4c, 0xaf, 0x1a, 0xd4, 0x33 },
++  /*   27 */ (__ev64_u8__) { 0x3b, 0x1e, 0xf7, 0xc6, 0xda, 0x39, 0x78, 0x22 },
++  /*   28 */ (__ev64_u8__) { 0x34, 0xfe, 0x8c, 0x53, 0x17, 0xbe, 0x0d, 0x93 },
++  /*   29 */ (__ev64_u8__) { 0x1b, 0xc1, 0xcb, 0xde, 0x14, 0xcc, 0x9f, 0x08 },
++  /*   30 */ (__ev64_u8__) { 0x8a, 0xa5, 0xe2, 0xf3, 0x40, 0xe7, 0xeb, 0xe3 },
++  /*   31 */ (__ev64_u8__) { 0xc1, 0x0d, 0x22, 0x64, 0x4c, 0xfe, 0x62, 0x85 },
++  /*   32 */ (__ev64_u8__) { 0x83, 0x19, 0x5d, 0x46, 0xd3, 0xab, 0xa3, 0xcd },
++  /*   33 */ (__ev64_u8__) { 0x71, 0x4e, 0x5a, 0x8f, 0x27, 0x5d, 0xed, 0x39 },
++  /*   34 */ (__ev64_u8__) { 0x9c, 0x7d, 0xa1, 0xf0, 0x2d, 0x39, 0xb8, 0xd5 },
++  /*   35 */ (__ev64_u8__) { 0x3a, 0xf2, 0x25, 0xa7, 0x9d, 0x78, 0x45, 0xa4 },
++  /*   36 */ (__ev64_u8__) { 0x93, 0xfd, 0xea, 0xdd, 0x4c, 0x6e, 0x2e, 0x45 },
++  /*   37 */ (__ev64_u8__) { 0x6b, 0xa5, 0xeb, 0x1c, 0xd5, 0x62, 0xa3, 0xe1 },
++  /*   38 */ (__ev64_u8__) { 0x98, 0xcd, 0x39, 0x0c, 0x9a, 0xbf, 0x4f, 0xe8 },
++  /*   39 */ (__ev64_u8__) { 0x18, 0x44, 0x40, 0x25, 0x73, 0x2b, 0x59, 0xd9 },
++  /*   40 */ (__ev64_u8__) { 0xf4, 0x8a, 0xf7, 0x4e, 0xd1, 0xea, 0x6f, 0xc5 },
++  /*   41 */ (__ev64_u8__) { 0x98, 0x3f, 0x52, 0x0a, 0xe4, 0xbf, 0x47, 0x46 },
++  /*   42 */ (__ev64_u8__) { 0xde, 0x0b, 0xac, 0xad, 0xb9, 0xd2, 0x58, 0x59 },
++  /*   43 */ (__ev64_u8__) { 0xa9, 0x70, 0xb4, 0xbc, 0xb8, 0xe7, 0xe7, 0xa0 },
++  /*   44 */ (__ev64_u8__) { 0xe1, 0x5b, 0x4a, 0x2f, 0x8c, 0x30, 0x25, 0x93 },
++  /*   45 */ (__ev64_u8__) { 0x5b, 0xf8, 0x34, 0xec, 0x18, 0xf6, 0x81, 0x16 },
++  /*   46 */ (__ev64_u8__) { 0x7f, 0x7e, 0xf3, 0xbf, 0x9c, 0xc2, 0xde, 0x2d },
++  /*   47 */ (__ev64_u8__) { 0x77, 0x18, 0x5f, 0xca, 0xd1, 0x75, 0xbb, 0x38 },
++  /*   48 */ (__ev64_u8__) { 0xb0, 0x95, 0x3b, 0xe0, 0x57, 0x4a, 0x32, 0x57 },
++  /*   49 */ (__ev64_u8__) { 0x7c, 0x0f, 0x90, 0x27, 0x93, 0x66, 0x78, 0x07 },
++  /*   50 */ (__ev64_u8__) { 0x6b, 0x74, 0xb8, 0x64, 0x4b, 0x06, 0xe5, 0x2d },
++  /*   51 */ (__ev64_u8__) { 0x71, 0x76, 0xa7, 0x0e, 0xf9, 0x20, 0x5e, 0xf8 },
++  /*   52 */ (__ev64_u8__) { 0xb8, 0x61, 0xed, 0x84, 0xf5, 0x67, 0x95, 0x16 },
++  /*   53 */ (__ev64_u8__) { 0x6b, 0xa2, 0xa2, 0x4b, 0x64, 0x69, 0x94, 0x22 },
++  /*   54 */ (__ev64_u8__) { 0xaa, 0xc1, 0x27, 0x5f, 0x55, 0xad, 0xf3, 0x61 },
++  /*   55 */ (__ev64_u8__) { 0x94, 0x71, 0x6f, 0xd5, 0xdc, 0xfe, 0xfb, 0x9c },
++  /*   56 */ (__ev64_u8__) { 0x1d, 0x95, 0x73, 0x31, 0x8a, 0x13, 0xb3, 0xab },
++  /*   57 */ (__ev64_u8__) { 0x9c, 0x67, 0x1e, 0xbd, 0xc6, 0x38, 0x48, 0x98 },
++  /*   58 */ (__ev64_u8__) { 0x36, 0xfb, 0xa3, 0xaa, 0xec, 0xce, 0xca, 0x86 },
++  /*   59 */ (__ev64_u8__) { 0xcb, 0x12, 0x55, 0xa9, 0x19, 0x43, 0x1f, 0xa6 },
++  /*   60 */ (__ev64_u8__) { 0x2e, 0xfb, 0x8e, 0xd9, 0xe8, 0xb9, 0x2d, 0xd9 },
++  /*   61 */ (__ev64_u8__) { 0x49, 0x82, 0xb0, 0xe3, 0x34, 0xe3, 0x6f, 0xf0 },
++  /*   62 */ (__ev64_u8__) { 0xa4, 0x70, 0xc9, 0x70, 0xfa, 0xe4, 0x44, 0x09 },
++  /*   63 */ (__ev64_u8__) { 0x87, 0x70, 0xec, 0x1d, 0x09, 0xd6, 0x35, 0x56 },
++  /*   64 */ (__ev64_u8__) { 0xe6, 0xa8, 0x9d, 0xfa, 0xd0, 0x5e, 0xbd, 0x0b },
++  /*   65 */ (__ev64_u8__) { 0x1a, 0x8e, 0xa0, 0xd8, 0x74, 0xb1, 0x9f, 0x0f },
++  /*   66 */ (__ev64_u8__) { 0xcc, 0x54, 0x9f, 0x51, 0xf4, 0x16, 0xd6, 0xdc },
++  /*   67 */ (__ev64_u8__) { 0xd3, 0x8a, 0xba, 0xec, 0x8b, 0x42, 0xae, 0xe6 },
++  /*   68 */ (__ev64_u8__) { 0x5f, 0xa8, 0x3a, 0x8b, 0x63, 0xeb, 0x7b, 0xa3 },
++  /*   69 */ (__ev64_u8__) { 0x83, 0x6f, 0x24, 0x7b, 0x70, 0xa9, 0x69, 0x0c },
++  /*   70 */ (__ev64_u8__) { 0x03, 0x06, 0xd9, 0xd2, 0x8e, 0x79, 0xe5, 0x4a },
++  /*   71 */ (__ev64_u8__) { 0x11, 0x10, 0x6b, 0x52, 0x53, 0x8e, 0xb3, 0x5f },
++  /*   72 */ (__ev64_u8__) { 0xcb, 0x7f, 0xc8, 0xd0, 0x8d, 0x7e, 0x48, 0x2a },
++  /*   73 */ (__ev64_u8__) { 0x19, 0x73, 0x61, 0xce, 0xd4, 0xa9, 0x0c, 0xa2 },
++  /*   74 */ (__ev64_u8__) { 0x0b, 0xe2, 0xf9, 0x02, 0x70, 0x57, 0xd9, 0x0b },
++  /*   75 */ (__ev64_u8__) { 0x83, 0x23, 0x4d, 0xba, 0xb0, 0x1d, 0x39, 0xd4 },
++  /*   76 */ (__ev64_u8__) { 0xf2, 0x07, 0xfa, 0xff, 0x8b, 0xc7, 0x8e, 0x36 },
++  /*   77 */ (__ev64_u8__) { 0x4b, 0xa7, 0x24, 0x7f, 0x84, 0x7a, 0x43, 0x96 },
++  /*   78 */ (__ev64_u8__) { 0x04, 0x58, 0x94, 0xd8, 0x99, 0x16, 0xbc, 0xa4 },
++  /*   79 */ (__ev64_u8__) { 0x86, 0x4f, 0x64, 0x7a, 0x12, 0x8f, 0xbc, 0xc5 },
++  /*   80 */ (__ev64_u8__) { 0x88, 0xcc, 0x68, 0x89, 0xd7, 0xbf, 0xbf, 0xac },
++  /*   81 */ (__ev64_u8__) { 0x47, 0x23, 0x1b, 0xfa, 0x67, 0x67, 0xbe, 0xc1 },
++  /*   82 */ (__ev64_u8__) { 0xfd, 0x80, 0xf5, 0xe2, 0x51, 0xb2, 0x8c, 0x6c },
++  /*   83 */ (__ev64_u8__) { 0x58, 0xe2, 0x18, 0x64, 0xfb, 0x2a, 0xf9, 0xb4 },
++  /*   84 */ (__ev64_u8__) { 0x3a, 0xc0, 0xf6, 0xea, 0x31, 0xf5, 0x53, 0x61 },
++  /*   85 */ (__ev64_u8__) { 0x71, 0x12, 0x25, 0xf9, 0x16, 0x81, 0x2e, 0xbc },
++  /*   86 */ (__ev64_u8__) { 0xc0, 0xa0, 0xa1, 0x4b, 0xe0, 0x76, 0x59, 0xd3 },
++  /*   87 */ (__ev64_u8__) { 0x0f, 0x60, 0xde, 0x02, 0x08, 0x9c, 0x4b, 0x53 },
++  /*   88 */ (__ev64_u8__) { 0x7c, 0x43, 0x02, 0xc5, 0xe3, 0x16, 0x31, 0x0e },
++  /*   89 */ (__ev64_u8__) { 0x22, 0x48, 0x49, 0x13, 0x40, 0xa7, 0x37, 0xa1 },
++  /*   90 */ (__ev64_u8__) { 0xa0, 0x42, 0xdf, 0x19, 0x54, 0xc4, 0xb1, 0xe3 },
++  /*   91 */ (__ev64_u8__) { 0xd3, 0xda, 0x46, 0x47, 0xd7, 0x4e, 0xe3, 0x8d },
++  /*   92 */ (__ev64_u8__) { 0xa4, 0x7f, 0x15, 0xdc, 0x57, 0xdb, 0xf5, 0xa8 },
++  /*   93 */ (__ev64_u8__) { 0xa0, 0xc1, 0xf0, 0x17, 0x4d, 0xa6, 0xba, 0x83 },
++  /*   94 */ (__ev64_u8__) { 0x84, 0x56, 0xb3, 0x70, 0x88, 0x74, 0x2a, 0xa8 },
++  /*   95 */ (__ev64_u8__) { 0xef, 0x51, 0xb6, 0x44, 0x59, 0x17, 0x0e, 0x8b },
++  /*   96 */ (__ev64_u8__) { 0x48, 0xa8, 0xd1, 0x16, 0xe4, 0xd8, 0x6b, 0x8c },
++  /*   97 */ (__ev64_u8__) { 0x81, 0x49, 0x4d, 0xad, 0x08, 0x5f, 0x16, 0x39 },
++  /*   98 */ (__ev64_u8__) { 0xf5, 0x05, 0xd2, 0xfd, 0x90, 0x6a, 0x03, 0xf9 },
++  /*   99 */ (__ev64_u8__) { 0x66, 0xdb, 0x93, 0x80, 0xcd, 0x97, 0xa0, 0x18 },
++  /*  100 */ (__ev64_u8__) { 0x4f, 0x87, 0xb3, 0x89, 0xd9, 0xe2, 0xca, 0xc3 },
++  /*  101 */ (__ev64_u8__) { 0x74, 0xac, 0x1e, 0x11, 0xd8, 0x43, 0x3d, 0xa5 },
++  /*  102 */ (__ev64_u8__) { 0xd7, 0x78, 0x32, 0x8d, 0xb3, 0xe4, 0xb4, 0xfd },
++  /*  103 */ (__ev64_u8__) { 0xaf, 0x2a, 0x8d, 0xa7, 0x5d, 0x90, 0x4f, 0xbd },
++  /*  104 */ (__ev64_u8__) { 0xfa, 0x1c, 0x7b, 0xed, 0x0b, 0x04, 0x06, 0xcb },
++  /*  105 */ (__ev64_u8__) { 0x9e, 0x34, 0xc8, 0x28, 0x93, 0xa0, 0xbe, 0x61 },
++  /*  106 */ (__ev64_u8__) { 0xfa, 0xda, 0xd0, 0x6e, 0xf8, 0xed, 0xe5, 0x98 },
++  /*  107 */ (__ev64_u8__) { 0x36, 0xcd, 0xf8, 0x22, 0xf1, 0x96, 0x5e, 0xa0 },
++  /*  108 */ (__ev64_u8__) { 0x61, 0xd7, 0x08, 0x44, 0xfc, 0x1e, 0x60, 0x26 },
++  /*  109 */ (__ev64_u8__) { 0xb1, 0x17, 0x3e, 0x98, 0x9b, 0x61, 0xdf, 0x11 },
++  /*  110 */ (__ev64_u8__) { 0xcc, 0x50, 0x81, 0x4d, 0x78, 0x75, 0x97, 0x31 },
++  /*  111 */ (__ev64_u8__) { 0x99, 0xa1, 0xfe, 0xe7, 0x46, 0x6e, 0xa2, 0xbd },
++  /*  112 */ (__ev64_u8__) { 0x93, 0x2c, 0xdc, 0x8e, 0xec, 0xbe, 0xba, 0xc1 },
++  /*  113 */ (__ev64_u8__) { 0x36, 0xce, 0x57, 0x6e, 0x60, 0xfb, 0x5d, 0x20 },
++  /*  114 */ (__ev64_u8__) { 0x4d, 0xb9, 0x86, 0xcb, 0x0e, 0xf0, 0xfe, 0x5e },
++  /*  115 */ (__ev64_u8__) { 0x20, 0x7f, 0xce, 0x10, 0x4a, 0xa6, 0x84, 0x53 },
++  /*  116 */ (__ev64_u8__) { 0x9b, 0x25, 0xb6, 0x70, 0xe4, 0x3e, 0x9a, 0x87 },
++  /*  117 */ (__ev64_u8__) { 0xcd, 0x32, 0x56, 0x3d, 0x5e, 0x93, 0xcd, 0xc7 },
++  /*  118 */ (__ev64_u8__) { 0x0e, 0x0a, 0x0a, 0x46, 0x25, 0xe2, 0x25, 0x09 },
++  /*  119 */ (__ev64_u8__) { 0x83, 0x09, 0x9e, 0x38, 0xd6, 0xe8, 0x3a, 0x86 },
++  /*  120 */ (__ev64_u8__) { 0x8e, 0x2f, 0x14, 0xe3, 0x62, 0xe8, 0xab, 0xa9 },
++  /*  121 */ (__ev64_u8__) { 0x79, 0x4c, 0x07, 0x74, 0xaa, 0x3b, 0xfa, 0x1f },
++  /*  122 */ (__ev64_u8__) { 0x1f, 0x6d, 0xc9, 0x16, 0xb5, 0xbe, 0x1b, 0x51 },
++  /*  123 */ (__ev64_u8__) { 0xf9, 0xf5, 0x71, 0xfd, 0x61, 0x74, 0x66, 0x9c },
++  /*  124 */ (__ev64_u8__) { 0x63, 0x36, 0x6e, 0x52, 0xe3, 0x5e, 0x1f, 0x8c },
++  /*  125 */ (__ev64_u8__) { 0xdb, 0xdb, 0x34, 0xda, 0x8d, 0x0d, 0x8d, 0xc2 },
++  /*  126 */ (__ev64_u8__) { 0xa8, 0x61, 0xe5, 0xe0, 0xde, 0xeb, 0x52, 0x13 },
++  /*  127 */ (__ev64_u8__) { 0x1f, 0xfe, 0xec, 0x33, 0x7a, 0x4f, 0xb7, 0xd5 },
++  /*  128 */ (__ev64_u8__) { 0x12, 0xe3, 0x38, 0x99, 0xf1, 0xb1, 0x12, 0xcf },
++  /*  129 */ (__ev64_u8__) { 0x5e, 0x89, 0x88, 0x67, 0x14, 0x12, 0xf0, 0xfd },
++  /*  130 */ (__ev64_u8__) { 0x99, 0xcd, 0x8c, 0xc4, 0xcd, 0x7a, 0xef, 0x6c },
++  /*  131 */ (__ev64_u8__) { 0x09, 0x17, 0x15, 0x6c, 0x97, 0xcf, 0x0d, 0xea },
++  /*  132 */ (__ev64_u8__) { 0xaa, 0xfc, 0x94, 0xff, 0x60, 0x26, 0x76, 0xc6 },
++  /*  133 */ (__ev64_u8__) { 0x92, 0x86, 0x4f, 0x0d, 0xa8, 0x9e, 0x1c, 0x69 },
++  /*  134 */ (__ev64_u8__) { 0x3f, 0x2a, 0xec, 0x28, 0x31, 0xe6, 0x54, 0x82 },
++  /*  135 */ (__ev64_u8__) { 0xd5, 0xeb, 0xb2, 0xa8, 0xe7, 0x29, 0x6a, 0x45 },
++  /*  136 */ (__ev64_u8__) { 0x44, 0xe5, 0xdd, 0x62, 0x0b, 0xac, 0x27, 0x86 },
++  /*  137 */ (__ev64_u8__) { 0x6b, 0x26, 0x02, 0xd7, 0x49, 0xa8, 0xa7, 0x75 },
++  /*  138 */ (__ev64_u8__) { 0x67, 0x9f, 0x3a, 0xb9, 0x35, 0x5b, 0x68, 0x51 },
++  /*  139 */ (__ev64_u8__) { 0x28, 0xf6, 0x77, 0x94, 0x58, 0x9e, 0x66, 0x4d },
++  /*  140 */ (__ev64_u8__) { 0x68, 0xd3, 0xa5, 0xb4, 0xcd, 0xa0, 0x2d, 0x95 },
++  /*  141 */ (__ev64_u8__) { 0x2f, 0xd0, 0xfa, 0x3d, 0xf0, 0x08, 0xb6, 0x9c },
++  /*  142 */ (__ev64_u8__) { 0xb6, 0xe4, 0xa8, 0x1a, 0x9c, 0x2b, 0x34, 0xf5 },
++  /*  143 */ (__ev64_u8__) { 0x8d, 0x8b, 0x8d, 0x1c, 0x1c, 0x34, 0xd9, 0xf7 },
++  /*  144 */ (__ev64_u8__) { 0x88, 0x1f, 0x5b, 0x49, 0x32, 0xbb, 0x2a, 0xd5 },
++  /*  145 */ (__ev64_u8__) { 0x3a, 0xc2, 0xfb, 0x17, 0x42, 0xd9, 0xe5, 0x0c },
++  /*  146 */ (__ev64_u8__) { 0x61, 0x71, 0xbe, 0xf4, 0x97, 0x26, 0x2e, 0x59 },
++  /*  147 */ (__ev64_u8__) { 0xd6, 0x40, 0x15, 0xde, 0xd0, 0x19, 0x68, 0xa0 },
++  /*  148 */ (__ev64_u8__) { 0x6a, 0xf8, 0xe0, 0x87, 0x9d, 0xa7, 0xfd, 0x73 },
++  /*  149 */ (__ev64_u8__) { 0x55, 0xa2, 0x3e, 0x6c, 0xa9, 0xd9, 0x93, 0xe2 },
++  /*  150 */ (__ev64_u8__) { 0x65, 0x0f, 0x5c, 0xb5, 0xf0, 0x6c, 0xfa, 0x34 },
++  /*  151 */ (__ev64_u8__) { 0x7a, 0x6a, 0x39, 0x22, 0xcc, 0xe0, 0xbf, 0xb3 },
++  /*  152 */ (__ev64_u8__) { 0x48, 0x81, 0x61, 0xd0, 0x16, 0xab, 0xd3, 0xc7 },
++  /*  153 */ (__ev64_u8__) { 0x90, 0xfb, 0x62, 0xea, 0x40, 0xd6, 0x1d, 0x35 },
++  /*  154 */ (__ev64_u8__) { 0x46, 0x37, 0x9f, 0xc4, 0x0e, 0x2f, 0xd8, 0x53 },
++  /*  155 */ (__ev64_u8__) { 0x81, 0x51, 0xac, 0x87, 0xb5, 0x96, 0x9f, 0xf4 },
++  /*  156 */ (__ev64_u8__) { 0x7d, 0x36, 0x30, 0x77, 0x4e, 0xbf, 0x11, 0x97 },
++  /*  157 */ (__ev64_u8__) { 0xf0, 0x3c, 0x49, 0xc4, 0xd2, 0x57, 0xdc, 0x35 },
++  /*  158 */ (__ev64_u8__) { 0xea, 0x99, 0xe0, 0x16, 0x85, 0x7b, 0xe7, 0x3a },
++  /*  159 */ (__ev64_u8__) { 0xe7, 0x5e, 0x07, 0x99, 0x1b, 0x6d, 0x64, 0x9d },
++  /*  160 */ (__ev64_u8__) { 0x99, 0xa7, 0xbc, 0x9d, 0x5c, 0xea, 0x33, 0xb7 },
++  /*  161 */ (__ev64_u8__) { 0x4c, 0x1c, 0x97, 0xa1, 0x91, 0x5d, 0x73, 0x65 },
++  /*  162 */ (__ev64_u8__) { 0xf1, 0xce, 0xd1, 0x32, 0x9d, 0x0a, 0x4c, 0x59 },
++  /*  163 */ (__ev64_u8__) { 0x8a, 0xba, 0x92, 0x8b, 0x42, 0x68, 0x9e, 0xe1 },
++  /*  164 */ (__ev64_u8__) { 0xb6, 0x4b, 0xee, 0xaf, 0x3b, 0xe2, 0x24, 0x0c },
++  /*  165 */ (__ev64_u8__) { 0xc2, 0x2e, 0xcb, 0xef, 0x02, 0x45, 0xe7, 0xd2 },
++  /*  166 */ (__ev64_u8__) { 0xea, 0xbf, 0xda, 0x00, 0x7c, 0x53, 0x7f, 0x64 },
++  /*  167 */ (__ev64_u8__) { 0x57, 0x8c, 0x25, 0x4d, 0x6b, 0xcd, 0x0c, 0x8d },
++  /*  168 */ (__ev64_u8__) { 0xaa, 0x14, 0x1b, 0x10, 0xd1, 0xa8, 0x09, 0x79 },
++  /*  169 */ (__ev64_u8__) { 0x0b, 0x21, 0xef, 0xe5, 0x8a, 0x86, 0xfe, 0xe9 },
++  /*  170 */ (__ev64_u8__) { 0xeb, 0xa7, 0x7d, 0xdb, 0x43, 0xd6, 0xc9, 0x9f },
++  /*  171 */ (__ev64_u8__) { 0x94, 0x96, 0xee, 0x82, 0xdb, 0xbe, 0xd1, 0x20 },
++  /*  172 */ (__ev64_u8__) { 0xbc, 0xca, 0x64, 0x03, 0x31, 0xd7, 0x42, 0x27 },
++  /*  173 */ (__ev64_u8__) { 0xf7, 0xdc, 0x81, 0xde, 0x36, 0xcb, 0x6b, 0xae },
++  /*  174 */ (__ev64_u8__) { 0x25, 0xbf, 0x56, 0xcd, 0x90, 0x9e, 0xd2, 0x2c },
++  /*  175 */ (__ev64_u8__) { 0xe6, 0xc1, 0x3c, 0xe0, 0x6b, 0x93, 0xcd, 0x9d },
++  /*  176 */ (__ev64_u8__) { 0x0f, 0x38, 0x13, 0xc1, 0x9a, 0xbf, 0xd4, 0xa2 },
++  /*  177 */ (__ev64_u8__) { 0xae, 0x40, 0x66, 0xdb, 0x53, 0x5e, 0x6f, 0x6b },
++  /*  178 */ (__ev64_u8__) { 0x72, 0x79, 0xa4, 0x01, 0x66, 0xbc, 0xae, 0x34 },
++  /*  179 */ (__ev64_u8__) { 0x11, 0xd3, 0x68, 0x54, 0xbe, 0x3e, 0x8d, 0xb5 },
++  /*  180 */ (__ev64_u8__) { 0x6a, 0x0f, 0x52, 0xf3, 0xf0, 0x73, 0xdb, 0xd3 },
++  /*  181 */ (__ev64_u8__) { 0xa4, 0xcd, 0x15, 0x1d, 0x97, 0x15, 0xd9, 0x5a },
++  /*  182 */ (__ev64_u8__) { 0xc1, 0x43, 0xa7, 0x35, 0x83, 0x10, 0xd6, 0xf3 },
++  /*  183 */ (__ev64_u8__) { 0x74, 0xb3, 0x09, 0x43, 0x7d, 0x87, 0x7c, 0xee },
++  /*  184 */ (__ev64_u8__) { 0x4e, 0xa9, 0x3c, 0xbf, 0xd7, 0x36, 0xcd, 0x15 },
++  /*  185 */ (__ev64_u8__) { 0xc8, 0xd8, 0x05, 0x0e, 0x86, 0x1a, 0x86, 0xae },
++  /*  186 */ (__ev64_u8__) { 0x37, 0xa0, 0xfe, 0xf8, 0xbd, 0xf1, 0xbf, 0x26 },
++  /*  187 */ (__ev64_u8__) { 0x79, 0xda, 0xa5, 0xd0, 0x7d, 0x36, 0x36, 0xfa },
++  /*  188 */ (__ev64_u8__) { 0x25, 0xd9, 0xc7, 0x79, 0xd1, 0x29, 0xf8, 0x81 },
++  /*  189 */ (__ev64_u8__) { 0x1d, 0xee, 0x3b, 0xe1, 0x5b, 0xae, 0x32, 0xf8 },
++  /*  190 */ (__ev64_u8__) { 0xaf, 0x9d, 0x2e, 0xa8, 0xdd, 0xb3, 0x1f, 0xce },
++  /*  191 */ (__ev64_u8__) { 0xc9, 0x51, 0x4b, 0xee, 0xf7, 0x60, 0xad, 0x79 },
++  /*  192 */ (__ev64_u8__) { 0x41, 0xfa, 0x15, 0x1f, 0x1c, 0x76, 0x30, 0x04 },
++  /*  193 */ (__ev64_u8__) { 0xa6, 0x77, 0xba, 0x1f, 0x1d, 0x9a, 0xae, 0x11 },
++  /*  194 */ (__ev64_u8__) { 0xc4, 0x12, 0xe8, 0x2e, 0xe2, 0x3b, 0xcf, 0xb9 },
++  /*  195 */ (__ev64_u8__) { 0x08, 0x00, 0x84, 0x05, 0x01, 0xf7, 0xe3, 0xec },
++  /*  196 */ (__ev64_u8__) { 0xdc, 0x96, 0x4c, 0xd4, 0x2d, 0x72, 0x5c, 0x57 },
++  /*  197 */ (__ev64_u8__) { 0xfb, 0xec, 0xa1, 0xd5, 0x38, 0x31, 0x11, 0x55 },
++  /*  198 */ (__ev64_u8__) { 0xf3, 0x62, 0x9d, 0x80, 0x7c, 0x3d, 0xa3, 0x8e },
++  /*  199 */ (__ev64_u8__) { 0x6b, 0xa6, 0x64, 0x4d, 0x27, 0x66, 0xab, 0xf5 },
++  /*  200 */ (__ev64_u8__) { 0x35, 0xc7, 0xab, 0x8c, 0x07, 0xdb, 0xf2, 0xf8 },
++  /*  201 */ (__ev64_u8__) { 0xf5, 0xc0, 0x9b, 0x3c, 0x62, 0x4d, 0x3a, 0x0b },
++  /*  202 */ (__ev64_u8__) { 0x56, 0x8b, 0x95, 0xc0, 0x9e, 0x68, 0x80, 0xc4 },
++  /*  203 */ (__ev64_u8__) { 0x92, 0x65, 0x1a, 0x3e, 0xe7, 0x76, 0x9d, 0x66 },
++  /*  204 */ (__ev64_u8__) { 0x41, 0x48, 0x64, 0xbf, 0xb5, 0x7f, 0x02, 0x45 },
++  /*  205 */ (__ev64_u8__) { 0xb7, 0x85, 0x1c, 0x71, 0xee, 0x13, 0x88, 0xe0 },
++  /*  206 */ (__ev64_u8__) { 0x5d, 0x91, 0x16, 0x8b, 0xe7, 0xc6, 0x82, 0x9d },
++  /*  207 */ (__ev64_u8__) { 0xac, 0x38, 0xf4, 0x6f, 0xb5, 0x2c, 0xff, 0x1b },
++  /*  208 */ (__ev64_u8__) { 0x8d, 0xf2, 0x3e, 0xa4, 0x13, 0xaf, 0xdb, 0xa3 },
++  /*  209 */ (__ev64_u8__) { 0xa2, 0x86, 0x20, 0x11, 0xba, 0xff, 0x3f, 0xfd },
++  /*  210 */ (__ev64_u8__) { 0x97, 0xcf, 0x8d, 0x5b, 0xd7, 0xcf, 0x8f, 0x3a },
++  /*  211 */ (__ev64_u8__) { 0x3b, 0x3f, 0x5c, 0x6d, 0xfc, 0xbc, 0x13, 0x5f },
++  /*  212 */ (__ev64_u8__) { 0x82, 0x1d, 0x8c, 0x7a, 0xc9, 0x0e, 0x66, 0x00 },
++  /*  213 */ (__ev64_u8__) { 0xf5, 0x6e, 0x8c, 0xf7, 0x37, 0x76, 0x5a, 0x68 },
++  /*  214 */ (__ev64_u8__) { 0x93, 0xf7, 0x64, 0x23, 0xe9, 0x03, 0x5d, 0x0d },
++  /*  215 */ (__ev64_u8__) { 0x4e, 0x84, 0xd8, 0x31, 0xf5, 0x41, 0x20, 0x84 },
++  /*  216 */ (__ev64_u8__) { 0xf4, 0x9c, 0xa0, 0xe4, 0x4b, 0xae, 0x31, 0x2f },
++  /*  217 */ (__ev64_u8__) { 0x29, 0xb2, 0x23, 0xb7, 0xa9, 0xab, 0x61, 0x40 },
++  /*  218 */ (__ev64_u8__) { 0x0d, 0xc8, 0x82, 0x5b, 0x88, 0xa1, 0xd6, 0x16 },
++  /*  219 */ (__ev64_u8__) { 0xf9, 0x76, 0xe7, 0xa1, 0x49, 0x63, 0xbe, 0xf1 },
++  /*  220 */ (__ev64_u8__) { 0x55, 0x1f, 0xac, 0xc4, 0xa9, 0x2f, 0x24, 0xcb },
++  /*  221 */ (__ev64_u8__) { 0x8d, 0xee, 0xf8, 0x67, 0xb8, 0x0b, 0x1c, 0x59 },
++  /*  222 */ (__ev64_u8__) { 0x05, 0x0e, 0x7b, 0x28, 0x42, 0x6f, 0x67, 0x4a },
++  /*  223 */ (__ev64_u8__) { 0x9e, 0xe8, 0x6f, 0x90, 0xa7, 0xfb, 0x82, 0xa4 },
++  /*  224 */ (__ev64_u8__) { 0xef, 0x84, 0xdb, 0xd9, 0x06, 0x50, 0x2e, 0x9a },
++  /*  225 */ (__ev64_u8__) { 0xed, 0x43, 0x33, 0x68, 0xde, 0xf6, 0x79, 0x94 },
++  /*  226 */ (__ev64_u8__) { 0x16, 0x94, 0xb0, 0xe9, 0x7d, 0x51, 0xb7, 0xcb },
++  /*  227 */ (__ev64_u8__) { 0x1b, 0xad, 0xe4, 0xe1, 0x3a, 0xe9, 0xd7, 0xd2 },
++  /*  228 */ (__ev64_u8__) { 0x5f, 0xf6, 0x18, 0x4c, 0xc3, 0x3a, 0x22, 0xe4 },
++  /*  229 */ (__ev64_u8__) { 0x2f, 0x26, 0x85, 0xc0, 0xcc, 0x98, 0x44, 0xec },
++  /*  230 */ (__ev64_u8__) { 0xae, 0xd3, 0x95, 0xbe, 0xd7, 0x83, 0xf2, 0x8a },
++  /*  231 */ (__ev64_u8__) { 0x4f, 0x69, 0x4f, 0xf5, 0x8f, 0x25, 0xc0, 0x4f },
++  /*  232 */ (__ev64_u8__) { 0x9e, 0xec, 0x82, 0x5b, 0xb8, 0xeb, 0x3a, 0x4b },
++  /*  233 */ (__ev64_u8__) { 0xe2, 0x2f, 0xa6, 0xe1, 0x48, 0x11, 0xea, 0xeb },
++  /*  234 */ (__ev64_u8__) { 0x3f, 0x38, 0x06, 0xbd, 0x0c, 0x1c, 0x01, 0x0d },
++  /*  235 */ (__ev64_u8__) { 0xce, 0x85, 0x67, 0xec, 0x39, 0xb1, 0x59, 0x05 },
++  /*  236 */ (__ev64_u8__) { 0x58, 0x2f, 0x7d, 0x48, 0xa9, 0x64, 0xb4, 0x5d },
++  /*  237 */ (__ev64_u8__) { 0xc6, 0x13, 0xe2, 0x8b, 0x39, 0x8a, 0xcd, 0x2c },
++  /*  238 */ (__ev64_u8__) { 0x20, 0x3e, 0xb9, 0xbc, 0x78, 0x61, 0xe1, 0x65 },
++  /*  239 */ (__ev64_u8__) { 0x9c, 0x6f, 0x7b, 0x3b, 0x3e, 0xb9, 0xf3, 0x69 },
++  /*  240 */ (__ev64_u8__) { 0x07, 0xe9, 0x79, 0x1f, 0xd3, 0x88, 0x7a, 0xf6 },
++  /*  241 */ (__ev64_u8__) { 0xc7, 0x0d, 0xcc, 0x13, 0x00, 0x61, 0x43, 0x83 },
++  /*  242 */ (__ev64_u8__) { 0xd3, 0x76, 0xa5, 0x5b, 0x73, 0xaa, 0xc5, 0x53 },
++  /*  243 */ (__ev64_u8__) { 0x29, 0x6f, 0xf0, 0x9d, 0xf5, 0x14, 0xaf, 0xf4 },
++  /*  244 */ (__ev64_u8__) { 0x37, 0x50, 0x8d, 0x5d, 0x75, 0xeb, 0xf4, 0xf4 },
++  /*  245 */ (__ev64_u8__) { 0xbd, 0x04, 0x3b, 0x63, 0x30, 0x5e, 0x84, 0xc7 },
++  /*  246 */ (__ev64_u8__) { 0xd5, 0x93, 0xa4, 0xf3, 0x1a, 0x80, 0x90, 0x71 },
++  /*  247 */ (__ev64_u8__) { 0x1c, 0xf7, 0xb5, 0x1f, 0x81, 0x2f, 0x60, 0x1f },
++  /*  248 */ (__ev64_u8__) { 0x25, 0xe2, 0x6e, 0x7c, 0x46, 0xea, 0xe4, 0xaf },
++  /*  249 */ (__ev64_u8__) { 0xb1, 0x72, 0x44, 0x1a, 0x73, 0x72, 0x02, 0x9f },
++  /*  250 */ (__ev64_u8__) { 0x24, 0xbf, 0xfa, 0x78, 0x25, 0x71, 0xb5, 0xe2 },
++  /*  251 */ (__ev64_u8__) { 0x73, 0xee, 0xe9, 0x56, 0x48, 0xd7, 0x50, 0x09 },
++  /*  252 */ (__ev64_u8__) { 0xdf, 0x46, 0x16, 0xbb, 0xe6, 0xef, 0x22, 0x3a },
++  /*  253 */ (__ev64_u8__) { 0xce, 0x74, 0xe3, 0xc6, 0x6c, 0x68, 0xf9, 0xce },
++  /*  254 */ (__ev64_u8__) { 0x57, 0x86, 0x60, 0xc6, 0xbe, 0xe6, 0xca, 0x26 },
++  /*  255 */ (__ev64_u8__) { 0x4e, 0xc9, 0x4b, 0xa4, 0x9d, 0x37, 0x50, 0xcc },
++
++};
++
++__ev64_u8__ rD8u8[NELTS(rA8u8)];
++
++const __ev64_s8__ rA8s8[] = {
++
++  /*    0 */ (__ev64_s8__) { 0x73, 0x86, 0x95, 0x7f, 0x2f, 0xda, 0xbb, 0xb7 },
++  /*    1 */ (__ev64_s8__) { 0x89, 0xd7, 0x53, 0xe0, 0x48, 0xf6, 0xfc, 0x76 },
++  /*    2 */ (__ev64_s8__) { 0x9b, 0x47, 0xab, 0x28, 0x95, 0x94, 0xc2, 0x2c },
++  /*    3 */ (__ev64_s8__) { 0xe3, 0x87, 0x90, 0xcb, 0x86, 0x72, 0x61, 0x62 },
++  /*    4 */ (__ev64_s8__) { 0x0a, 0x1a, 0x58, 0xc3, 0x6f, 0xd4, 0x00, 0xc5 },
++  /*    5 */ (__ev64_s8__) { 0x4d, 0xa3, 0x3a, 0x05, 0xb3, 0xbd, 0x4d, 0x78 },
++  /*    6 */ (__ev64_s8__) { 0x7e, 0xf7, 0x3a, 0xa8, 0x16, 0xed, 0x23, 0xde },
++  /*    7 */ (__ev64_s8__) { 0x04, 0xab, 0x9d, 0x19, 0xa4, 0xd1, 0x5d, 0x93 },
++  /*    8 */ (__ev64_s8__) { 0x1c, 0xc9, 0xd9, 0xca, 0xfc, 0xe4, 0xb9, 0x3f },
++  /*    9 */ (__ev64_s8__) { 0xc0, 0x81, 0x18, 0x9f, 0xa9, 0x02, 0xf5, 0xc6 },
++  /*   10 */ (__ev64_s8__) { 0xb1, 0x5b, 0x8f, 0xd6, 0xd4, 0x47, 0x22, 0x61 },
++  /*   11 */ (__ev64_s8__) { 0x87, 0x2d, 0x1d, 0x6e, 0xf0, 0x78, 0x3e, 0x71 },
++  /*   12 */ (__ev64_s8__) { 0xa0, 0xbd, 0xc4, 0xc3, 0x5c, 0x6e, 0xd9, 0x13 },
++  /*   13 */ (__ev64_s8__) { 0xac, 0xf8, 0x3f, 0x7e, 0x12, 0xf8, 0x67, 0x9a },
++  /*   14 */ (__ev64_s8__) { 0xc7, 0x9d, 0xca, 0x5a, 0xf9, 0x0d, 0xe4, 0x8f },
++  /*   15 */ (__ev64_s8__) { 0xa0, 0xa4, 0xd2, 0xa4, 0xfd, 0xd2, 0xc9, 0x4e },
++  /*   16 */ (__ev64_s8__) { 0xb9, 0x3a, 0x21, 0x7d, 0x27, 0x0c, 0x79, 0x50 },
++  /*   17 */ (__ev64_s8__) { 0xda, 0x67, 0x26, 0xb9, 0xd9, 0x22, 0x24, 0xeb },
++  /*   18 */ (__ev64_s8__) { 0x24, 0x3d, 0x5c, 0x8c, 0x7c, 0xae, 0x52, 0x83 },
++  /*   19 */ (__ev64_s8__) { 0xc5, 0xb6, 0x5d, 0x0c, 0x81, 0x8b, 0xe3, 0x49 },
++  /*   20 */ (__ev64_s8__) { 0x04, 0x69, 0x24, 0x68, 0x76, 0x8b, 0x59, 0x9f },
++  /*   21 */ (__ev64_s8__) { 0x66, 0x81, 0x72, 0xdd, 0x67, 0xcf, 0x82, 0x78 },
++  /*   22 */ (__ev64_s8__) { 0xac, 0x05, 0x03, 0x6f, 0x4f, 0x75, 0x9f, 0xc7 },
++  /*   23 */ (__ev64_s8__) { 0xaa, 0xb4, 0xcd, 0xde, 0xf3, 0x01, 0x76, 0x33 },
++  /*   24 */ (__ev64_s8__) { 0xd6, 0x07, 0x1e, 0xfb, 0x56, 0x28, 0x80, 0xb2 },
++  /*   25 */ (__ev64_s8__) { 0xda, 0x52, 0x7e, 0x96, 0x7e, 0x5c, 0x8a, 0xff },
++  /*   26 */ (__ev64_s8__) { 0x5e, 0xfe, 0x54, 0xd5, 0x39, 0xd5, 0x2f, 0x4a },
++  /*   27 */ (__ev64_s8__) { 0xa5, 0x5c, 0x30, 0xea, 0xb4, 0x32, 0x83, 0x0c },
++  /*   28 */ (__ev64_s8__) { 0xc3, 0x97, 0x2c, 0xc9, 0xa5, 0x89, 0x68, 0xbb },
++  /*   29 */ (__ev64_s8__) { 0x10, 0x89, 0x57, 0x75, 0x9c, 0x92, 0x01, 0x20 },
++  /*   30 */ (__ev64_s8__) { 0xa6, 0x90, 0x09, 0xcc, 0x03, 0xfd, 0xf0, 0x66 },
++  /*   31 */ (__ev64_s8__) { 0x47, 0xb2, 0x5d, 0xe4, 0x02, 0x14, 0x05, 0xfd },
++  /*   32 */ (__ev64_s8__) { 0x8e, 0x6f, 0xaa, 0x5f, 0x83, 0xfa, 0xfb, 0xbd },
++  /*   33 */ (__ev64_s8__) { 0xf6, 0x10, 0x5d, 0x1c, 0x21, 0xcf, 0x05, 0x71 },
++  /*   34 */ (__ev64_s8__) { 0x8c, 0x0f, 0xcd, 0x49, 0x42, 0x13, 0x4b, 0x78 },
++  /*   35 */ (__ev64_s8__) { 0xc7, 0x56, 0x11, 0xb9, 0xe4, 0xdb, 0xda, 0x2d },
++  /*   36 */ (__ev64_s8__) { 0xf1, 0xbd, 0xbb, 0xd8, 0x9d, 0x84, 0x48, 0xe0 },
++  /*   37 */ (__ev64_s8__) { 0xdc, 0x56, 0x5c, 0x46, 0x3a, 0xdf, 0xa4, 0xea },
++  /*   38 */ (__ev64_s8__) { 0xb0, 0x0c, 0x8b, 0x0c, 0xec, 0xf8, 0xfe, 0x13 },
++  /*   39 */ (__ev64_s8__) { 0x9c, 0x17, 0xa8, 0xaf, 0x1a, 0x60, 0xad, 0x5d },
++  /*   40 */ (__ev64_s8__) { 0x0e, 0x97, 0x16, 0x84, 0x64, 0xb4, 0xac, 0xf1 },
++  /*   41 */ (__ev64_s8__) { 0x67, 0x30, 0x3f, 0x86, 0x92, 0xc1, 0xf0, 0x7b },
++  /*   42 */ (__ev64_s8__) { 0xcb, 0xcd, 0x08, 0x00, 0x0b, 0xba, 0x33, 0xab },
++  /*   43 */ (__ev64_s8__) { 0x49, 0xe3, 0x2a, 0x9b, 0x80, 0x7e, 0x27, 0x77 },
++  /*   44 */ (__ev64_s8__) { 0x27, 0x33, 0x39, 0x27, 0xfb, 0x1c, 0x9a, 0xbc },
++  /*   45 */ (__ev64_s8__) { 0x31, 0x3d, 0x2a, 0x8e, 0x0f, 0xd3, 0x19, 0xca },
++  /*   46 */ (__ev64_s8__) { 0x5d, 0xb8, 0xa0, 0xcd, 0xb1, 0x97, 0xeb, 0x69 },
++  /*   47 */ (__ev64_s8__) { 0x7e, 0xfd, 0x64, 0x00, 0xbd, 0xd4, 0xc8, 0x84 },
++  /*   48 */ (__ev64_s8__) { 0x22, 0x1a, 0x9d, 0xc9, 0x4e, 0x99, 0x61, 0x2f },
++  /*   49 */ (__ev64_s8__) { 0x5d, 0x95, 0x39, 0x04, 0x08, 0x23, 0xe0, 0xa6 },
++  /*   50 */ (__ev64_s8__) { 0x9d, 0xdb, 0x1c, 0x21, 0xad, 0xc7, 0xe2, 0xbb },
++  /*   51 */ (__ev64_s8__) { 0x2d, 0xfc, 0x4a, 0x64, 0xc6, 0xd0, 0xf3, 0xce },
++  /*   52 */ (__ev64_s8__) { 0xb3, 0x08, 0x0d, 0xc2, 0x43, 0x0c, 0x83, 0xdc },
++  /*   53 */ (__ev64_s8__) { 0x84, 0xf0, 0x9c, 0x12, 0x77, 0x9b, 0xa9, 0x65 },
++  /*   54 */ (__ev64_s8__) { 0x95, 0x09, 0x95, 0x91, 0xa0, 0x70, 0x70, 0x10 },
++  /*   55 */ (__ev64_s8__) { 0xe8, 0x5d, 0x9b, 0xfe, 0x4c, 0x10, 0x94, 0x16 },
++  /*   56 */ (__ev64_s8__) { 0x1a, 0x93, 0xe8, 0x95, 0x9d, 0x76, 0x20, 0x0c },
++  /*   57 */ (__ev64_s8__) { 0xb2, 0xc9, 0x90, 0x5c, 0xbd, 0xa9, 0x56, 0xad },
++  /*   58 */ (__ev64_s8__) { 0xe7, 0x8d, 0xfc, 0xfa, 0xb3, 0xa8, 0x39, 0xf6 },
++  /*   59 */ (__ev64_s8__) { 0x2a, 0xc9, 0xf2, 0x87, 0x7c, 0xa3, 0x6b, 0xe1 },
++  /*   60 */ (__ev64_s8__) { 0x2b, 0xcb, 0xbc, 0x86, 0xc2, 0xf9, 0xbd, 0x6c },
++  /*   61 */ (__ev64_s8__) { 0x10, 0x09, 0xf1, 0xaa, 0xe5, 0x7c, 0x41, 0x51 },
++  /*   62 */ (__ev64_s8__) { 0x9a, 0x53, 0x2b, 0xc7, 0x13, 0x03, 0x26, 0xb0 },
++  /*   63 */ (__ev64_s8__) { 0x48, 0x52, 0xd3, 0x7b, 0x7f, 0x57, 0xf3, 0x3c },
++  /*   64 */ (__ev64_s8__) { 0xa4, 0xf1, 0xfb, 0x30, 0x3b, 0xb1, 0x0f, 0x2f },
++  /*   65 */ (__ev64_s8__) { 0x70, 0xec, 0x30, 0x08, 0x33, 0x87, 0x86, 0x16 },
++  /*   66 */ (__ev64_s8__) { 0x9c, 0xcb, 0xea, 0xc1, 0x30, 0x8f, 0x76, 0x1a },
++  /*   67 */ (__ev64_s8__) { 0x46, 0xd6, 0x27, 0x9e, 0x44, 0xd9, 0x3d, 0x86 },
++  /*   68 */ (__ev64_s8__) { 0xa3, 0x3b, 0x5b, 0x57, 0x3b, 0x10, 0x83, 0x44 },
++  /*   69 */ (__ev64_s8__) { 0x60, 0x17, 0x9f, 0xca, 0xab, 0xe2, 0x82, 0x07 },
++  /*   70 */ (__ev64_s8__) { 0x2a, 0x57, 0x79, 0x2f, 0xe9, 0xfe, 0xac, 0xd5 },
++  /*   71 */ (__ev64_s8__) { 0xd5, 0xe1, 0x2f, 0x15, 0x72, 0x1c, 0x5a, 0xb2 },
++  /*   72 */ (__ev64_s8__) { 0x0d, 0xe6, 0xa5, 0xc6, 0x5b, 0xe3, 0xa7, 0xb3 },
++  /*   73 */ (__ev64_s8__) { 0x52, 0x45, 0xa9, 0xb2, 0x1a, 0x23, 0x8c, 0xb5 },
++  /*   74 */ (__ev64_s8__) { 0xd6, 0x35, 0xd5, 0x41, 0x37, 0xc1, 0xd0, 0xe5 },
++  /*   75 */ (__ev64_s8__) { 0x3d, 0xf0, 0xed, 0x8c, 0x51, 0x56, 0x73, 0x13 },
++  /*   76 */ (__ev64_s8__) { 0x07, 0x66, 0xcc, 0x46, 0x14, 0x7e, 0x92, 0x02 },
++  /*   77 */ (__ev64_s8__) { 0x28, 0x7a, 0xc6, 0xe5, 0xe8, 0x4c, 0x76, 0x45 },
++  /*   78 */ (__ev64_s8__) { 0x7a, 0xb3, 0xf1, 0x41, 0xe2, 0xb5, 0x4b, 0xa6 },
++  /*   79 */ (__ev64_s8__) { 0x55, 0x5d, 0x08, 0x07, 0x4c, 0xc8, 0x9b, 0xb5 },
++  /*   80 */ (__ev64_s8__) { 0x85, 0x50, 0x6a, 0xea, 0x00, 0x52, 0x48, 0x9a },
++  /*   81 */ (__ev64_s8__) { 0xcf, 0x2b, 0x86, 0xe4, 0x3d, 0x9b, 0x07, 0xfa },
++  /*   82 */ (__ev64_s8__) { 0xd2, 0x1a, 0x1b, 0xf2, 0xc6, 0xf9, 0x8c, 0x66 },
++  /*   83 */ (__ev64_s8__) { 0x26, 0xee, 0xe9, 0x93, 0x8f, 0x21, 0x3f, 0xd0 },
++  /*   84 */ (__ev64_s8__) { 0x45, 0xb7, 0xbb, 0xe5, 0xd6, 0x56, 0xde, 0x81 },
++  /*   85 */ (__ev64_s8__) { 0x25, 0x83, 0xe7, 0xce, 0x98, 0x76, 0x2d, 0x2b },
++  /*   86 */ (__ev64_s8__) { 0xe9, 0x87, 0x45, 0xf4, 0x70, 0x06, 0x11, 0xfb },
++  /*   87 */ (__ev64_s8__) { 0x55, 0x36, 0xd5, 0xf9, 0x99, 0x59, 0xb6, 0xcd },
++  /*   88 */ (__ev64_s8__) { 0xf7, 0x43, 0xd3, 0xda, 0xcd, 0xf2, 0xfd, 0x83 },
++  /*   89 */ (__ev64_s8__) { 0x08, 0x9d, 0x70, 0x4d, 0x4a, 0x2e, 0xe0, 0x68 },
++  /*   90 */ (__ev64_s8__) { 0xdb, 0xd5, 0x94, 0xb2, 0xe3, 0xfa, 0x6b, 0x75 },
++  /*   91 */ (__ev64_s8__) { 0x74, 0x1a, 0x29, 0x33, 0xeb, 0x5b, 0xa4, 0x31 },
++  /*   92 */ (__ev64_s8__) { 0x27, 0x69, 0x8c, 0xd3, 0x47, 0x3c, 0x3d, 0x94 },
++  /*   93 */ (__ev64_s8__) { 0xaa, 0xb7, 0xb1, 0xf0, 0x92, 0x3f, 0xd8, 0x2a },
++  /*   94 */ (__ev64_s8__) { 0x49, 0x24, 0xf4, 0xb5, 0x01, 0x35, 0x42, 0x5b },
++  /*   95 */ (__ev64_s8__) { 0xa8, 0xdb, 0x49, 0xcf, 0x2d, 0xf0, 0x45, 0xf7 },
++  /*   96 */ (__ev64_s8__) { 0x1d, 0x3e, 0x3e, 0xb9, 0x91, 0x09, 0x70, 0x93 },
++  /*   97 */ (__ev64_s8__) { 0xae, 0x6b, 0xf2, 0x29, 0x5a, 0x63, 0xd0, 0x66 },
++  /*   98 */ (__ev64_s8__) { 0x02, 0x90, 0x4e, 0x11, 0xae, 0x68, 0xdc, 0xa7 },
++  /*   99 */ (__ev64_s8__) { 0x94, 0xce, 0x59, 0x26, 0xea, 0xe6, 0x34, 0xfe },
++  /*  100 */ (__ev64_s8__) { 0x57, 0xe0, 0xd0, 0xcc, 0x33, 0x10, 0x1e, 0xb9 },
++  /*  101 */ (__ev64_s8__) { 0x94, 0xa0, 0x0f, 0xfd, 0xe5, 0xd3, 0x6c, 0x08 },
++  /*  102 */ (__ev64_s8__) { 0xc2, 0x2a, 0x29, 0xfc, 0xd4, 0x11, 0xcb, 0xce },
++  /*  103 */ (__ev64_s8__) { 0x3e, 0x10, 0xc5, 0x88, 0x23, 0x75, 0x0d, 0xd1 },
++  /*  104 */ (__ev64_s8__) { 0x69, 0x00, 0xfa, 0x42, 0xd9, 0xfb, 0xbe, 0x63 },
++  /*  105 */ (__ev64_s8__) { 0xba, 0x9d, 0xa9, 0x48, 0x23, 0x06, 0xf0, 0xa4 },
++  /*  106 */ (__ev64_s8__) { 0xa4, 0x9d, 0x4d, 0x1f, 0xc7, 0x5b, 0xb2, 0x6e },
++  /*  107 */ (__ev64_s8__) { 0x95, 0x38, 0xf3, 0xa3, 0xef, 0x3a, 0xd6, 0x84 },
++  /*  108 */ (__ev64_s8__) { 0x92, 0x02, 0x27, 0xc0, 0xb5, 0x00, 0x93, 0xad },
++  /*  109 */ (__ev64_s8__) { 0xfc, 0xcc, 0xab, 0xe4, 0xb8, 0x35, 0x02, 0x2d },
++  /*  110 */ (__ev64_s8__) { 0xf4, 0x50, 0x4e, 0xf0, 0x2e, 0x93, 0x4f, 0x33 },
++  /*  111 */ (__ev64_s8__) { 0xa9, 0x3d, 0x4a, 0xce, 0xb2, 0xf6, 0x21, 0x10 },
++  /*  112 */ (__ev64_s8__) { 0x96, 0x33, 0x24, 0xfc, 0xcf, 0x86, 0xd8, 0xbb },
++  /*  113 */ (__ev64_s8__) { 0x66, 0x83, 0xa6, 0x5e, 0xd9, 0x02, 0xb1, 0x45 },
++  /*  114 */ (__ev64_s8__) { 0xbd, 0x43, 0x75, 0xb2, 0x09, 0x31, 0x1f, 0x8b },
++  /*  115 */ (__ev64_s8__) { 0x37, 0xd5, 0x61, 0x0a, 0x3a, 0xfd, 0xc3, 0x16 },
++  /*  116 */ (__ev64_s8__) { 0x02, 0xcc, 0x5c, 0x00, 0x01, 0xbc, 0xe4, 0xe9 },
++  /*  117 */ (__ev64_s8__) { 0x54, 0xbf, 0xd9, 0x68, 0xec, 0x40, 0x32, 0xeb },
++  /*  118 */ (__ev64_s8__) { 0xf5, 0x44, 0xff, 0xf3, 0x01, 0x81, 0x27, 0xce },
++  /*  119 */ (__ev64_s8__) { 0x04, 0xe6, 0xb6, 0x88, 0x5e, 0x81, 0x68, 0x23 },
++  /*  120 */ (__ev64_s8__) { 0x7e, 0x14, 0x92, 0x4a, 0xd5, 0x31, 0x98, 0xac },
++  /*  121 */ (__ev64_s8__) { 0xb9, 0x6e, 0x33, 0xac, 0xa7, 0xfe, 0x65, 0xc6 },
++  /*  122 */ (__ev64_s8__) { 0x07, 0xc7, 0x42, 0x07, 0x9d, 0x5c, 0x7f, 0x95 },
++  /*  123 */ (__ev64_s8__) { 0x12, 0x9a, 0xd5, 0x81, 0x27, 0x3b, 0xc9, 0x7f },
++  /*  124 */ (__ev64_s8__) { 0x7c, 0x37, 0x3b, 0x27, 0xed, 0x1d, 0x2b, 0x9a },
++  /*  125 */ (__ev64_s8__) { 0x18, 0x0b, 0x85, 0x9c, 0xbc, 0xbe, 0x84, 0x16 },
++  /*  126 */ (__ev64_s8__) { 0x33, 0x6f, 0xb1, 0x88, 0x60, 0xaf, 0xac, 0x42 },
++  /*  127 */ (__ev64_s8__) { 0xba, 0xda, 0xe8, 0x82, 0xfc, 0x89, 0xfd, 0x98 },
++  /*  128 */ (__ev64_s8__) { 0xb5, 0xe1, 0x9e, 0xc7, 0x77, 0x5b, 0xf0, 0xd5 },
++  /*  129 */ (__ev64_s8__) { 0xf8, 0x90, 0xb9, 0x8a, 0xab, 0x95, 0x09, 0x00 },
++  /*  130 */ (__ev64_s8__) { 0xe0, 0xbe, 0x0c, 0xeb, 0xdd, 0x76, 0x71, 0xee },
++  /*  131 */ (__ev64_s8__) { 0x80, 0xfd, 0xd0, 0xe3, 0x58, 0xb7, 0x3e, 0xb4 },
++  /*  132 */ (__ev64_s8__) { 0x5e, 0x23, 0x80, 0x40, 0x4b, 0x20, 0x6a, 0xc2 },
++  /*  133 */ (__ev64_s8__) { 0xd1, 0x9a, 0x3b, 0xd9, 0xdf, 0xc1, 0xf9, 0x2e },
++  /*  134 */ (__ev64_s8__) { 0x20, 0x24, 0xa3, 0x91, 0x5a, 0x19, 0x40, 0xe8 },
++  /*  135 */ (__ev64_s8__) { 0x01, 0x40, 0x90, 0xdb, 0x27, 0xcf, 0x31, 0x21 },
++  /*  136 */ (__ev64_s8__) { 0x0c, 0x8f, 0x81, 0xa7, 0x13, 0xae, 0xff, 0x5a },
++  /*  137 */ (__ev64_s8__) { 0x07, 0xb6, 0x68, 0x93, 0x3f, 0xa6, 0x66, 0xe4 },
++  /*  138 */ (__ev64_s8__) { 0x62, 0x3d, 0xd4, 0xce, 0x01, 0xb8, 0xd1, 0xe3 },
++  /*  139 */ (__ev64_s8__) { 0xee, 0x0b, 0x2d, 0xba, 0xca, 0xe1, 0xa0, 0x18 },
++  /*  140 */ (__ev64_s8__) { 0xf0, 0x01, 0x91, 0x5d, 0x5a, 0x3a, 0xc5, 0x8e },
++  /*  141 */ (__ev64_s8__) { 0x38, 0x7b, 0xd9, 0xbd, 0x2f, 0x04, 0xa0, 0x8b },
++  /*  142 */ (__ev64_s8__) { 0x2a, 0x2f, 0xb4, 0x56, 0xee, 0x20, 0x97, 0x41 },
++  /*  143 */ (__ev64_s8__) { 0x8d, 0xff, 0x84, 0x13, 0x79, 0xa6, 0xab, 0x3f },
++  /*  144 */ (__ev64_s8__) { 0x80, 0xb9, 0x77, 0x5c, 0x67, 0x38, 0x4b, 0xd8 },
++  /*  145 */ (__ev64_s8__) { 0x29, 0xe9, 0x27, 0x03, 0xaa, 0xeb, 0x27, 0x85 },
++  /*  146 */ (__ev64_s8__) { 0x54, 0xd7, 0xdd, 0x64, 0x21, 0x1d, 0x0a, 0x59 },
++  /*  147 */ (__ev64_s8__) { 0xd4, 0xdf, 0xe7, 0x2f, 0x22, 0xf9, 0x13, 0xe4 },
++  /*  148 */ (__ev64_s8__) { 0x38, 0x93, 0x60, 0x65, 0x04, 0x72, 0x8a, 0x3f },
++  /*  149 */ (__ev64_s8__) { 0x6b, 0x9f, 0xe3, 0x6c, 0x0b, 0x50, 0xe8, 0x22 },
++  /*  150 */ (__ev64_s8__) { 0x1e, 0xb5, 0xdb, 0x69, 0xc1, 0x63, 0xe1, 0xff },
++  /*  151 */ (__ev64_s8__) { 0x73, 0xc5, 0x3b, 0x72, 0x5c, 0xe2, 0x15, 0xc4 },
++  /*  152 */ (__ev64_s8__) { 0x1f, 0x67, 0x10, 0xdf, 0x4f, 0xa2, 0x49, 0xb3 },
++  /*  153 */ (__ev64_s8__) { 0x00, 0x4d, 0xc3, 0x7c, 0x57, 0x1b, 0xe0, 0xb3 },
++  /*  154 */ (__ev64_s8__) { 0x46, 0x8f, 0x2d, 0x56, 0x21, 0x1c, 0x0d, 0xff },
++  /*  155 */ (__ev64_s8__) { 0xab, 0x13, 0x9e, 0x85, 0xcf, 0x1f, 0x27, 0xfe },
++  /*  156 */ (__ev64_s8__) { 0x3a, 0xef, 0x2e, 0x3d, 0xf3, 0xec, 0x98, 0x0d },
++  /*  157 */ (__ev64_s8__) { 0x2b, 0x70, 0xc3, 0xea, 0xea, 0x7e, 0x62, 0x51 },
++  /*  158 */ (__ev64_s8__) { 0x1b, 0x23, 0x7c, 0xac, 0xcd, 0xca, 0xc5, 0xd8 },
++  /*  159 */ (__ev64_s8__) { 0xa8, 0x72, 0x32, 0xc8, 0x6f, 0x17, 0x90, 0x4e },
++  /*  160 */ (__ev64_s8__) { 0x16, 0xf0, 0x6d, 0x15, 0xf1, 0x24, 0xbe, 0x52 },
++  /*  161 */ (__ev64_s8__) { 0xc8, 0x75, 0xef, 0x22, 0x32, 0xc3, 0xcd, 0x7d },
++  /*  162 */ (__ev64_s8__) { 0x03, 0x74, 0x3d, 0xf8, 0xa1, 0x54, 0x22, 0xbb },
++  /*  163 */ (__ev64_s8__) { 0xc6, 0xa1, 0xcc, 0x28, 0x09, 0xb0, 0xdc, 0x6a },
++  /*  164 */ (__ev64_s8__) { 0xaa, 0x02, 0x29, 0x8c, 0x61, 0xdc, 0x51, 0xd0 },
++  /*  165 */ (__ev64_s8__) { 0xab, 0x08, 0x52, 0xe9, 0x68, 0xad, 0x8d, 0xd2 },
++  /*  166 */ (__ev64_s8__) { 0x0a, 0x01, 0x82, 0x2e, 0x09, 0xb3, 0xc9, 0x4e },
++  /*  167 */ (__ev64_s8__) { 0x59, 0x82, 0xc3, 0xad, 0x56, 0xe5, 0x26, 0xd3 },
++  /*  168 */ (__ev64_s8__) { 0xdc, 0xc7, 0x02, 0x59, 0x52, 0x9e, 0x94, 0xd4 },
++  /*  169 */ (__ev64_s8__) { 0x04, 0x7a, 0x02, 0x85, 0xb4, 0xb3, 0x0f, 0x12 },
++  /*  170 */ (__ev64_s8__) { 0xa1, 0x64, 0x90, 0x31, 0x27, 0x09, 0x72, 0xd9 },
++  /*  171 */ (__ev64_s8__) { 0x41, 0xa0, 0xfe, 0x2c, 0x05, 0x14, 0x52, 0x92 },
++  /*  172 */ (__ev64_s8__) { 0x17, 0x1d, 0xab, 0xe6, 0x12, 0x18, 0x6b, 0xab },
++  /*  173 */ (__ev64_s8__) { 0x0c, 0x1a, 0xd2, 0x5f, 0x10, 0x24, 0xef, 0x7d },
++  /*  174 */ (__ev64_s8__) { 0xce, 0xfb, 0xae, 0x36, 0x95, 0x10, 0xec, 0xbc },
++  /*  175 */ (__ev64_s8__) { 0xd6, 0xcc, 0xef, 0xc5, 0x3f, 0x8d, 0x3b, 0x2a },
++  /*  176 */ (__ev64_s8__) { 0x95, 0x40, 0xde, 0xdb, 0xfb, 0xfc, 0x3c, 0x14 },
++  /*  177 */ (__ev64_s8__) { 0xa6, 0xc1, 0xe4, 0x5b, 0xe1, 0xc2, 0xe3, 0xaf },
++  /*  178 */ (__ev64_s8__) { 0xb7, 0xbe, 0x19, 0x4d, 0x17, 0xba, 0xce, 0x6f },
++  /*  179 */ (__ev64_s8__) { 0x23, 0x88, 0x41, 0x5a, 0x36, 0xcd, 0x2e, 0x55 },
++  /*  180 */ (__ev64_s8__) { 0xc6, 0xf4, 0x75, 0xc4, 0x5e, 0x5b, 0x11, 0xe0 },
++  /*  181 */ (__ev64_s8__) { 0x72, 0xbf, 0x78, 0xdf, 0x67, 0xf5, 0xd7, 0xab },
++  /*  182 */ (__ev64_s8__) { 0xed, 0x99, 0xf6, 0xb6, 0x13, 0x95, 0x04, 0xa8 },
++  /*  183 */ (__ev64_s8__) { 0xb6, 0x1e, 0xdc, 0xa1, 0xf3, 0x46, 0xae, 0x9a },
++  /*  184 */ (__ev64_s8__) { 0x57, 0xb0, 0x04, 0xa6, 0xcf, 0x5a, 0x47, 0x8e },
++  /*  185 */ (__ev64_s8__) { 0x3e, 0x3d, 0x12, 0x26, 0xde, 0xff, 0x6b, 0xd2 },
++  /*  186 */ (__ev64_s8__) { 0x87, 0x4f, 0x78, 0x69, 0xd3, 0xac, 0xaf, 0x28 },
++  /*  187 */ (__ev64_s8__) { 0x25, 0x5a, 0x3b, 0x20, 0x3b, 0x5b, 0x9b, 0x38 },
++  /*  188 */ (__ev64_s8__) { 0x75, 0x83, 0xa6, 0x56, 0x7d, 0x8a, 0x45, 0x02 },
++  /*  189 */ (__ev64_s8__) { 0x53, 0x9b, 0x59, 0x4a, 0x18, 0xc7, 0xc3, 0xd4 },
++  /*  190 */ (__ev64_s8__) { 0xb4, 0x14, 0x61, 0x1a, 0x1b, 0xfc, 0x4b, 0xe8 },
++  /*  191 */ (__ev64_s8__) { 0xf2, 0xef, 0x93, 0x9c, 0x48, 0xfd, 0x10, 0x67 },
++  /*  192 */ (__ev64_s8__) { 0xe1, 0x48, 0xf8, 0xe3, 0xbe, 0x16, 0xb2, 0x1f },
++  /*  193 */ (__ev64_s8__) { 0x6b, 0x76, 0x27, 0x3b, 0x4a, 0xa1, 0xcf, 0x09 },
++  /*  194 */ (__ev64_s8__) { 0xe3, 0x3d, 0x28, 0xfd, 0x16, 0xe0, 0xb5, 0x33 },
++  /*  195 */ (__ev64_s8__) { 0x89, 0x14, 0xce, 0x68, 0x86, 0x92, 0x41, 0x48 },
++  /*  196 */ (__ev64_s8__) { 0x26, 0x98, 0x1b, 0x69, 0x57, 0x10, 0x70, 0x07 },
++  /*  197 */ (__ev64_s8__) { 0xb4, 0x3c, 0x87, 0xe8, 0x25, 0xde, 0xd5, 0x5b },
++  /*  198 */ (__ev64_s8__) { 0xd7, 0x17, 0x1d, 0x8e, 0x60, 0x7c, 0xf9, 0x48 },
++  /*  199 */ (__ev64_s8__) { 0x55, 0xb5, 0xff, 0x64, 0x4a, 0x10, 0xdd, 0x15 },
++  /*  200 */ (__ev64_s8__) { 0xcd, 0x35, 0x56, 0xe0, 0x37, 0x07, 0xce, 0xd6 },
++  /*  201 */ (__ev64_s8__) { 0x8e, 0x81, 0xe0, 0x8a, 0xec, 0xb8, 0x5b, 0x2e },
++  /*  202 */ (__ev64_s8__) { 0x17, 0xa9, 0x97, 0xb3, 0x35, 0xc7, 0xf4, 0x39 },
++  /*  203 */ (__ev64_s8__) { 0xc2, 0x82, 0x13, 0x67, 0x49, 0x30, 0x6d, 0x04 },
++  /*  204 */ (__ev64_s8__) { 0xf8, 0xcf, 0x9e, 0x34, 0x65, 0xbd, 0x5d, 0xbf },
++  /*  205 */ (__ev64_s8__) { 0xad, 0x3a, 0xfc, 0x7f, 0x1f, 0x92, 0x6c, 0x97 },
++  /*  206 */ (__ev64_s8__) { 0xf2, 0x06, 0xbf, 0x68, 0x71, 0x68, 0x58, 0xde },
++  /*  207 */ (__ev64_s8__) { 0xef, 0x96, 0x99, 0x05, 0x50, 0x22, 0xe9, 0x6c },
++  /*  208 */ (__ev64_s8__) { 0x87, 0x53, 0xcb, 0xc9, 0xea, 0x7f, 0x68, 0x1c },
++  /*  209 */ (__ev64_s8__) { 0x9a, 0x2d, 0x92, 0x44, 0x92, 0x42, 0x3e, 0x9c },
++  /*  210 */ (__ev64_s8__) { 0x50, 0x01, 0x88, 0xd6, 0x83, 0x1a, 0x3b, 0x2c },
++  /*  211 */ (__ev64_s8__) { 0x68, 0x45, 0x5e, 0xf4, 0xa8, 0xd0, 0x53, 0xd0 },
++  /*  212 */ (__ev64_s8__) { 0xf6, 0xa0, 0x8f, 0xab, 0x15, 0xea, 0xb4, 0x95 },
++  /*  213 */ (__ev64_s8__) { 0x8d, 0xf8, 0xf2, 0x8f, 0x99, 0xd6, 0x6e, 0xa6 },
++  /*  214 */ (__ev64_s8__) { 0x51, 0x3a, 0xa3, 0x22, 0xf5, 0x5f, 0xc1, 0x16 },
++  /*  215 */ (__ev64_s8__) { 0xf4, 0xc6, 0x6d, 0x30, 0xfe, 0xe2, 0x98, 0x39 },
++  /*  216 */ (__ev64_s8__) { 0xe5, 0x4e, 0xcb, 0xa7, 0x14, 0xf7, 0xb1, 0xdc },
++  /*  217 */ (__ev64_s8__) { 0xa5, 0xc2, 0x83, 0x5b, 0x62, 0x90, 0x8e, 0x1b },
++  /*  218 */ (__ev64_s8__) { 0x27, 0xca, 0xb6, 0x18, 0x80, 0x92, 0xa5, 0x53 },
++  /*  219 */ (__ev64_s8__) { 0x32, 0x57, 0x4a, 0x85, 0x83, 0x24, 0x37, 0x19 },
++  /*  220 */ (__ev64_s8__) { 0xf2, 0xfa, 0x17, 0x31, 0xea, 0xb0, 0x22, 0x9d },
++  /*  221 */ (__ev64_s8__) { 0xbe, 0x1d, 0xcd, 0x8e, 0x3c, 0xfb, 0xd1, 0xcc },
++  /*  222 */ (__ev64_s8__) { 0x20, 0x74, 0xc1, 0x6a, 0x4c, 0x12, 0xfb, 0xe9 },
++  /*  223 */ (__ev64_s8__) { 0xd5, 0x52, 0x4d, 0xc3, 0xf6, 0x59, 0x3d, 0xa3 },
++  /*  224 */ (__ev64_s8__) { 0x06, 0x27, 0x03, 0x71, 0xfd, 0x73, 0x49, 0x3c },
++  /*  225 */ (__ev64_s8__) { 0xc6, 0xf8, 0xc8, 0x60, 0x83, 0x41, 0x63, 0x8f },
++  /*  226 */ (__ev64_s8__) { 0xc0, 0xee, 0xea, 0xcf, 0x55, 0xfc, 0x2c, 0xcc },
++  /*  227 */ (__ev64_s8__) { 0x0b, 0x4f, 0x53, 0xcf, 0x24, 0xe1, 0xb6, 0xba },
++  /*  228 */ (__ev64_s8__) { 0xaa, 0xf8, 0xc9, 0x7e, 0x9e, 0x09, 0x6d, 0x91 },
++  /*  229 */ (__ev64_s8__) { 0x00, 0x39, 0xc5, 0x3c, 0x5c, 0x08, 0xa1, 0xde },
++  /*  230 */ (__ev64_s8__) { 0x00, 0xa3, 0x4e, 0x62, 0xcf, 0x18, 0x0e, 0x4f },
++  /*  231 */ (__ev64_s8__) { 0x09, 0x69, 0x75, 0x8d, 0xb8, 0x5c, 0xba, 0x4d },
++  /*  232 */ (__ev64_s8__) { 0x80, 0x8a, 0x6e, 0x37, 0xe8, 0x69, 0xa6, 0x3c },
++  /*  233 */ (__ev64_s8__) { 0x68, 0x44, 0x39, 0xac, 0xf5, 0xb7, 0x64, 0x53 },
++  /*  234 */ (__ev64_s8__) { 0xec, 0x86, 0xe8, 0x4e, 0x9c, 0x13, 0xb3, 0x56 },
++  /*  235 */ (__ev64_s8__) { 0xa1, 0xce, 0xec, 0xc9, 0x30, 0x23, 0x68, 0xa7 },
++  /*  236 */ (__ev64_s8__) { 0x61, 0xf0, 0x1d, 0xf3, 0x39, 0xfb, 0x4b, 0x37 },
++  /*  237 */ (__ev64_s8__) { 0x9e, 0xbc, 0x1b, 0xcf, 0x17, 0xa7, 0x54, 0xa4 },
++  /*  238 */ (__ev64_s8__) { 0x0a, 0x23, 0x97, 0x88, 0xcc, 0x03, 0xda, 0xdd },
++  /*  239 */ (__ev64_s8__) { 0x5c, 0xbc, 0x84, 0xa3, 0xcb, 0x98, 0xb8, 0xa2 },
++  /*  240 */ (__ev64_s8__) { 0x87, 0xfe, 0x7f, 0x46, 0x07, 0xf8, 0x9a, 0x6f },
++  /*  241 */ (__ev64_s8__) { 0x8b, 0x0a, 0xa8, 0x68, 0x4b, 0xe7, 0xbb, 0x76 },
++  /*  242 */ (__ev64_s8__) { 0x41, 0xdd, 0x8d, 0xba, 0xc8, 0x2a, 0x30, 0x4e },
++  /*  243 */ (__ev64_s8__) { 0x96, 0xe3, 0xaf, 0x61, 0x5c, 0x36, 0xa4, 0xb8 },
++  /*  244 */ (__ev64_s8__) { 0xaa, 0xff, 0xa3, 0x93, 0x01, 0x52, 0x7a, 0x95 },
++  /*  245 */ (__ev64_s8__) { 0x9d, 0xdb, 0x51, 0xea, 0x4f, 0x9a, 0x5e, 0x43 },
++  /*  246 */ (__ev64_s8__) { 0x04, 0x63, 0x21, 0xca, 0x04, 0x8a, 0x0a, 0x88 },
++  /*  247 */ (__ev64_s8__) { 0x00, 0x43, 0x02, 0x98, 0x36, 0xf8, 0xd8, 0xb8 },
++  /*  248 */ (__ev64_s8__) { 0x59, 0xb2, 0x3c, 0xa0, 0xb4, 0x50, 0x6f, 0x1d },
++  /*  249 */ (__ev64_s8__) { 0xd4, 0x0c, 0xa3, 0x7b, 0x76, 0x9b, 0xc1, 0x62 },
++  /*  250 */ (__ev64_s8__) { 0xc3, 0xd3, 0x50, 0x69, 0x0a, 0x17, 0x80, 0x1f },
++  /*  251 */ (__ev64_s8__) { 0x5e, 0xc2, 0xbf, 0x00, 0x15, 0x67, 0x31, 0xa2 },
++  /*  252 */ (__ev64_s8__) { 0xd3, 0x38, 0xa1, 0x20, 0xc4, 0x36, 0x5d, 0x44 },
++  /*  253 */ (__ev64_s8__) { 0x48, 0x8b, 0x45, 0x35, 0xad, 0x0a, 0x7c, 0xe0 },
++  /*  254 */ (__ev64_s8__) { 0xee, 0xda, 0x05, 0xc9, 0xd1, 0xe9, 0x01, 0x43 },
++  /*  255 */ (__ev64_s8__) { 0x7f, 0xbb, 0x57, 0xa0, 0xb9, 0xc8, 0x31, 0x93 },
++
++};
++
++const __ev64_s8__ rB8s8[NELTS(rA8s8)] = {
++
++  /*    0 */ (__ev64_s8__) { 0xa0, 0x84, 0x38, 0x49, 0xff, 0xbe, 0x68, 0xbe },
++  /*    1 */ (__ev64_s8__) { 0xf7, 0xa6, 0x17, 0x6a, 0x1c, 0x1e, 0x19, 0x1e },
++  /*    2 */ (__ev64_s8__) { 0xaf, 0xd2, 0x2d, 0xd0, 0x27, 0x95, 0x3b, 0x9b },
++  /*    3 */ (__ev64_s8__) { 0x09, 0x49, 0x3c, 0x4a, 0x5f, 0x36, 0xb1, 0x64 },
++  /*    4 */ (__ev64_s8__) { 0x6f, 0x0f, 0x72, 0x75, 0x37, 0xa9, 0xc4, 0xf3 },
++  /*    5 */ (__ev64_s8__) { 0x2a, 0xc4, 0x7d, 0x65, 0x65, 0x8c, 0xee, 0xf4 },
++  /*    6 */ (__ev64_s8__) { 0x70, 0xfc, 0xc0, 0x9f, 0x66, 0xcc, 0x22, 0x89 },
++  /*    7 */ (__ev64_s8__) { 0xdd, 0x92, 0x4b, 0x05, 0x8f, 0x94, 0x04, 0xfe },
++  /*    8 */ (__ev64_s8__) { 0x8f, 0x4d, 0x34, 0x8b, 0x24, 0x6a, 0x0c, 0x64 },
++  /*    9 */ (__ev64_s8__) { 0xe1, 0x6b, 0xd9, 0x91, 0xb3, 0xaf, 0x8c, 0x5f },
++  /*   10 */ (__ev64_s8__) { 0xd1, 0x80, 0x2e, 0x8e, 0x13, 0xa8, 0x58, 0x32 },
++  /*   11 */ (__ev64_s8__) { 0x09, 0x19, 0xca, 0x56, 0xe0, 0x85, 0x6d, 0x0d },
++  /*   12 */ (__ev64_s8__) { 0xec, 0xf5, 0x91, 0x62, 0x0d, 0x2c, 0x71, 0x17 },
++  /*   13 */ (__ev64_s8__) { 0xe0, 0xff, 0x19, 0xec, 0x09, 0xc4, 0x20, 0xd0 },
++  /*   14 */ (__ev64_s8__) { 0xec, 0x55, 0x79, 0xa9, 0x0b, 0xbc, 0x71, 0xe2 },
++  /*   15 */ (__ev64_s8__) { 0xf9, 0xd5, 0xf4, 0xef, 0x4d, 0x9e, 0x22, 0xda },
++  /*   16 */ (__ev64_s8__) { 0x17, 0xf5, 0xe7, 0x76, 0xd6, 0xfc, 0x8f, 0xe7 },
++  /*   17 */ (__ev64_s8__) { 0xe8, 0x21, 0x81, 0xc4, 0xe8, 0xc4, 0x65, 0x86 },
++  /*   18 */ (__ev64_s8__) { 0x13, 0xdd, 0x18, 0x77, 0x53, 0x0b, 0x06, 0xd5 },
++  /*   19 */ (__ev64_s8__) { 0x4b, 0x07, 0x31, 0x67, 0xce, 0x34, 0x16, 0x31 },
++  /*   20 */ (__ev64_s8__) { 0xf1, 0xec, 0x5c, 0xa0, 0x9c, 0x03, 0xb0, 0xad },
++  /*   21 */ (__ev64_s8__) { 0xb7, 0x5d, 0x66, 0x6a, 0x1f, 0x4c, 0x58, 0xa5 },
++  /*   22 */ (__ev64_s8__) { 0x6c, 0xf1, 0x51, 0x33, 0x28, 0x00, 0xcd, 0xe4 },
++  /*   23 */ (__ev64_s8__) { 0xd1, 0xaa, 0xa4, 0x29, 0xf9, 0x57, 0x07, 0x67 },
++  /*   24 */ (__ev64_s8__) { 0xab, 0x4b, 0x34, 0x93, 0x5c, 0x0e, 0x9b, 0xa1 },
++  /*   25 */ (__ev64_s8__) { 0xbb, 0x59, 0xe4, 0x28, 0x05, 0x7b, 0x35, 0x64 },
++  /*   26 */ (__ev64_s8__) { 0x37, 0xd6, 0xa1, 0x8a, 0x2b, 0x52, 0x9c, 0xfe },
++  /*   27 */ (__ev64_s8__) { 0xb4, 0xa9, 0xca, 0xde, 0xec, 0x12, 0xc5, 0x04 },
++  /*   28 */ (__ev64_s8__) { 0x25, 0x17, 0x78, 0xd2, 0x28, 0xc6, 0x66, 0x3d },
++  /*   29 */ (__ev64_s8__) { 0x71, 0x53, 0x1c, 0x3d, 0xc2, 0x8f, 0x47, 0x2a },
++  /*   30 */ (__ev64_s8__) { 0x02, 0x5a, 0x20, 0x92, 0xfe, 0xcc, 0x07, 0x00 },
++  /*   31 */ (__ev64_s8__) { 0x90, 0x14, 0xf7, 0x1b, 0x6d, 0xbb, 0x64, 0x24 },
++  /*   32 */ (__ev64_s8__) { 0x8f, 0x53, 0x97, 0x13, 0xe0, 0xc6, 0xb2, 0xde },
++  /*   33 */ (__ev64_s8__) { 0xe6, 0xbe, 0xaa, 0x93, 0x19, 0x8f, 0xb7, 0x62 },
++  /*   34 */ (__ev64_s8__) { 0x7d, 0xb7, 0xdf, 0x03, 0x3b, 0x84, 0xdd, 0xd3 },
++  /*   35 */ (__ev64_s8__) { 0x6a, 0x33, 0x2c, 0xd3, 0xab, 0x6b, 0x9e, 0x4d },
++  /*   36 */ (__ev64_s8__) { 0x71, 0x2e, 0x22, 0xe2, 0x1d, 0x7e, 0xdf, 0x39 },
++  /*   37 */ (__ev64_s8__) { 0x1f, 0x16, 0x4f, 0xf8, 0xbc, 0x87, 0xe4, 0x69 },
++  /*   38 */ (__ev64_s8__) { 0x1b, 0x91, 0xe8, 0x58, 0xfb, 0x17, 0x98, 0x4c },
++  /*   39 */ (__ev64_s8__) { 0x45, 0x4b, 0xcb, 0xdd, 0xfc, 0x38, 0x0e, 0xe5 },
++  /*   40 */ (__ev64_s8__) { 0xfe, 0x27, 0x5d, 0x8e, 0x8e, 0xaa, 0x15, 0x35 },
++  /*   41 */ (__ev64_s8__) { 0xc8, 0x3d, 0x47, 0xfc, 0x53, 0xad, 0x89, 0x96 },
++  /*   42 */ (__ev64_s8__) { 0x1a, 0x79, 0xf2, 0xee, 0x12, 0x7c, 0xf4, 0x63 },
++  /*   43 */ (__ev64_s8__) { 0x8b, 0xcd, 0x41, 0xe1, 0xba, 0xa5, 0x12, 0xd7 },
++  /*   44 */ (__ev64_s8__) { 0x2f, 0xee, 0x89, 0x63, 0x65, 0x50, 0x5f, 0x60 },
++  /*   45 */ (__ev64_s8__) { 0x18, 0x0f, 0x59, 0xc1, 0x57, 0xe8, 0x7d, 0xf4 },
++  /*   46 */ (__ev64_s8__) { 0xbc, 0xc8, 0x38, 0xea, 0x2a, 0x0b, 0xbd, 0x7d },
++  /*   47 */ (__ev64_s8__) { 0x55, 0xf1, 0xf3, 0xae, 0xbe, 0x2e, 0x48, 0x37 },
++  /*   48 */ (__ev64_s8__) { 0x49, 0x10, 0x92, 0x73, 0xc3, 0x57, 0xb7, 0x13 },
++  /*   49 */ (__ev64_s8__) { 0x2c, 0x95, 0x28, 0x8c, 0x6a, 0xe0, 0x56, 0x66 },
++  /*   50 */ (__ev64_s8__) { 0x18, 0x4a, 0xce, 0xce, 0xcd, 0x09, 0x87, 0x39 },
++  /*   51 */ (__ev64_s8__) { 0xb0, 0x37, 0x50, 0x3c, 0x77, 0x43, 0x6d, 0x78 },
++  /*   52 */ (__ev64_s8__) { 0x81, 0x01, 0xf4, 0xe8, 0xde, 0x50, 0x6a, 0x0b },
++  /*   53 */ (__ev64_s8__) { 0x9d, 0xb0, 0xad, 0x72, 0xd6, 0xd8, 0xc8, 0x15 },
++  /*   54 */ (__ev64_s8__) { 0x8b, 0x39, 0xe8, 0xce, 0x0c, 0x87, 0x25, 0x7c },
++  /*   55 */ (__ev64_s8__) { 0xaa, 0xf3, 0xbf, 0x07, 0xe1, 0x46, 0x8d, 0xb6 },
++  /*   56 */ (__ev64_s8__) { 0xd9, 0x75, 0x27, 0x01, 0x85, 0x3e, 0xba, 0x30 },
++  /*   57 */ (__ev64_s8__) { 0xac, 0x18, 0x3e, 0xcd, 0xdd, 0x75, 0x2a, 0x54 },
++  /*   58 */ (__ev64_s8__) { 0xe1, 0x6e, 0x05, 0xed, 0x62, 0x80, 0x46, 0x26 },
++  /*   59 */ (__ev64_s8__) { 0x45, 0xaf, 0x98, 0xe3, 0xfb, 0xb3, 0xdd, 0xa0 },
++  /*   60 */ (__ev64_s8__) { 0x26, 0x57, 0x01, 0x61, 0x2d, 0xbd, 0x76, 0x90 },
++  /*   61 */ (__ev64_s8__) { 0x1c, 0xd5, 0x22, 0x56, 0x57, 0xa4, 0x4e, 0xd9 },
++  /*   62 */ (__ev64_s8__) { 0xb7, 0xf7, 0x4a, 0x09, 0x10, 0xb9, 0x40, 0x43 },
++  /*   63 */ (__ev64_s8__) { 0x6f, 0x15, 0x6e, 0x8b, 0xbb, 0xa0, 0x7b, 0xe1 },
++  /*   64 */ (__ev64_s8__) { 0x96, 0xa1, 0x3f, 0xb4, 0xa7, 0xf5, 0x46, 0x9b },
++  /*   65 */ (__ev64_s8__) { 0x57, 0x87, 0x2d, 0xe9, 0x27, 0xf7, 0x8a, 0x3a },
++  /*   66 */ (__ev64_s8__) { 0x75, 0x0a, 0xe5, 0xbf, 0x12, 0xad, 0x65, 0x69 },
++  /*   67 */ (__ev64_s8__) { 0x58, 0x18, 0x91, 0xe0, 0xe5, 0xcc, 0x2e, 0xfe },
++  /*   68 */ (__ev64_s8__) { 0x95, 0xfb, 0x9b, 0xac, 0xb4, 0xf9, 0x9e, 0xf8 },
++  /*   69 */ (__ev64_s8__) { 0xa4, 0x10, 0xcc, 0x43, 0xc9, 0x24, 0x25, 0x15 },
++  /*   70 */ (__ev64_s8__) { 0x0b, 0xc3, 0x05, 0xfd, 0xdb, 0x57, 0xf9, 0x65 },
++  /*   71 */ (__ev64_s8__) { 0x35, 0x73, 0x41, 0xe4, 0x2f, 0xff, 0x5e, 0x9d },
++  /*   72 */ (__ev64_s8__) { 0xe0, 0x59, 0xd9, 0x52, 0x4c, 0x6d, 0x31, 0x1c },
++  /*   73 */ (__ev64_s8__) { 0x6c, 0x3d, 0x7f, 0x47, 0x70, 0x0a, 0xad, 0x10 },
++  /*   74 */ (__ev64_s8__) { 0x55, 0x47, 0xcb, 0x9b, 0x88, 0xc8, 0xa7, 0xdd },
++  /*   75 */ (__ev64_s8__) { 0xa9, 0xaf, 0x57, 0x74, 0xa8, 0x47, 0x38, 0xf4 },
++  /*   76 */ (__ev64_s8__) { 0xcf, 0xfc, 0x07, 0xbb, 0xa8, 0x79, 0x85, 0xff },
++  /*   77 */ (__ev64_s8__) { 0xf8, 0xb7, 0xc8, 0x7e, 0xf3, 0x7a, 0x36, 0x4e },
++  /*   78 */ (__ev64_s8__) { 0x27, 0x68, 0xa0, 0x08, 0x76, 0x94, 0xeb, 0x6e },
++  /*   79 */ (__ev64_s8__) { 0x69, 0x00, 0x7e, 0xf6, 0xc2, 0x63, 0x06, 0x76 },
++  /*   80 */ (__ev64_s8__) { 0x48, 0x3b, 0x9f, 0xfc, 0xad, 0x48, 0x1d, 0x0e },
++  /*   81 */ (__ev64_s8__) { 0x9f, 0xe0, 0xce, 0x9c, 0xf0, 0x5c, 0xa9, 0x35 },
++  /*   82 */ (__ev64_s8__) { 0x7d, 0xfe, 0xb0, 0x8a, 0x85, 0x9a, 0x76, 0x88 },
++  /*   83 */ (__ev64_s8__) { 0x83, 0xc9, 0x4b, 0x5e, 0x47, 0xc2, 0x58, 0x19 },
++  /*   84 */ (__ev64_s8__) { 0x3b, 0x69, 0xcd, 0x67, 0xdc, 0x7e, 0x1e, 0x82 },
++  /*   85 */ (__ev64_s8__) { 0x27, 0x36, 0xd5, 0x8d, 0x8a, 0x74, 0x7c, 0xfa },
++  /*   86 */ (__ev64_s8__) { 0xc3, 0xaa, 0xb0, 0xd6, 0xc2, 0x9d, 0xcf, 0x01 },
++  /*   87 */ (__ev64_s8__) { 0x7b, 0x50, 0xe7, 0xcd, 0x64, 0x13, 0x02, 0xda },
++  /*   88 */ (__ev64_s8__) { 0xab, 0x84, 0x47, 0x5b, 0xbc, 0x4d, 0x53, 0xf7 },
++  /*   89 */ (__ev64_s8__) { 0x4e, 0x84, 0xf7, 0xeb, 0x48, 0x58, 0xd4, 0xd6 },
++  /*   90 */ (__ev64_s8__) { 0x6b, 0x43, 0xe6, 0x1c, 0x78, 0x59, 0x86, 0x7f },
++  /*   91 */ (__ev64_s8__) { 0x5c, 0xf0, 0x5c, 0x92, 0x32, 0xf7, 0xce, 0xae },
++  /*   92 */ (__ev64_s8__) { 0x85, 0xc2, 0xe7, 0x6e, 0x8a, 0xf4, 0x27, 0xa5 },
++  /*   93 */ (__ev64_s8__) { 0xfe, 0x3c, 0x79, 0x35, 0xdb, 0xf9, 0x9f, 0x35 },
++  /*   94 */ (__ev64_s8__) { 0xdd, 0x04, 0x74, 0xdc, 0x57, 0x9b, 0x4a, 0x2f },
++  /*   95 */ (__ev64_s8__) { 0xe9, 0xa6, 0x86, 0x35, 0x1b, 0xa1, 0x16, 0x1f },
++  /*   96 */ (__ev64_s8__) { 0x16, 0xc6, 0xde, 0x5f, 0x93, 0xed, 0xf5, 0x6d },
++  /*   97 */ (__ev64_s8__) { 0x82, 0xdb, 0xff, 0x3c, 0x47, 0xb0, 0x16, 0x9e },
++  /*   98 */ (__ev64_s8__) { 0xc3, 0xf3, 0xbc, 0x1e, 0x5f, 0xa2, 0x90, 0xa4 },
++  /*   99 */ (__ev64_s8__) { 0xd4, 0xb6, 0x71, 0xd5, 0x51, 0x5e, 0x5a, 0x61 },
++  /*  100 */ (__ev64_s8__) { 0x39, 0x40, 0xbb, 0x31, 0xf4, 0x99, 0x7c, 0xbf },
++  /*  101 */ (__ev64_s8__) { 0xfd, 0x66, 0x99, 0x6b, 0x45, 0xdd, 0xa3, 0xe1 },
++  /*  102 */ (__ev64_s8__) { 0x12, 0xf6, 0xbf, 0x06, 0xec, 0x9d, 0x0f, 0x24 },
++  /*  103 */ (__ev64_s8__) { 0xe8, 0x73, 0x88, 0xa2, 0x5d, 0x0e, 0x6e, 0xb4 },
++  /*  104 */ (__ev64_s8__) { 0xf3, 0xbd, 0x41, 0x26, 0x15, 0xc5, 0x50, 0xb2 },
++  /*  105 */ (__ev64_s8__) { 0x90, 0x00, 0x27, 0xea, 0x82, 0xd9, 0x4e, 0x11 },
++  /*  106 */ (__ev64_s8__) { 0x18, 0xaf, 0x4d, 0x8d, 0x56, 0x18, 0xc3, 0xef },
++  /*  107 */ (__ev64_s8__) { 0x4d, 0x97, 0x97, 0xbe, 0x8c, 0x44, 0x7d, 0x6b },
++  /*  108 */ (__ev64_s8__) { 0x7e, 0x75, 0x34, 0x26, 0x4f, 0x08, 0x71, 0xb4 },
++  /*  109 */ (__ev64_s8__) { 0xd3, 0x36, 0x9b, 0x0e, 0x4e, 0x15, 0xa0, 0xd0 },
++  /*  110 */ (__ev64_s8__) { 0x91, 0x4e, 0x97, 0x27, 0x6c, 0x58, 0x2a, 0x22 },
++  /*  111 */ (__ev64_s8__) { 0xc7, 0xe3, 0x01, 0x73, 0xf1, 0xc6, 0xc8, 0x65 },
++  /*  112 */ (__ev64_s8__) { 0x43, 0xd2, 0x4c, 0x44, 0x35, 0x5e, 0x32, 0x20 },
++  /*  113 */ (__ev64_s8__) { 0x21, 0x59, 0x70, 0x99, 0xac, 0x44, 0xdb, 0x50 },
++  /*  114 */ (__ev64_s8__) { 0x6a, 0x67, 0x18, 0x0e, 0x82, 0x28, 0x89, 0x05 },
++  /*  115 */ (__ev64_s8__) { 0xdd, 0xbe, 0x22, 0xba, 0xbb, 0x2f, 0x7a, 0x1e },
++  /*  116 */ (__ev64_s8__) { 0x08, 0xfc, 0xe9, 0x7d, 0x21, 0xc1, 0xbb, 0xbd },
++  /*  117 */ (__ev64_s8__) { 0xce, 0x72, 0xcb, 0x6e, 0x31, 0xe4, 0xb3, 0x49 },
++  /*  118 */ (__ev64_s8__) { 0x25, 0x7f, 0xbb, 0x63, 0xdf, 0xeb, 0x84, 0x21 },
++  /*  119 */ (__ev64_s8__) { 0x3d, 0x1f, 0x32, 0x8f, 0x25, 0x2a, 0x51, 0x90 },
++  /*  120 */ (__ev64_s8__) { 0xb3, 0xf1, 0x94, 0x53, 0x72, 0xd5, 0xb3, 0xe4 },
++  /*  121 */ (__ev64_s8__) { 0x7a, 0x03, 0x1b, 0xb5, 0xb4, 0x69, 0x93, 0x11 },
++  /*  122 */ (__ev64_s8__) { 0xa2, 0x65, 0x6c, 0xfb, 0x3d, 0x56, 0x18, 0x1c },
++  /*  123 */ (__ev64_s8__) { 0x32, 0x20, 0x57, 0x71, 0xff, 0x79, 0x3c, 0x68 },
++  /*  124 */ (__ev64_s8__) { 0x0c, 0xdd, 0xf7, 0x0b, 0xe7, 0x7b, 0x26, 0x0a },
++  /*  125 */ (__ev64_s8__) { 0x72, 0x8b, 0x4a, 0xbf, 0x21, 0xb4, 0xf1, 0x9c },
++  /*  126 */ (__ev64_s8__) { 0x29, 0xa1, 0xff, 0x9a, 0x7b, 0x14, 0x9d, 0x8a },
++  /*  127 */ (__ev64_s8__) { 0xaa, 0x2a, 0x64, 0x99, 0x4b, 0x80, 0x9c, 0x62 },
++  /*  128 */ (__ev64_s8__) { 0x67, 0x21, 0x48, 0xc0, 0xac, 0x21, 0x34, 0x8c },
++  /*  129 */ (__ev64_s8__) { 0x08, 0x38, 0x67, 0xb7, 0x68, 0xcb, 0x62, 0xdc },
++  /*  130 */ (__ev64_s8__) { 0x1c, 0x3e, 0x2e, 0xa2, 0xa6, 0x6f, 0x07, 0xf1 },
++  /*  131 */ (__ev64_s8__) { 0x40, 0x03, 0xcb, 0xe6, 0x00, 0x9b, 0x10, 0x17 },
++  /*  132 */ (__ev64_s8__) { 0x57, 0x22, 0x1f, 0x01, 0x1d, 0x1d, 0x61, 0x19 },
++  /*  133 */ (__ev64_s8__) { 0x2c, 0xb3, 0x1b, 0xd7, 0x1f, 0xe1, 0x8b, 0x69 },
++  /*  134 */ (__ev64_s8__) { 0x9b, 0xe0, 0xb4, 0x10, 0x11, 0xc1, 0xa6, 0xa2 },
++  /*  135 */ (__ev64_s8__) { 0x05, 0x1c, 0xd5, 0x5c, 0x65, 0x29, 0x69, 0x69 },
++  /*  136 */ (__ev64_s8__) { 0xa3, 0x6b, 0x07, 0xdf, 0x90, 0xf2, 0x89, 0x38 },
++  /*  137 */ (__ev64_s8__) { 0x77, 0x4b, 0x92, 0x31, 0x8c, 0xdd, 0xb7, 0xbb },
++  /*  138 */ (__ev64_s8__) { 0x40, 0x43, 0x66, 0x2d, 0x50, 0x61, 0xdb, 0x1e },
++  /*  139 */ (__ev64_s8__) { 0x31, 0x9d, 0xd8, 0x0f, 0xe8, 0xf1, 0x9b, 0xfe },
++  /*  140 */ (__ev64_s8__) { 0xf8, 0x62, 0xda, 0x90, 0x33, 0x34, 0x6d, 0xa6 },
++  /*  141 */ (__ev64_s8__) { 0xa1, 0x09, 0xc8, 0x2e, 0x4e, 0x46, 0xbe, 0x9c },
++  /*  142 */ (__ev64_s8__) { 0xa6, 0x97, 0x48, 0x09, 0x3e, 0xd9, 0x29, 0x3e },
++  /*  143 */ (__ev64_s8__) { 0xa3, 0x3d, 0x0b, 0xeb, 0xbc, 0xc2, 0x56, 0xe9 },
++  /*  144 */ (__ev64_s8__) { 0xf2, 0x07, 0xc8, 0x5e, 0x77, 0x53, 0xe4, 0x5e },
++  /*  145 */ (__ev64_s8__) { 0x80, 0x24, 0x57, 0x6e, 0xc7, 0x03, 0xf4, 0x48 },
++  /*  146 */ (__ev64_s8__) { 0xab, 0x19, 0x3a, 0x0c, 0x14, 0x18, 0xe6, 0xc0 },
++  /*  147 */ (__ev64_s8__) { 0x5f, 0x5b, 0x1b, 0xea, 0x57, 0x7a, 0xd8, 0xb5 },
++  /*  148 */ (__ev64_s8__) { 0xdd, 0x18, 0xb8, 0xda, 0xfc, 0xf5, 0x73, 0x5d },
++  /*  149 */ (__ev64_s8__) { 0x71, 0xdc, 0x88, 0x59, 0x13, 0xf7, 0x7a, 0x8f },
++  /*  150 */ (__ev64_s8__) { 0xb6, 0xc5, 0x46, 0x62, 0xaa, 0x1c, 0x8a, 0x51 },
++  /*  151 */ (__ev64_s8__) { 0xa8, 0x83, 0xc0, 0xcd, 0xff, 0x1d, 0xe4, 0x8c },
++  /*  152 */ (__ev64_s8__) { 0x06, 0xca, 0x77, 0xf5, 0x37, 0x18, 0x0f, 0x15 },
++  /*  153 */ (__ev64_s8__) { 0xbf, 0x8b, 0x70, 0x9f, 0x96, 0x9e, 0xc8, 0xcb },
++  /*  154 */ (__ev64_s8__) { 0xd6, 0x5b, 0xd1, 0x44, 0xd8, 0xe4, 0x92, 0x6b },
++  /*  155 */ (__ev64_s8__) { 0xca, 0xf6, 0x30, 0x98, 0x84, 0x6f, 0xbc, 0xd7 },
++  /*  156 */ (__ev64_s8__) { 0xb9, 0x56, 0xab, 0x3e, 0x5e, 0x99, 0xc4, 0x3d },
++  /*  157 */ (__ev64_s8__) { 0x17, 0xb6, 0x20, 0x50, 0x78, 0x45, 0x4f, 0x73 },
++  /*  158 */ (__ev64_s8__) { 0x0d, 0x17, 0xa8, 0xc9, 0xd8, 0xb5, 0xea, 0x9c },
++  /*  159 */ (__ev64_s8__) { 0x88, 0x0a, 0x51, 0x8d, 0x2d, 0xe4, 0x22, 0x79 },
++  /*  160 */ (__ev64_s8__) { 0x97, 0xc5, 0xce, 0x35, 0x16, 0xde, 0xf3, 0x99 },
++  /*  161 */ (__ev64_s8__) { 0xbe, 0x0f, 0xac, 0xef, 0x2e, 0xc7, 0xa3, 0x5c },
++  /*  162 */ (__ev64_s8__) { 0x26, 0x57, 0x0f, 0x99, 0x10, 0xa8, 0x74, 0xc1 },
++  /*  163 */ (__ev64_s8__) { 0x47, 0xd1, 0xdc, 0x79, 0x46, 0x46, 0xee, 0x86 },
++  /*  164 */ (__ev64_s8__) { 0xf0, 0x63, 0x13, 0xc4, 0xfe, 0x93, 0xff, 0x7e },
++  /*  165 */ (__ev64_s8__) { 0xcb, 0xe4, 0xe4, 0x41, 0xc9, 0x18, 0x2a, 0x9d },
++  /*  166 */ (__ev64_s8__) { 0x92, 0x66, 0x23, 0xb0, 0x9f, 0x79, 0x1c, 0x98 },
++  /*  167 */ (__ev64_s8__) { 0x78, 0x02, 0x09, 0xde, 0x89, 0x2b, 0x62, 0xbc },
++  /*  168 */ (__ev64_s8__) { 0x87, 0xa0, 0x9d, 0xdd, 0xf0, 0x4a, 0xb7, 0x98 },
++  /*  169 */ (__ev64_s8__) { 0xc3, 0x94, 0x64, 0x65, 0x9f, 0xcf, 0x0d, 0xc1 },
++  /*  170 */ (__ev64_s8__) { 0x07, 0x46, 0x21, 0x72, 0x84, 0xf7, 0xe1, 0xa7 },
++  /*  171 */ (__ev64_s8__) { 0x97, 0xf6, 0x07, 0xad, 0x46, 0xdf, 0x14, 0x81 },
++  /*  172 */ (__ev64_s8__) { 0x2d, 0xf0, 0x0d, 0x57, 0x6f, 0xcc, 0xb6, 0x32 },
++  /*  173 */ (__ev64_s8__) { 0x84, 0x25, 0x5c, 0xeb, 0xfe, 0x52, 0x8a, 0xc7 },
++  /*  174 */ (__ev64_s8__) { 0x39, 0xd3, 0xee, 0xfd, 0x0a, 0xf8, 0xde, 0xa0 },
++  /*  175 */ (__ev64_s8__) { 0x5f, 0x54, 0xe3, 0xa1, 0xab, 0x57, 0xbe, 0x14 },
++  /*  176 */ (__ev64_s8__) { 0x32, 0x70, 0x46, 0xbd, 0xcb, 0xf5, 0x92, 0x87 },
++  /*  177 */ (__ev64_s8__) { 0xb4, 0x3f, 0x05, 0x79, 0x0e, 0xa9, 0xdb, 0x45 },
++  /*  178 */ (__ev64_s8__) { 0x12, 0x9f, 0x03, 0xf6, 0x38, 0x98, 0xd6, 0x9f },
++  /*  179 */ (__ev64_s8__) { 0x67, 0x61, 0xd3, 0x1a, 0x45, 0x19, 0xb1, 0x77 },
++  /*  180 */ (__ev64_s8__) { 0xbd, 0x73, 0x7c, 0xc5, 0x93, 0xc7, 0x32, 0xa1 },
++  /*  181 */ (__ev64_s8__) { 0x73, 0x51, 0xa3, 0x58, 0x59, 0x22, 0xd9, 0x80 },
++  /*  182 */ (__ev64_s8__) { 0x1e, 0xc1, 0x11, 0x6f, 0x36, 0xcd, 0xda, 0x8e },
++  /*  183 */ (__ev64_s8__) { 0xb6, 0x49, 0xda, 0x08, 0xa5, 0x57, 0xfb, 0x76 },
++  /*  184 */ (__ev64_s8__) { 0x06, 0x8b, 0x47, 0xb3, 0x85, 0x2e, 0x49, 0xf3 },
++  /*  185 */ (__ev64_s8__) { 0xc9, 0xca, 0xb7, 0xb2, 0xa5, 0x89, 0x75, 0xa8 },
++  /*  186 */ (__ev64_s8__) { 0x20, 0x5d, 0x43, 0x82, 0xb2, 0xf5, 0x65, 0x85 },
++  /*  187 */ (__ev64_s8__) { 0xd6, 0x10, 0x58, 0x2f, 0xc0, 0xe7, 0xc9, 0xc8 },
++  /*  188 */ (__ev64_s8__) { 0xe8, 0xd6, 0x6f, 0x65, 0x9c, 0xb8, 0x3e, 0x8f },
++  /*  189 */ (__ev64_s8__) { 0xad, 0x0a, 0xa5, 0x07, 0x56, 0x1a, 0x51, 0x2f },
++  /*  190 */ (__ev64_s8__) { 0xf6, 0x2e, 0xdd, 0x10, 0x5c, 0x3a, 0xea, 0x61 },
++  /*  191 */ (__ev64_s8__) { 0x32, 0x92, 0x72, 0xe8, 0x1f, 0xe7, 0xaf, 0xc8 },
++  /*  192 */ (__ev64_s8__) { 0x9f, 0xf3, 0x80, 0xa1, 0x4c, 0x25, 0x3f, 0x7c },
++  /*  193 */ (__ev64_s8__) { 0xf3, 0xdf, 0x93, 0xb2, 0x2e, 0x8a, 0x12, 0xd5 },
++  /*  194 */ (__ev64_s8__) { 0x5a, 0x30, 0xf6, 0x7b, 0xe5, 0xde, 0x1e, 0x72 },
++  /*  195 */ (__ev64_s8__) { 0x93, 0xae, 0xe8, 0x3d, 0x78, 0x85, 0xb0, 0xd2 },
++  /*  196 */ (__ev64_s8__) { 0x56, 0x32, 0xac, 0x19, 0xeb, 0x8c, 0x45, 0xcb },
++  /*  197 */ (__ev64_s8__) { 0xf3, 0xd7, 0xb3, 0x11, 0x1d, 0x23, 0x77, 0x86 },
++  /*  198 */ (__ev64_s8__) { 0x6a, 0xa5, 0x52, 0xf0, 0x44, 0xad, 0x94, 0x65 },
++  /*  199 */ (__ev64_s8__) { 0x92, 0x3d, 0x7e, 0xea, 0x24, 0x28, 0xf7, 0x2f },
++  /*  200 */ (__ev64_s8__) { 0x4a, 0x62, 0xe8, 0xbc, 0xa9, 0x48, 0x80, 0x12 },
++  /*  201 */ (__ev64_s8__) { 0xea, 0x14, 0x4d, 0x09, 0x7c, 0xc3, 0xe5, 0xeb },
++  /*  202 */ (__ev64_s8__) { 0xfd, 0x12, 0xdb, 0xd1, 0x2e, 0xcb, 0xbe, 0x77 },
++  /*  203 */ (__ev64_s8__) { 0xbd, 0x37, 0xef, 0x5a, 0xf5, 0x21, 0x89, 0x5e },
++  /*  204 */ (__ev64_s8__) { 0x98, 0x52, 0x85, 0xad, 0xe7, 0x2d, 0xda, 0x5c },
++  /*  205 */ (__ev64_s8__) { 0x0b, 0x88, 0x6a, 0x99, 0x6b, 0x92, 0x39, 0xa0 },
++  /*  206 */ (__ev64_s8__) { 0xe7, 0x5f, 0x63, 0x59, 0x5b, 0x4f, 0xaf, 0xa4 },
++  /*  207 */ (__ev64_s8__) { 0x2a, 0x5c, 0x0f, 0x5d, 0x57, 0x20, 0x41, 0x5d },
++  /*  208 */ (__ev64_s8__) { 0x88, 0x6c, 0xd5, 0x60, 0x79, 0x5d, 0x23, 0xa2 },
++  /*  209 */ (__ev64_s8__) { 0xf1, 0x54, 0xdb, 0x19, 0x8a, 0xe2, 0x84, 0x65 },
++  /*  210 */ (__ev64_s8__) { 0xa3, 0x27, 0x9f, 0xfd, 0x20, 0xb1, 0x7c, 0x20 },
++  /*  211 */ (__ev64_s8__) { 0x16, 0xb5, 0x1a, 0x1c, 0xd7, 0xeb, 0x4d, 0x8e },
++  /*  212 */ (__ev64_s8__) { 0x8f, 0xd7, 0xeb, 0x69, 0x99, 0x3b, 0xec, 0x05 },
++  /*  213 */ (__ev64_s8__) { 0x8c, 0xe5, 0xc7, 0x14, 0xdc, 0xd9, 0x94, 0x3f },
++  /*  214 */ (__ev64_s8__) { 0x1e, 0x77, 0xa9, 0x22, 0xee, 0xe0, 0x1e, 0x19 },
++  /*  215 */ (__ev64_s8__) { 0xea, 0x3a, 0x3d, 0xb1, 0x47, 0xee, 0xd1, 0x2e },
++  /*  216 */ (__ev64_s8__) { 0xa9, 0x88, 0x86, 0xa2, 0x80, 0x6d, 0x3f, 0x64 },
++  /*  217 */ (__ev64_s8__) { 0xcb, 0x81, 0xbc, 0xa3, 0xcc, 0xd2, 0x0e, 0x37 },
++  /*  218 */ (__ev64_s8__) { 0x70, 0x9f, 0xdf, 0xe4, 0x22, 0x5a, 0x15, 0xcf },
++  /*  219 */ (__ev64_s8__) { 0x77, 0x00, 0x82, 0xa7, 0xf6, 0x90, 0x8c, 0x7d },
++  /*  220 */ (__ev64_s8__) { 0x3d, 0xf5, 0xd9, 0x76, 0x3c, 0xc6, 0x4b, 0x06 },
++  /*  221 */ (__ev64_s8__) { 0x1e, 0x06, 0x84, 0x7a, 0x4a, 0x08, 0xd8, 0x92 },
++  /*  222 */ (__ev64_s8__) { 0x02, 0xb2, 0x06, 0xaa, 0x3a, 0x48, 0xe8, 0x39 },
++  /*  223 */ (__ev64_s8__) { 0x5b, 0x46, 0xa9, 0xd6, 0x38, 0x09, 0x88, 0x75 },
++  /*  224 */ (__ev64_s8__) { 0x8f, 0x69, 0x0d, 0x92, 0x2a, 0xbb, 0xde, 0x28 },
++  /*  225 */ (__ev64_s8__) { 0x36, 0x34, 0xd1, 0x17, 0xa4, 0x61, 0x71, 0xb7 },
++  /*  226 */ (__ev64_s8__) { 0xb9, 0x17, 0x59, 0x31, 0x60, 0xc3, 0xdd, 0xd1 },
++  /*  227 */ (__ev64_s8__) { 0x21, 0xad, 0xd3, 0x76, 0xa3, 0xe5, 0xc4, 0xfd },
++  /*  228 */ (__ev64_s8__) { 0xf2, 0x0b, 0xd5, 0x27, 0xdb, 0xb7, 0x8d, 0xa0 },
++  /*  229 */ (__ev64_s8__) { 0xf8, 0xec, 0xc1, 0xbf, 0xa2, 0xb1, 0x86, 0xbb },
++  /*  230 */ (__ev64_s8__) { 0x29, 0x9b, 0x45, 0x50, 0x6b, 0x12, 0x34, 0x11 },
++  /*  231 */ (__ev64_s8__) { 0x40, 0x46, 0xb6, 0xea, 0x7a, 0x54, 0x39, 0x7e },
++  /*  232 */ (__ev64_s8__) { 0xbc, 0x57, 0xd3, 0xdf, 0xbc, 0xdd, 0x20, 0x24 },
++  /*  233 */ (__ev64_s8__) { 0x9b, 0x83, 0xdd, 0x91, 0x74, 0x3f, 0x13, 0xe1 },
++  /*  234 */ (__ev64_s8__) { 0x87, 0x07, 0xab, 0x6e, 0x65, 0x52, 0x97, 0x72 },
++  /*  235 */ (__ev64_s8__) { 0xdb, 0x67, 0x23, 0x97, 0xa5, 0x25, 0x0c, 0x21 },
++  /*  236 */ (__ev64_s8__) { 0xfc, 0x67, 0x9b, 0x3a, 0x76, 0x44, 0x8b, 0x11 },
++  /*  237 */ (__ev64_s8__) { 0x26, 0x71, 0xd7, 0x52, 0xaa, 0x4e, 0xa5, 0x21 },
++  /*  238 */ (__ev64_s8__) { 0xa4, 0x1e, 0x1b, 0x83, 0x36, 0xeb, 0x79, 0xc7 },
++  /*  239 */ (__ev64_s8__) { 0x3b, 0x68, 0x8f, 0x95, 0x10, 0xea, 0xd2, 0x47 },
++  /*  240 */ (__ev64_s8__) { 0x3d, 0xf3, 0xfb, 0x70, 0x1a, 0xe7, 0xa6, 0xf5 },
++  /*  241 */ (__ev64_s8__) { 0xbf, 0x93, 0xb2, 0x69, 0x60, 0x94, 0x4a, 0xa6 },
++  /*  242 */ (__ev64_s8__) { 0x97, 0x83, 0x2b, 0xec, 0x60, 0xf7, 0x95, 0x88 },
++  /*  243 */ (__ev64_s8__) { 0xe6, 0x50, 0xa7, 0xb5, 0xb7, 0x17, 0x9b, 0x31 },
++  /*  244 */ (__ev64_s8__) { 0x25, 0xdd, 0x27, 0x89, 0x53, 0xfd, 0x8c, 0x5e },
++  /*  245 */ (__ev64_s8__) { 0xfa, 0x94, 0x5e, 0x8f, 0x80, 0xcb, 0x52, 0x57 },
++  /*  246 */ (__ev64_s8__) { 0x23, 0xe6, 0x63, 0x06, 0x3b, 0xe5, 0xc3, 0xd0 },
++  /*  247 */ (__ev64_s8__) { 0x99, 0xea, 0xf7, 0xe1, 0xcd, 0x9a, 0x72, 0x47 },
++  /*  248 */ (__ev64_s8__) { 0x9e, 0x1b, 0xf7, 0xd7, 0xfd, 0x33, 0x91, 0x68 },
++  /*  249 */ (__ev64_s8__) { 0x64, 0x81, 0xbd, 0x28, 0x1c, 0x0f, 0x94, 0x89 },
++  /*  250 */ (__ev64_s8__) { 0x58, 0x59, 0xa8, 0xf1, 0x86, 0x62, 0x7f, 0x9b },
++  /*  251 */ (__ev64_s8__) { 0x48, 0x5e, 0x14, 0x67, 0xa1, 0xe9, 0x86, 0xbf },
++  /*  252 */ (__ev64_s8__) { 0x68, 0xc2, 0x81, 0x59, 0x29, 0x9a, 0x33, 0xfb },
++  /*  253 */ (__ev64_s8__) { 0xc4, 0x01, 0x4f, 0xe7, 0x26, 0xf0, 0x82, 0x4f },
++  /*  254 */ (__ev64_s8__) { 0xe7, 0x9f, 0xb8, 0x4a, 0x3d, 0x2f, 0x7d, 0xff },
++  /*  255 */ (__ev64_s8__) { 0x43, 0x22, 0x9b, 0x92, 0xc1, 0x95, 0x81, 0x6e },
++
++};
++
++__ev64_s8__ rD8s8[NELTS(rA8s8)];
++
++#endif
++
++const __ev64_u16__ rA4u16[] = {
++
++  /*    0 */ (__ev64_u16__) { 0xcad3, 0xeb6b, 0x92f7, 0x5b92 },
++  /*    1 */ (__ev64_u16__) { 0x37f6, 0xeb93, 0x4247, 0x5e6f },
++  /*    2 */ (__ev64_u16__) { 0x671a, 0xe98c, 0x3d2b, 0x5c92 },
++  /*    3 */ (__ev64_u16__) { 0x10ce, 0x3890, 0xe798, 0xec14 },
++  /*    4 */ (__ev64_u16__) { 0xf5c6, 0x7f0b, 0x3adc, 0x7a13 },
++  /*    5 */ (__ev64_u16__) { 0x0893, 0x4a48, 0xe2ac, 0x6f3b },
++  /*    6 */ (__ev64_u16__) { 0xd6ad, 0x3fd4, 0x378e, 0xd4d6 },
++  /*    7 */ (__ev64_u16__) { 0x7946, 0x890f, 0x73a7, 0x65a5 },
++  /*    8 */ (__ev64_u16__) { 0x5c49, 0x36c6, 0xae13, 0x064c },
++  /*    9 */ (__ev64_u16__) { 0xdf3b, 0x9712, 0xc5f1, 0x47ea },
++  /*   10 */ (__ev64_u16__) { 0xfba2, 0x1fd1, 0x66a0, 0x5285 },
++  /*   11 */ (__ev64_u16__) { 0x43e6, 0xe414, 0xa15a, 0x0486 },
++  /*   12 */ (__ev64_u16__) { 0x62d2, 0x80e2, 0xe37e, 0xb999 },
++  /*   13 */ (__ev64_u16__) { 0x72de, 0xe0d7, 0x8d98, 0x0d98 },
++  /*   14 */ (__ev64_u16__) { 0xcc91, 0xc0f4, 0xd666, 0x4868 },
++  /*   15 */ (__ev64_u16__) { 0x6803, 0x7bf0, 0xd6eb, 0x0814 },
++  /*   16 */ (__ev64_u16__) { 0xcd95, 0x8bc4, 0xd2d5, 0x731d },
++  /*   17 */ (__ev64_u16__) { 0x53f1, 0x5e4e, 0x2c1b, 0x86d2 },
++  /*   18 */ (__ev64_u16__) { 0xf5b8, 0x182f, 0x8e74, 0x508a },
++  /*   19 */ (__ev64_u16__) { 0x0f81, 0xb5ef, 0x530b, 0x35c7 },
++  /*   20 */ (__ev64_u16__) { 0x29e0, 0xbff3, 0x3f6e, 0xcfb2 },
++  /*   21 */ (__ev64_u16__) { 0x4998, 0xe159, 0x5dc8, 0x8005 },
++  /*   22 */ (__ev64_u16__) { 0x34eb, 0xf8de, 0xe75f, 0x7a73 },
++  /*   23 */ (__ev64_u16__) { 0x7a73, 0x0ee7, 0x8360, 0xb2fc },
++  /*   24 */ (__ev64_u16__) { 0xed7b, 0x737a, 0x4835, 0x675c },
++  /*   25 */ (__ev64_u16__) { 0x88d7, 0xa6c2, 0x0fa0, 0xe5cd },
++  /*   26 */ (__ev64_u16__) { 0x584b, 0xfcd6, 0x69b3, 0xdb46 },
++  /*   27 */ (__ev64_u16__) { 0xedfc, 0xe11b, 0x8ac4, 0x3646 },
++  /*   28 */ (__ev64_u16__) { 0xf6e8, 0xb0eb, 0x120a, 0xd2c8 },
++  /*   29 */ (__ev64_u16__) { 0xc3d4, 0xd52b, 0x0045, 0x3f31 },
++  /*   30 */ (__ev64_u16__) { 0x6305, 0x8a7d, 0x7878, 0x3477 },
++  /*   31 */ (__ev64_u16__) { 0xef09, 0xb08b, 0x5d24, 0x1084 },
++  /*   32 */ (__ev64_u16__) { 0xeef6, 0x66ce, 0x2af6, 0x7251 },
++  /*   33 */ (__ev64_u16__) { 0x1d69, 0x3508, 0xb58c, 0x3fda },
++  /*   34 */ (__ev64_u16__) { 0x640a, 0xf72e, 0xd025, 0x609d },
++  /*   35 */ (__ev64_u16__) { 0x1dc2, 0x4180, 0xea63, 0xb26f },
++  /*   36 */ (__ev64_u16__) { 0x9b11, 0xa312, 0x43b9, 0x8c88 },
++  /*   37 */ (__ev64_u16__) { 0xa1ae, 0x54bc, 0x4d6a, 0x1fe4 },
++  /*   38 */ (__ev64_u16__) { 0x4f91, 0x24d6, 0x9c6a, 0xec72 },
++  /*   39 */ (__ev64_u16__) { 0x70fb, 0x897c, 0xfba9, 0x2cbd },
++  /*   40 */ (__ev64_u16__) { 0x8e78, 0x8727, 0xb92b, 0x0d39 },
++  /*   41 */ (__ev64_u16__) { 0x91bd, 0xf0a8, 0x8791, 0xfb2c },
++  /*   42 */ (__ev64_u16__) { 0x3ecc, 0x1cd2, 0x1afb, 0x2479 },
++  /*   43 */ (__ev64_u16__) { 0x5c9d, 0x2e2d, 0x8d83, 0xf279 },
++  /*   44 */ (__ev64_u16__) { 0xd3d3, 0x90b0, 0x30e9, 0x49fd },
++  /*   45 */ (__ev64_u16__) { 0x9398, 0x0cc2, 0xf52b, 0x47a6 },
++  /*   46 */ (__ev64_u16__) { 0x4aad, 0x99c3, 0xf3a3, 0x7aa5 },
++  /*   47 */ (__ev64_u16__) { 0x739a, 0x8b55, 0x8ea7, 0x5e0c },
++  /*   48 */ (__ev64_u16__) { 0x26a4, 0x8f30, 0x3b57, 0xecf2 },
++  /*   49 */ (__ev64_u16__) { 0x1aa5, 0x216e, 0xdc41, 0x779e },
++  /*   50 */ (__ev64_u16__) { 0xf9bd, 0x04aa, 0xaf39, 0x89ec },
++  /*   51 */ (__ev64_u16__) { 0xaa35, 0x40dd, 0x52ad, 0xe311 },
++  /*   52 */ (__ev64_u16__) { 0xd818, 0x1a29, 0xd773, 0xd4fb },
++  /*   53 */ (__ev64_u16__) { 0x1064, 0xf65c, 0x2f96, 0x40c0 },
++  /*   54 */ (__ev64_u16__) { 0x6e2d, 0x58fb, 0xb4ed, 0x22f6 },
++  /*   55 */ (__ev64_u16__) { 0xc42a, 0xf6d6, 0x26fd, 0xd644 },
++  /*   56 */ (__ev64_u16__) { 0x87e3, 0xa6eb, 0xa61f, 0x2d75 },
++  /*   57 */ (__ev64_u16__) { 0xa874, 0xc615, 0x71a8, 0xf74e },
++  /*   58 */ (__ev64_u16__) { 0x04c0, 0x066e, 0xb673, 0xb484 },
++  /*   59 */ (__ev64_u16__) { 0x6657, 0x4240, 0xae03, 0xb04d },
++  /*   60 */ (__ev64_u16__) { 0xb8f4, 0x070c, 0x8983, 0x4678 },
++  /*   61 */ (__ev64_u16__) { 0x50e9, 0x464e, 0x373c, 0x19ff },
++  /*   62 */ (__ev64_u16__) { 0x4cd0, 0x79cf, 0xafeb, 0x5343 },
++  /*   63 */ (__ev64_u16__) { 0x2182, 0xc3dd, 0x22b9, 0xa48a },
++  /*   64 */ (__ev64_u16__) { 0x95dd, 0x128a, 0x208e, 0x2455 },
++  /*   65 */ (__ev64_u16__) { 0x97de, 0x278a, 0xb0e1, 0x2457 },
++  /*   66 */ (__ev64_u16__) { 0x2b9d, 0x0a36, 0x4c31, 0x6582 },
++  /*   67 */ (__ev64_u16__) { 0x637b, 0x88f0, 0xb4d9, 0xe4c3 },
++  /*   68 */ (__ev64_u16__) { 0x2253, 0x82b4, 0x0138, 0x6104 },
++  /*   69 */ (__ev64_u16__) { 0xcf5f, 0x5d3f, 0x4674, 0x1a26 },
++  /*   70 */ (__ev64_u16__) { 0x525c, 0x30ff, 0x39fd, 0x71b8 },
++  /*   71 */ (__ev64_u16__) { 0x0a4b, 0x79cf, 0x8d49, 0xcbaf },
++  /*   72 */ (__ev64_u16__) { 0x287d, 0xe2f5, 0xfa78, 0xe3f3 },
++  /*   73 */ (__ev64_u16__) { 0xea0c, 0x4ea0, 0xa02d, 0xbb9a },
++  /*   74 */ (__ev64_u16__) { 0x9988, 0x8969, 0x1ac0, 0x4891 },
++  /*   75 */ (__ev64_u16__) { 0xc75c, 0xfbe3, 0x1bf5, 0xa001 },
++  /*   76 */ (__ev64_u16__) { 0x2084, 0xe9d6, 0xe370, 0xb146 },
++  /*   77 */ (__ev64_u16__) { 0x6b8d, 0x780d, 0x4be2, 0xba30 },
++  /*   78 */ (__ev64_u16__) { 0x7afa, 0x3ac1, 0xd879, 0x8d4d },
++  /*   79 */ (__ev64_u16__) { 0x936f, 0xd9c5, 0x9efa, 0xdb51 },
++  /*   80 */ (__ev64_u16__) { 0x1b4f, 0xe5c5, 0x8e52, 0x6f01 },
++  /*   81 */ (__ev64_u16__) { 0x329e, 0xc95f, 0xd59c, 0x88cc },
++  /*   82 */ (__ev64_u16__) { 0x1907, 0x6761, 0x1746, 0xdd84 },
++  /*   83 */ (__ev64_u16__) { 0x38e2, 0xc828, 0x99e4, 0xfde7 },
++  /*   84 */ (__ev64_u16__) { 0x5517, 0xdaa7, 0x474d, 0x5c6c },
++  /*   85 */ (__ev64_u16__) { 0x0d93, 0x9822, 0xb21d, 0x5945 },
++  /*   86 */ (__ev64_u16__) { 0x3206, 0xed1e, 0xb4d7, 0xff4b },
++  /*   87 */ (__ev64_u16__) { 0xaab8, 0xe681, 0x443a, 0x5b28 },
++  /*   88 */ (__ev64_u16__) { 0x008f, 0x4f08, 0x78e6, 0xfcd3 },
++  /*   89 */ (__ev64_u16__) { 0x6ee4, 0x5c8f, 0xc2f3, 0x2fe4 },
++  /*   90 */ (__ev64_u16__) { 0xaaf7, 0x2573, 0xa915, 0x038c },
++  /*   91 */ (__ev64_u16__) { 0x262e, 0x8c72, 0xc80c, 0xb334 },
++  /*   92 */ (__ev64_u16__) { 0x6022, 0x3e58, 0x51d5, 0x003a },
++  /*   93 */ (__ev64_u16__) { 0x0e74, 0xcb0d, 0x274c, 0x67e8 },
++  /*   94 */ (__ev64_u16__) { 0xbb44, 0x4c6e, 0x76ed, 0x9577 },
++  /*   95 */ (__ev64_u16__) { 0x6ef5, 0xeb15, 0xe5f7, 0x3dad },
++  /*   96 */ (__ev64_u16__) { 0xa547, 0x8c0a, 0x6b50, 0xd5c3 },
++  /*   97 */ (__ev64_u16__) { 0xfe03, 0x41eb, 0x7fbe, 0xdfdd },
++  /*   98 */ (__ev64_u16__) { 0x71e2, 0x499d, 0xbe21, 0xa6cc },
++  /*   99 */ (__ev64_u16__) { 0xd396, 0x85bd, 0xe35a, 0xa6e3 },
++  /*  100 */ (__ev64_u16__) { 0x3c74, 0xb99b, 0x5262, 0x2575 },
++  /*  101 */ (__ev64_u16__) { 0x70dc, 0xb1d4, 0x3323, 0x0614 },
++  /*  102 */ (__ev64_u16__) { 0xb8bd, 0x9f17, 0x4ce9, 0x3a94 },
++  /*  103 */ (__ev64_u16__) { 0x01b2, 0xbd1e, 0x1218, 0xa8b8 },
++  /*  104 */ (__ev64_u16__) { 0x4ca3, 0x945e, 0x5ecc, 0xcacf },
++  /*  105 */ (__ev64_u16__) { 0x85b0, 0xac88, 0xcc8f, 0xe097 },
++  /*  106 */ (__ev64_u16__) { 0xc518, 0x7735, 0xd23e, 0x1ec9 },
++  /*  107 */ (__ev64_u16__) { 0x1f63, 0xf3b2, 0x8921, 0xcfc4 },
++  /*  108 */ (__ev64_u16__) { 0xb4b2, 0x9fce, 0xf88f, 0x27b7 },
++  /*  109 */ (__ev64_u16__) { 0x532e, 0x22c5, 0xd118, 0x0cbc },
++  /*  110 */ (__ev64_u16__) { 0x804e, 0xd3c8, 0x783b, 0x2916 },
++  /*  111 */ (__ev64_u16__) { 0x30a9, 0x8a53, 0x2577, 0xcfe1 },
++  /*  112 */ (__ev64_u16__) { 0x89d3, 0x199e, 0xb7ef, 0x176e },
++  /*  113 */ (__ev64_u16__) { 0x53f2, 0xbcdd, 0x3988, 0xc430 },
++  /*  114 */ (__ev64_u16__) { 0x3cb8, 0x02bf, 0x7f21, 0x5267 },
++  /*  115 */ (__ev64_u16__) { 0x240b, 0x8dfa, 0xd26e, 0x0de6 },
++  /*  116 */ (__ev64_u16__) { 0x82be, 0xaf39, 0x62e4, 0x7523 },
++  /*  117 */ (__ev64_u16__) { 0x3e9d, 0x93b6, 0xfa81, 0xa107 },
++  /*  118 */ (__ev64_u16__) { 0x6338, 0x462e, 0x3859, 0x5edc },
++  /*  119 */ (__ev64_u16__) { 0x1ca5, 0x5821, 0xd598, 0xc425 },
++  /*  120 */ (__ev64_u16__) { 0x376a, 0x6a92, 0x9b78, 0x15d4 },
++  /*  121 */ (__ev64_u16__) { 0x8651, 0x625f, 0x99dc, 0xcc63 },
++  /*  122 */ (__ev64_u16__) { 0x79f9, 0x47c8, 0xc6ba, 0xd787 },
++  /*  123 */ (__ev64_u16__) { 0x7923, 0xc882, 0xe9d1, 0xfe64 },
++  /*  124 */ (__ev64_u16__) { 0x5418, 0x64a6, 0x7723, 0x6181 },
++  /*  125 */ (__ev64_u16__) { 0xb1fb, 0xb5d3, 0x6c21, 0x4066 },
++  /*  126 */ (__ev64_u16__) { 0xf748, 0x6fda, 0x24b9, 0xc36a },
++  /*  127 */ (__ev64_u16__) { 0x58fb, 0xfdf3, 0x90fb, 0xddcb },
++  /*  128 */ (__ev64_u16__) { 0x32c7, 0x7e04, 0x2848, 0x5eea },
++  /*  129 */ (__ev64_u16__) { 0x7016, 0x9a23, 0x3faa, 0x094c },
++  /*  130 */ (__ev64_u16__) { 0x8f7c, 0x6abe, 0x2d42, 0xf16e },
++  /*  131 */ (__ev64_u16__) { 0x7d63, 0xb044, 0xf138, 0x779b },
++  /*  132 */ (__ev64_u16__) { 0xff8c, 0x569f, 0x44d9, 0x5236 },
++  /*  133 */ (__ev64_u16__) { 0x7fb3, 0xc896, 0x3351, 0x3c84 },
++  /*  134 */ (__ev64_u16__) { 0x1cb7, 0x564a, 0xf359, 0x2959 },
++  /*  135 */ (__ev64_u16__) { 0x3677, 0x18f8, 0xdfa5, 0x964c },
++  /*  136 */ (__ev64_u16__) { 0x1751, 0x625b, 0x853e, 0xa570 },
++  /*  137 */ (__ev64_u16__) { 0xba79, 0x25ff, 0x3ae0, 0xa36b },
++  /*  138 */ (__ev64_u16__) { 0x2250, 0x9037, 0x3f2f, 0x75a3 },
++  /*  139 */ (__ev64_u16__) { 0x4662, 0x4f04, 0xdb3f, 0x30e6 },
++  /*  140 */ (__ev64_u16__) { 0xb62c, 0x5a25, 0x53e3, 0x93de },
++  /*  141 */ (__ev64_u16__) { 0x3ff3, 0x95b3, 0xcfb3, 0x4572 },
++  /*  142 */ (__ev64_u16__) { 0x568e, 0x36a1, 0xe1c6, 0x94a8 },
++  /*  143 */ (__ev64_u16__) { 0x4ffc, 0x99e3, 0xfdfd, 0xf9fc },
++  /*  144 */ (__ev64_u16__) { 0xd67f, 0xafa4, 0x85ae, 0x6b7d },
++  /*  145 */ (__ev64_u16__) { 0xe060, 0xf65c, 0x6440, 0x2eb9 },
++  /*  146 */ (__ev64_u16__) { 0xdcf5, 0x1f4c, 0x2944, 0xdb0c },
++  /*  147 */ (__ev64_u16__) { 0x266d, 0xecdc, 0x743f, 0x9451 },
++  /*  148 */ (__ev64_u16__) { 0xc94a, 0x3ae3, 0xefb4, 0xf4db },
++  /*  149 */ (__ev64_u16__) { 0x2bdc, 0x387b, 0x682f, 0x8954 },
++  /*  150 */ (__ev64_u16__) { 0x5ddc, 0x4543, 0x652e, 0x6c43 },
++  /*  151 */ (__ev64_u16__) { 0x7813, 0x4466, 0xde9c, 0xf665 },
++  /*  152 */ (__ev64_u16__) { 0x2651, 0x758a, 0x17ee, 0x6924 },
++  /*  153 */ (__ev64_u16__) { 0x4e22, 0x3db8, 0x2aa5, 0x2bb8 },
++  /*  154 */ (__ev64_u16__) { 0xba70, 0xc5f5, 0xc519, 0x63d9 },
++  /*  155 */ (__ev64_u16__) { 0x78f9, 0x9f96, 0xbdb0, 0x6fe9 },
++  /*  156 */ (__ev64_u16__) { 0x208e, 0xee72, 0xb5be, 0x4647 },
++  /*  157 */ (__ev64_u16__) { 0x1f84, 0xa95c, 0x881d, 0x1f48 },
++  /*  158 */ (__ev64_u16__) { 0x2845, 0x0eac, 0x98fb, 0xca86 },
++  /*  159 */ (__ev64_u16__) { 0x6db5, 0x0a90, 0x6cc2, 0x8f1d },
++  /*  160 */ (__ev64_u16__) { 0xfd8e, 0x3816, 0x152d, 0xc9a0 },
++  /*  161 */ (__ev64_u16__) { 0xc956, 0xf999, 0x97bc, 0x7ef2 },
++  /*  162 */ (__ev64_u16__) { 0xaa77, 0xc80a, 0xc007, 0x1d6e },
++  /*  163 */ (__ev64_u16__) { 0x81da, 0xd94c, 0xb073, 0x0319 },
++  /*  164 */ (__ev64_u16__) { 0x0383, 0x9171, 0x4de8, 0xbdad },
++  /*  165 */ (__ev64_u16__) { 0x93fb, 0x627b, 0x3ba8, 0xc164 },
++  /*  166 */ (__ev64_u16__) { 0x4364, 0xaaeb, 0x7919, 0x0bda },
++  /*  167 */ (__ev64_u16__) { 0x8aaf, 0x2022, 0x5a8b, 0x4712 },
++  /*  168 */ (__ev64_u16__) { 0xfd9e, 0x7679, 0x9667, 0xc587 },
++  /*  169 */ (__ev64_u16__) { 0x38d4, 0xa4e3, 0xad46, 0xd2a5 },
++  /*  170 */ (__ev64_u16__) { 0x6886, 0x87d8, 0x46f8, 0xf57a },
++  /*  171 */ (__ev64_u16__) { 0xf935, 0x1756, 0x6635, 0x4c3b },
++  /*  172 */ (__ev64_u16__) { 0xec40, 0xce1b, 0x18b2, 0x5421 },
++  /*  173 */ (__ev64_u16__) { 0x641e, 0xf14c, 0xee43, 0x4ecd },
++  /*  174 */ (__ev64_u16__) { 0x352b, 0x5238, 0x368c, 0xc702 },
++  /*  175 */ (__ev64_u16__) { 0x1f62, 0x2fc5, 0xc2ca, 0xc2ec },
++  /*  176 */ (__ev64_u16__) { 0x6e49, 0xd187, 0x6e48, 0x3d4a },
++  /*  177 */ (__ev64_u16__) { 0x209c, 0x36a2, 0xd033, 0x7053 },
++  /*  178 */ (__ev64_u16__) { 0xbea1, 0x6322, 0xe496, 0x48ef },
++  /*  179 */ (__ev64_u16__) { 0x9a63, 0xfd5f, 0x6680, 0xc0a8 },
++  /*  180 */ (__ev64_u16__) { 0x1c88, 0xe151, 0xc3e3, 0x1796 },
++  /*  181 */ (__ev64_u16__) { 0x1669, 0x89d0, 0x3db0, 0xe91d },
++  /*  182 */ (__ev64_u16__) { 0xfbbb, 0x84e1, 0xb19b, 0x6fc3 },
++  /*  183 */ (__ev64_u16__) { 0x47c1, 0xa4ee, 0xd0fd, 0x1e1a },
++  /*  184 */ (__ev64_u16__) { 0x86ad, 0xacc9, 0x1af5, 0x865f },
++  /*  185 */ (__ev64_u16__) { 0x2ba7, 0xc9a5, 0xa63d, 0x6ed7 },
++  /*  186 */ (__ev64_u16__) { 0xfaf3, 0x91e2, 0x79f3, 0x377e },
++  /*  187 */ (__ev64_u16__) { 0xa732, 0xe89a, 0xf5b5, 0xa381 },
++  /*  188 */ (__ev64_u16__) { 0x24fd, 0x1c6e, 0xcb03, 0x2467 },
++  /*  189 */ (__ev64_u16__) { 0xda06, 0x9289, 0x49c4, 0x1e3c },
++  /*  190 */ (__ev64_u16__) { 0xf108, 0x7f45, 0x839c, 0xb492 },
++  /*  191 */ (__ev64_u16__) { 0x85d7, 0x7248, 0x89b2, 0xea9c },
++  /*  192 */ (__ev64_u16__) { 0x5d7a, 0x791a, 0x3773, 0x5a08 },
++  /*  193 */ (__ev64_u16__) { 0xa138, 0x2696, 0x0aaa, 0xe31e },
++  /*  194 */ (__ev64_u16__) { 0x851f, 0xb793, 0xc6d1, 0xd279 },
++  /*  195 */ (__ev64_u16__) { 0x2a73, 0x3368, 0xbce9, 0x28df },
++  /*  196 */ (__ev64_u16__) { 0xf32a, 0x37ca, 0x9e33, 0x07d3 },
++  /*  197 */ (__ev64_u16__) { 0x4261, 0x6d7b, 0xa9fe, 0x4692 },
++  /*  198 */ (__ev64_u16__) { 0x8df3, 0x7ea2, 0x5c83, 0xf293 },
++  /*  199 */ (__ev64_u16__) { 0x3f5f, 0x69bd, 0x632e, 0x0986 },
++  /*  200 */ (__ev64_u16__) { 0x1b18, 0xc9a6, 0xaf4b, 0x6d63 },
++  /*  201 */ (__ev64_u16__) { 0x7ccb, 0x78f1, 0xd3f2, 0x5a59 },
++  /*  202 */ (__ev64_u16__) { 0x1a80, 0xc212, 0xd05a, 0x8fe4 },
++  /*  203 */ (__ev64_u16__) { 0xdb50, 0xd90e, 0x2e58, 0x68ce },
++  /*  204 */ (__ev64_u16__) { 0x7dc9, 0x452a, 0x9a62, 0x60d8 },
++  /*  205 */ (__ev64_u16__) { 0x3a4e, 0x80e5, 0x2948, 0x4409 },
++  /*  206 */ (__ev64_u16__) { 0x6140, 0xec03, 0xc208, 0x98de },
++  /*  207 */ (__ev64_u16__) { 0xebc4, 0xf518, 0x565f, 0x09af },
++  /*  208 */ (__ev64_u16__) { 0x2253, 0xf8bc, 0x1e44, 0xa5a3 },
++  /*  209 */ (__ev64_u16__) { 0x79fe, 0x3d99, 0xbf49, 0x1087 },
++  /*  210 */ (__ev64_u16__) { 0x01b6, 0xecf3, 0x0603, 0x575f },
++  /*  211 */ (__ev64_u16__) { 0xa944, 0x2aea, 0x4bd1, 0xbbd0 },
++  /*  212 */ (__ev64_u16__) { 0x5fb7, 0x0b42, 0x1198, 0x1263 },
++  /*  213 */ (__ev64_u16__) { 0x43b8, 0xf416, 0x9491, 0x9677 },
++  /*  214 */ (__ev64_u16__) { 0x2539, 0x63fc, 0xe9f6, 0x2dc6 },
++  /*  215 */ (__ev64_u16__) { 0x837e, 0xba89, 0xd5fc, 0x4f38 },
++  /*  216 */ (__ev64_u16__) { 0xaa87, 0x441f, 0xa031, 0x186b },
++  /*  217 */ (__ev64_u16__) { 0xe9ef, 0xdade, 0xd986, 0x9355 },
++  /*  218 */ (__ev64_u16__) { 0xda1c, 0x7f2c, 0xa244, 0x7f02 },
++  /*  219 */ (__ev64_u16__) { 0x59e5, 0xd520, 0xa7b7, 0x82f8 },
++  /*  220 */ (__ev64_u16__) { 0x7d20, 0xdd58, 0x6455, 0xbfef },
++  /*  221 */ (__ev64_u16__) { 0x8f3b, 0x1c56, 0x7c7e, 0x6b73 },
++  /*  222 */ (__ev64_u16__) { 0xece0, 0x9e53, 0x36d7, 0x1d77 },
++  /*  223 */ (__ev64_u16__) { 0xac1b, 0x9fd3, 0x2a4b, 0x3e23 },
++  /*  224 */ (__ev64_u16__) { 0x108a, 0x5b47, 0x6a09, 0xf9b2 },
++  /*  225 */ (__ev64_u16__) { 0x5cf1, 0x731e, 0xe50d, 0x4959 },
++  /*  226 */ (__ev64_u16__) { 0x1073, 0x2b3e, 0x0050, 0x929e },
++  /*  227 */ (__ev64_u16__) { 0x2e6d, 0xdf50, 0x82da, 0xf792 },
++  /*  228 */ (__ev64_u16__) { 0x8cb2, 0x2a86, 0x711a, 0x2805 },
++  /*  229 */ (__ev64_u16__) { 0x0a79, 0xbae8, 0xad81, 0xe1e8 },
++  /*  230 */ (__ev64_u16__) { 0x4874, 0xecfe, 0xa611, 0x2172 },
++  /*  231 */ (__ev64_u16__) { 0xf36f, 0x988e, 0x26c7, 0xbd60 },
++  /*  232 */ (__ev64_u16__) { 0xaf6a, 0x95a4, 0x6d37, 0xddfd },
++  /*  233 */ (__ev64_u16__) { 0x0b42, 0x98ab, 0x53ea, 0x1859 },
++  /*  234 */ (__ev64_u16__) { 0xb0dd, 0xcbfa, 0x1d02, 0xf0d7 },
++  /*  235 */ (__ev64_u16__) { 0xb4c3, 0xb346, 0xa4d5, 0x9ca1 },
++  /*  236 */ (__ev64_u16__) { 0xf157, 0xae43, 0xcaf4, 0x4653 },
++  /*  237 */ (__ev64_u16__) { 0x011c, 0x09d7, 0xc679, 0xc724 },
++  /*  238 */ (__ev64_u16__) { 0x0917, 0xec75, 0xfd26, 0x4793 },
++  /*  239 */ (__ev64_u16__) { 0xb6e3, 0x7004, 0x05ac, 0x4e45 },
++  /*  240 */ (__ev64_u16__) { 0x52b6, 0x8166, 0xba13, 0xba94 },
++  /*  241 */ (__ev64_u16__) { 0xa590, 0xc5ca, 0x9b25, 0xeb6b },
++  /*  242 */ (__ev64_u16__) { 0x1be1, 0x4d5c, 0x4d85, 0x47fc },
++  /*  243 */ (__ev64_u16__) { 0xeb36, 0x5f86, 0x1631, 0x4ace },
++  /*  244 */ (__ev64_u16__) { 0x8947, 0xce86, 0xce7f, 0x0fa3 },
++  /*  245 */ (__ev64_u16__) { 0xa853, 0xaf01, 0xd491, 0xacff },
++  /*  246 */ (__ev64_u16__) { 0x910f, 0xbc4f, 0xa489, 0x0a63 },
++  /*  247 */ (__ev64_u16__) { 0xa487, 0xa33d, 0xe5e6, 0xd3d4 },
++  /*  248 */ (__ev64_u16__) { 0x3b75, 0x0ccf, 0xc6e2, 0xa101 },
++  /*  249 */ (__ev64_u16__) { 0x5061, 0xbc31, 0xa704, 0x0c08 },
++  /*  250 */ (__ev64_u16__) { 0x08fc, 0xd359, 0xd210, 0xd475 },
++  /*  251 */ (__ev64_u16__) { 0x8122, 0x050f, 0xfb21, 0x11de },
++  /*  252 */ (__ev64_u16__) { 0xbb13, 0xd63f, 0xe47d, 0xc9dc },
++  /*  253 */ (__ev64_u16__) { 0x2c64, 0x6fd5, 0xbc15, 0x8f49 },
++  /*  254 */ (__ev64_u16__) { 0xd0ea, 0xacb9, 0x0a60, 0xf734 },
++  /*  255 */ (__ev64_u16__) { 0x5d8b, 0xc142, 0x46e1, 0x06e2 },
++
++};
++
++const __ev64_u16__ rB4u16[NELTS(rA4u16)] = {
++
++  /*    0 */ (__ev64_u16__) { 0xe8da, 0xcb41, 0x499b, 0x2c82 },
++  /*    1 */ (__ev64_u16__) { 0x6f9f, 0x5994, 0x3677, 0x68c1 },
++  /*    2 */ (__ev64_u16__) { 0x7ebd, 0x46f2, 0x9298, 0x1319 },
++  /*    3 */ (__ev64_u16__) { 0xe5ab, 0x15e2, 0xaffb, 0x5dff },
++  /*    4 */ (__ev64_u16__) { 0xa900, 0x15bc, 0xb698, 0x752c },
++  /*    5 */ (__ev64_u16__) { 0x8cfd, 0xbd92, 0x7afa, 0xa777 },
++  /*    6 */ (__ev64_u16__) { 0xb797, 0xe417, 0x7781, 0x675b },
++  /*    7 */ (__ev64_u16__) { 0xf074, 0xb7f0, 0xbf64, 0x4d1e },
++  /*    8 */ (__ev64_u16__) { 0x8ea4, 0x0db1, 0x2b80, 0xed81 },
++  /*    9 */ (__ev64_u16__) { 0x9fec, 0x8398, 0xfb38, 0xe1c4 },
++  /*   10 */ (__ev64_u16__) { 0x9912, 0x2264, 0xa5e2, 0xa645 },
++  /*   11 */ (__ev64_u16__) { 0xe40d, 0xb453, 0x1f3e, 0x9833 },
++  /*   12 */ (__ev64_u16__) { 0xb75f, 0xd369, 0xa0e5, 0x4e47 },
++  /*   13 */ (__ev64_u16__) { 0x3ae1, 0x6935, 0x1453, 0xaeca },
++  /*   14 */ (__ev64_u16__) { 0x61f1, 0x34fb, 0x366a, 0x7bb5 },
++  /*   15 */ (__ev64_u16__) { 0x2640, 0x7f54, 0xcf13, 0xb767 },
++  /*   16 */ (__ev64_u16__) { 0x3ff3, 0x9064, 0xdc19, 0x6a9f },
++  /*   17 */ (__ev64_u16__) { 0xf5ca, 0xaf0c, 0xf97c, 0x84b9 },
++  /*   18 */ (__ev64_u16__) { 0x3d78, 0x1bb9, 0x1d14, 0x3856 },
++  /*   19 */ (__ev64_u16__) { 0xbc88, 0x6c41, 0x8c67, 0x5929 },
++  /*   20 */ (__ev64_u16__) { 0x7d1f, 0xf28f, 0xc72d, 0xaac4 },
++  /*   21 */ (__ev64_u16__) { 0x4c9c, 0xad27, 0xbe7d, 0xd7c5 },
++  /*   22 */ (__ev64_u16__) { 0xdf67, 0x4396, 0xad4a, 0xb80f },
++  /*   23 */ (__ev64_u16__) { 0xcceb, 0x25cd, 0xedeb, 0x775b },
++  /*   24 */ (__ev64_u16__) { 0x7977, 0xfb8b, 0xf673, 0xbb5e },
++  /*   25 */ (__ev64_u16__) { 0x3f70, 0x97a7, 0x7bcb, 0x7d23 },
++  /*   26 */ (__ev64_u16__) { 0x81cd, 0xaa90, 0x0e09, 0xf0fc },
++  /*   27 */ (__ev64_u16__) { 0x7c96, 0xcac8, 0x5f03, 0xc4cc },
++  /*   28 */ (__ev64_u16__) { 0x4e51, 0x3374, 0x285c, 0x6674 },
++  /*   29 */ (__ev64_u16__) { 0x8299, 0x44ac, 0xc45f, 0xb3ef },
++  /*   30 */ (__ev64_u16__) { 0xe0ec, 0x1c0d, 0xb982, 0x2dcd },
++  /*   31 */ (__ev64_u16__) { 0x54e3, 0xc33c, 0xf53e, 0xd8ad },
++  /*   32 */ (__ev64_u16__) { 0x98c0, 0x8cf7, 0x3469, 0xca9f },
++  /*   33 */ (__ev64_u16__) { 0x826a, 0x8cf9, 0x33af, 0x3bfc },
++  /*   34 */ (__ev64_u16__) { 0x2f17, 0xd3cd, 0xab07, 0x71b2 },
++  /*   35 */ (__ev64_u16__) { 0x70a4, 0x4a86, 0x12a2, 0xc37f },
++  /*   36 */ (__ev64_u16__) { 0x30cc, 0x8128, 0x4731, 0x35ab },
++  /*   37 */ (__ev64_u16__) { 0x59bd, 0xa894, 0x96f2, 0xcab1 },
++  /*   38 */ (__ev64_u16__) { 0x4216, 0x22db, 0xa8d6, 0x8c9f },
++  /*   39 */ (__ev64_u16__) { 0x49c6, 0xdb45, 0x4afa, 0x50cf },
++  /*   40 */ (__ev64_u16__) { 0xbddb, 0xdc4a, 0x577a, 0x8062 },
++  /*   41 */ (__ev64_u16__) { 0x99f1, 0xd244, 0xa0e0, 0x1a8d },
++  /*   42 */ (__ev64_u16__) { 0xc796, 0x7a08, 0x5cb5, 0x6948 },
++  /*   43 */ (__ev64_u16__) { 0x50ed, 0x1930, 0x0be6, 0xa9ac },
++  /*   44 */ (__ev64_u16__) { 0xfe4c, 0x40ae, 0x657d, 0x3e87 },
++  /*   45 */ (__ev64_u16__) { 0x547d, 0x5f96, 0x172e, 0x23ec },
++  /*   46 */ (__ev64_u16__) { 0x7657, 0xd88e, 0x6be1, 0x0b65 },
++  /*   47 */ (__ev64_u16__) { 0xd8bd, 0x31ca, 0x4807, 0x19ba },
++  /*   48 */ (__ev64_u16__) { 0xaf14, 0x6e3f, 0x5632, 0x5808 },
++  /*   49 */ (__ev64_u16__) { 0x1e0e, 0x1e8c, 0xd9c8, 0x6aef },
++  /*   50 */ (__ev64_u16__) { 0x61c7, 0x1f0f, 0x14cf, 0xa48c },
++  /*   51 */ (__ev64_u16__) { 0x4ff7, 0x51db, 0x7e50, 0xf61b },
++  /*   52 */ (__ev64_u16__) { 0xf803, 0xd8e8, 0x2ae1, 0x2026 },
++  /*   53 */ (__ev64_u16__) { 0x371a, 0x35a4, 0x6eee, 0xc74a },
++  /*   54 */ (__ev64_u16__) { 0xec5f, 0x7a8f, 0x6394, 0xe5cd },
++  /*   55 */ (__ev64_u16__) { 0xc6bd, 0xf8cc, 0xcd7b, 0xae4f },
++  /*   56 */ (__ev64_u16__) { 0x2109, 0x9aad, 0x7b32, 0xc143 },
++  /*   57 */ (__ev64_u16__) { 0xe3e9, 0xfcf9, 0xc0f6, 0x4d7b },
++  /*   58 */ (__ev64_u16__) { 0xf783, 0x8e39, 0xb9df, 0x5e0f },
++  /*   59 */ (__ev64_u16__) { 0x2e77, 0x7fcd, 0xd16c, 0x2ac2 },
++  /*   60 */ (__ev64_u16__) { 0x310f, 0x0021, 0x292f, 0x05bd },
++  /*   61 */ (__ev64_u16__) { 0xcb70, 0x331b, 0x6eb7, 0xc97a },
++  /*   62 */ (__ev64_u16__) { 0xde3d, 0x4ddb, 0x3908, 0xae27 },
++  /*   63 */ (__ev64_u16__) { 0x2601, 0x1bf5, 0xf995, 0x3584 },
++  /*   64 */ (__ev64_u16__) { 0xa978, 0x9918, 0xe87d, 0xfde4 },
++  /*   65 */ (__ev64_u16__) { 0xe537, 0xcb6e, 0xcf4c, 0xcf9f },
++  /*   66 */ (__ev64_u16__) { 0xa0b9, 0xf66e, 0x7f15, 0xa97f },
++  /*   67 */ (__ev64_u16__) { 0x42cb, 0x17e5, 0x066a, 0x220d },
++  /*   68 */ (__ev64_u16__) { 0x92dc, 0x840b, 0xf2e9, 0xfc99 },
++  /*   69 */ (__ev64_u16__) { 0xe453, 0x60cf, 0x0604, 0xda30 },
++  /*   70 */ (__ev64_u16__) { 0x9f85, 0xfdbb, 0xba2d, 0x0b74 },
++  /*   71 */ (__ev64_u16__) { 0xdcee, 0x89cb, 0x8a11, 0xfdb3 },
++  /*   72 */ (__ev64_u16__) { 0x3db9, 0x518d, 0xd963, 0x3017 },
++  /*   73 */ (__ev64_u16__) { 0xc16b, 0xe26a, 0x34d2, 0xbf03 },
++  /*   74 */ (__ev64_u16__) { 0x8346, 0xe12f, 0x4cf3, 0x2adb },
++  /*   75 */ (__ev64_u16__) { 0xd669, 0x6b24, 0xbb95, 0x9b49 },
++  /*   76 */ (__ev64_u16__) { 0xffa6, 0x51c0, 0xf7a4, 0x9034 },
++  /*   77 */ (__ev64_u16__) { 0xd527, 0x368d, 0xd7c4, 0xbd4b },
++  /*   78 */ (__ev64_u16__) { 0x884e, 0xa29b, 0xb49e, 0x437b },
++  /*   79 */ (__ev64_u16__) { 0xef29, 0x2835, 0xb7c1, 0xfd24 },
++  /*   80 */ (__ev64_u16__) { 0xd420, 0x1e8e, 0x75d7, 0x466e },
++  /*   81 */ (__ev64_u16__) { 0xd224, 0x9abf, 0xe795, 0x3111 },
++  /*   82 */ (__ev64_u16__) { 0x5a05, 0x8a97, 0x6fa8, 0x7555 },
++  /*   83 */ (__ev64_u16__) { 0x6a10, 0x41a8, 0x3cf1, 0xe378 },
++  /*   84 */ (__ev64_u16__) { 0x06b6, 0xe4d5, 0x3a5c, 0x5ed0 },
++  /*   85 */ (__ev64_u16__) { 0xf0c9, 0xc4e0, 0x8ac6, 0x86fe },
++  /*   86 */ (__ev64_u16__) { 0x1d45, 0x4be6, 0xade0, 0xd9ab },
++  /*   87 */ (__ev64_u16__) { 0x7254, 0xefef, 0x73ec, 0xcbe2 },
++  /*   88 */ (__ev64_u16__) { 0x9631, 0xf4f5, 0xc33a, 0x04ff },
++  /*   89 */ (__ev64_u16__) { 0xe5bc, 0xceba, 0xf236, 0x52f3 },
++  /*   90 */ (__ev64_u16__) { 0x12a7, 0x8cb7, 0xd42e, 0x48bc },
++  /*   91 */ (__ev64_u16__) { 0xa4df, 0xb7b4, 0xdb1a, 0xe649 },
++  /*   92 */ (__ev64_u16__) { 0x2468, 0x3376, 0x67a4, 0x2752 },
++  /*   93 */ (__ev64_u16__) { 0x4161, 0x9079, 0x2bbb, 0x9c87 },
++  /*   94 */ (__ev64_u16__) { 0x881e, 0x5cb4, 0x5a82, 0xf0a8 },
++  /*   95 */ (__ev64_u16__) { 0xa79d, 0xb552, 0x7993, 0xa136 },
++  /*   96 */ (__ev64_u16__) { 0x5078, 0x46ea, 0x8ae3, 0x2f30 },
++  /*   97 */ (__ev64_u16__) { 0xe6b9, 0x03b6, 0xe988, 0x02be },
++  /*   98 */ (__ev64_u16__) { 0xb321, 0x81bd, 0xa151, 0x3460 },
++  /*   99 */ (__ev64_u16__) { 0x391a, 0x5fe6, 0x31d6, 0xb87b },
++  /*  100 */ (__ev64_u16__) { 0x05f8, 0x58fc, 0xd684, 0xd3c9 },
++  /*  101 */ (__ev64_u16__) { 0xbbc7, 0xb9b5, 0x9af9, 0xfbd7 },
++  /*  102 */ (__ev64_u16__) { 0xc5c8, 0x4c78, 0x1ea5, 0x4554 },
++  /*  103 */ (__ev64_u16__) { 0x8234, 0x0af7, 0xaceb, 0x0301 },
++  /*  104 */ (__ev64_u16__) { 0x79b9, 0xfa5d, 0xe0a0, 0xab1f },
++  /*  105 */ (__ev64_u16__) { 0xc3e5, 0xf9fe, 0x50ac, 0x76f2 },
++  /*  106 */ (__ev64_u16__) { 0xa41d, 0xa2ec, 0xaeb8, 0x8479 },
++  /*  107 */ (__ev64_u16__) { 0xbe93, 0xacc1, 0x3fc7, 0xe81a },
++  /*  108 */ (__ev64_u16__) { 0xf74a, 0xd255, 0xd2bd, 0x4bc9 },
++  /*  109 */ (__ev64_u16__) { 0x7760, 0x86b1, 0x8a9f, 0x574f },
++  /*  110 */ (__ev64_u16__) { 0x3bcd, 0xde4b, 0x171c, 0xf81e },
++  /*  111 */ (__ev64_u16__) { 0x29ea, 0xaa22, 0xedd8, 0x1af8 },
++  /*  112 */ (__ev64_u16__) { 0x9212, 0xf122, 0xa3f9, 0x8839 },
++  /*  113 */ (__ev64_u16__) { 0x74ae, 0xaf30, 0x6895, 0xc875 },
++  /*  114 */ (__ev64_u16__) { 0x4861, 0xfe1e, 0x10cf, 0x247e },
++  /*  115 */ (__ev64_u16__) { 0xcc44, 0x3114, 0x1893, 0xc14e },
++  /*  116 */ (__ev64_u16__) { 0xf84c, 0xea74, 0x0ce1, 0xa8b1 },
++  /*  117 */ (__ev64_u16__) { 0xa9f5, 0x62df, 0xee1e, 0xd5b8 },
++  /*  118 */ (__ev64_u16__) { 0xdd2d, 0xcf02, 0xc6c8, 0x3e0f },
++  /*  119 */ (__ev64_u16__) { 0xf4cb, 0x039e, 0x1701, 0xa71e },
++  /*  120 */ (__ev64_u16__) { 0xf800, 0xe538, 0x23ab, 0x3da3 },
++  /*  121 */ (__ev64_u16__) { 0x52dd, 0x334e, 0xe1ad, 0x5547 },
++  /*  122 */ (__ev64_u16__) { 0xf887, 0x0e56, 0xc423, 0x7246 },
++  /*  123 */ (__ev64_u16__) { 0x1613, 0x4d18, 0x20d8, 0xe5c5 },
++  /*  124 */ (__ev64_u16__) { 0x2369, 0x5945, 0xa4e9, 0xb9d3 },
++  /*  125 */ (__ev64_u16__) { 0x9f49, 0xf752, 0x79d6, 0x66f9 },
++  /*  126 */ (__ev64_u16__) { 0x3bc1, 0x6695, 0xc8c8, 0xbbb2 },
++  /*  127 */ (__ev64_u16__) { 0x7fb0, 0x5ab9, 0x8d4e, 0x9e16 },
++  /*  128 */ (__ev64_u16__) { 0xe8de, 0x6e6b, 0x1ef1, 0x3c48 },
++  /*  129 */ (__ev64_u16__) { 0x6af3, 0x3362, 0x6ac7, 0xd677 },
++  /*  130 */ (__ev64_u16__) { 0x57d6, 0xb41e, 0x1346, 0x814f },
++  /*  131 */ (__ev64_u16__) { 0x347e, 0xe89f, 0xcdc6, 0x070f },
++  /*  132 */ (__ev64_u16__) { 0xca25, 0xa750, 0x1cda, 0x5688 },
++  /*  133 */ (__ev64_u16__) { 0x9164, 0x9627, 0xfd04, 0x0886 },
++  /*  134 */ (__ev64_u16__) { 0xf413, 0x1b83, 0x643d, 0x27ad },
++  /*  135 */ (__ev64_u16__) { 0x287e, 0x52c5, 0xe2e6, 0x122e },
++  /*  136 */ (__ev64_u16__) { 0x646b, 0x3164, 0x525e, 0x2115 },
++  /*  137 */ (__ev64_u16__) { 0x81b0, 0xe650, 0x9113, 0x3d2d },
++  /*  138 */ (__ev64_u16__) { 0xb69b, 0x9243, 0x1266, 0xaafa },
++  /*  139 */ (__ev64_u16__) { 0x174f, 0x9ddb, 0x54c1, 0xc110 },
++  /*  140 */ (__ev64_u16__) { 0xff5d, 0x1d50, 0xdcf2, 0x4bcc },
++  /*  141 */ (__ev64_u16__) { 0x9323, 0x708c, 0xdbfd, 0xf999 },
++  /*  142 */ (__ev64_u16__) { 0x064f, 0xf09e, 0xd95f, 0xb3be },
++  /*  143 */ (__ev64_u16__) { 0xbd83, 0xb6e2, 0x6514, 0x4a75 },
++  /*  144 */ (__ev64_u16__) { 0x02d9, 0xa760, 0xb0f4, 0xe392 },
++  /*  145 */ (__ev64_u16__) { 0x7031, 0xae97, 0xed14, 0x237d },
++  /*  146 */ (__ev64_u16__) { 0xc8d0, 0x1f4c, 0x7084, 0x4b64 },
++  /*  147 */ (__ev64_u16__) { 0x8108, 0x8dd0, 0xcdf7, 0xbbfc },
++  /*  148 */ (__ev64_u16__) { 0xaa49, 0xc43e, 0x02d4, 0x2dda },
++  /*  149 */ (__ev64_u16__) { 0x0801, 0x9f57, 0xda0c, 0xc34f },
++  /*  150 */ (__ev64_u16__) { 0x7988, 0xc91f, 0x4f30, 0x16c0 },
++  /*  151 */ (__ev64_u16__) { 0xd219, 0x4006, 0x68e9, 0x4446 },
++  /*  152 */ (__ev64_u16__) { 0xfbf3, 0xd4f9, 0xea32, 0x736f },
++  /*  153 */ (__ev64_u16__) { 0x6a8f, 0x2baa, 0xf17f, 0xd541 },
++  /*  154 */ (__ev64_u16__) { 0xec53, 0x60df, 0x58ff, 0x2bfa },
++  /*  155 */ (__ev64_u16__) { 0xfcdd, 0x60da, 0x3c41, 0x8a41 },
++  /*  156 */ (__ev64_u16__) { 0x9527, 0x2130, 0xc16e, 0xec92 },
++  /*  157 */ (__ev64_u16__) { 0xaba3, 0x3688, 0x1d77, 0x34a6 },
++  /*  158 */ (__ev64_u16__) { 0x7157, 0x7d9b, 0x1622, 0x4c6a },
++  /*  159 */ (__ev64_u16__) { 0x91b0, 0x25c1, 0x90d9, 0xa905 },
++  /*  160 */ (__ev64_u16__) { 0xa655, 0xc0e2, 0xa2e1, 0xa233 },
++  /*  161 */ (__ev64_u16__) { 0xe7c7, 0x5047, 0x1e1c, 0x4def },
++  /*  162 */ (__ev64_u16__) { 0x14cb, 0xd88d, 0xcaad, 0x2f34 },
++  /*  163 */ (__ev64_u16__) { 0x04f8, 0x8ab7, 0x85a5, 0xefae },
++  /*  164 */ (__ev64_u16__) { 0xe98a, 0x0418, 0xa036, 0x4784 },
++  /*  165 */ (__ev64_u16__) { 0x0b84, 0x8d65, 0xea41, 0xa4a1 },
++  /*  166 */ (__ev64_u16__) { 0x0d52, 0xe410, 0xa4cc, 0x4f77 },
++  /*  167 */ (__ev64_u16__) { 0xb30e, 0xacc2, 0x5315, 0x0283 },
++  /*  168 */ (__ev64_u16__) { 0x9563, 0x540b, 0xb6a8, 0x3c9d },
++  /*  169 */ (__ev64_u16__) { 0x6a0c, 0x80b2, 0x55e5, 0x7e94 },
++  /*  170 */ (__ev64_u16__) { 0xeaf3, 0x0fcd, 0x94ca, 0xfe3d },
++  /*  171 */ (__ev64_u16__) { 0xbdb2, 0x46c8, 0x3723, 0x8f71 },
++  /*  172 */ (__ev64_u16__) { 0xe15b, 0x3fda, 0x3aa7, 0x8ae5 },
++  /*  173 */ (__ev64_u16__) { 0x4a9f, 0x3282, 0xfa0c, 0xf547 },
++  /*  174 */ (__ev64_u16__) { 0x8eb6, 0xf7b0, 0xf12d, 0xb70c },
++  /*  175 */ (__ev64_u16__) { 0xadb7, 0xe76c, 0x2312, 0x7568 },
++  /*  176 */ (__ev64_u16__) { 0x469b, 0x3973, 0x5f8d, 0x82a7 },
++  /*  177 */ (__ev64_u16__) { 0x8737, 0x68b4, 0x34fd, 0x8d51 },
++  /*  178 */ (__ev64_u16__) { 0xa5d0, 0xb92f, 0xd5f0, 0x44fc },
++  /*  179 */ (__ev64_u16__) { 0x227d, 0xb180, 0xa572, 0xcbc2 },
++  /*  180 */ (__ev64_u16__) { 0x6321, 0x3271, 0xd7a3, 0x3e6e },
++  /*  181 */ (__ev64_u16__) { 0xa23f, 0x356d, 0xbbf2, 0xcfb8 },
++  /*  182 */ (__ev64_u16__) { 0xe075, 0xeeb4, 0xe02a, 0x1cd3 },
++  /*  183 */ (__ev64_u16__) { 0x9fff, 0x76c4, 0x69dd, 0xd5d6 },
++  /*  184 */ (__ev64_u16__) { 0x21a6, 0x1a38, 0x0750, 0x4002 },
++  /*  185 */ (__ev64_u16__) { 0x6cbe, 0x0f34, 0x07af, 0x4b27 },
++  /*  186 */ (__ev64_u16__) { 0x203b, 0xa904, 0xd794, 0x9774 },
++  /*  187 */ (__ev64_u16__) { 0x6841, 0x5102, 0x7c7f, 0xfc0e },
++  /*  188 */ (__ev64_u16__) { 0x2ad3, 0x203f, 0x5d78, 0xcee0 },
++  /*  189 */ (__ev64_u16__) { 0xd64c, 0x68f3, 0x0ef0, 0xde9c },
++  /*  190 */ (__ev64_u16__) { 0xe04f, 0xd68d, 0x8d46, 0xc758 },
++  /*  191 */ (__ev64_u16__) { 0xd4d4, 0x7bd9, 0xeef7, 0x97ea },
++  /*  192 */ (__ev64_u16__) { 0x33e2, 0x4a58, 0xd287, 0x4b1d },
++  /*  193 */ (__ev64_u16__) { 0x00dc, 0xefc7, 0xc1e7, 0x69ee },
++  /*  194 */ (__ev64_u16__) { 0xb0eb, 0xdd07, 0xc77e, 0x2d75 },
++  /*  195 */ (__ev64_u16__) { 0x3221, 0x9c0d, 0x5985, 0x1c11 },
++  /*  196 */ (__ev64_u16__) { 0x613f, 0xc496, 0x4a00, 0x6a78 },
++  /*  197 */ (__ev64_u16__) { 0x8aad, 0x6906, 0xc762, 0x5b1e },
++  /*  198 */ (__ev64_u16__) { 0x7ee8, 0x0083, 0xeb5b, 0xbcfb },
++  /*  199 */ (__ev64_u16__) { 0xbf17, 0x951d, 0x3a1d, 0x3ce3 },
++  /*  200 */ (__ev64_u16__) { 0x17c6, 0x7ced, 0x988a, 0xec9d },
++  /*  201 */ (__ev64_u16__) { 0x52fb, 0xe1a9, 0xc8c2, 0x9b0b },
++  /*  202 */ (__ev64_u16__) { 0x4964, 0xe4b1, 0x146b, 0x33c8 },
++  /*  203 */ (__ev64_u16__) { 0x92d0, 0x0930, 0x88f8, 0x7a1d },
++  /*  204 */ (__ev64_u16__) { 0x8b5c, 0xc097, 0x620d, 0x48be },
++  /*  205 */ (__ev64_u16__) { 0xfc6a, 0x56e0, 0x4f75, 0x9965 },
++  /*  206 */ (__ev64_u16__) { 0xb737, 0x993b, 0xb67f, 0x3db7 },
++  /*  207 */ (__ev64_u16__) { 0x87cc, 0xf3ce, 0x5cd4, 0xefd6 },
++  /*  208 */ (__ev64_u16__) { 0x7371, 0x49a6, 0x306c, 0xf5a5 },
++  /*  209 */ (__ev64_u16__) { 0x759b, 0x6f70, 0xd667, 0x254b },
++  /*  210 */ (__ev64_u16__) { 0xaeff, 0x030d, 0x247c, 0xae37 },
++  /*  211 */ (__ev64_u16__) { 0x2f93, 0x3fc6, 0x6893, 0x6149 },
++  /*  212 */ (__ev64_u16__) { 0x4db7, 0x53bf, 0xf8af, 0x417e },
++  /*  213 */ (__ev64_u16__) { 0x02b8, 0x0e8a, 0x20db, 0xa40d },
++  /*  214 */ (__ev64_u16__) { 0x51b3, 0x3ba3, 0x2d84, 0x377e },
++  /*  215 */ (__ev64_u16__) { 0x8543, 0x7d8b, 0x31c2, 0x8645 },
++  /*  216 */ (__ev64_u16__) { 0x7ac6, 0x717e, 0x01f7, 0xe096 },
++  /*  217 */ (__ev64_u16__) { 0xfea4, 0x6a31, 0x533b, 0x5f39 },
++  /*  218 */ (__ev64_u16__) { 0x675c, 0x0526, 0x051e, 0x95d1 },
++  /*  219 */ (__ev64_u16__) { 0x76e2, 0x6553, 0x8b60, 0xc5f3 },
++  /*  220 */ (__ev64_u16__) { 0x3539, 0x397e, 0x148a, 0x9f9b },
++  /*  221 */ (__ev64_u16__) { 0xeffb, 0x9e19, 0xa1df, 0x14be },
++  /*  222 */ (__ev64_u16__) { 0x46de, 0xea04, 0xef97, 0x2f47 },
++  /*  223 */ (__ev64_u16__) { 0x6c7d, 0xe3a1, 0xc638, 0x8c07 },
++  /*  224 */ (__ev64_u16__) { 0x6543, 0xe0dd, 0x60d4, 0xdee7 },
++  /*  225 */ (__ev64_u16__) { 0x2e89, 0x50bc, 0x4297, 0xdc7e },
++  /*  226 */ (__ev64_u16__) { 0x6130, 0xf5bc, 0xd680, 0x060b },
++  /*  227 */ (__ev64_u16__) { 0xc494, 0xa42a, 0xaf4b, 0x1f0d },
++  /*  228 */ (__ev64_u16__) { 0xc5a2, 0x288e, 0x0c13, 0xbd87 },
++  /*  229 */ (__ev64_u16__) { 0x0d53, 0xa5ca, 0x7992, 0xbe7a },
++  /*  230 */ (__ev64_u16__) { 0x5986, 0xe892, 0x3423, 0x2b0f },
++  /*  231 */ (__ev64_u16__) { 0x65ac, 0xb3e6, 0x98e7, 0x2e97 },
++  /*  232 */ (__ev64_u16__) { 0xc474, 0x2fa7, 0x88df, 0x6b2a },
++  /*  233 */ (__ev64_u16__) { 0xa0d0, 0x8946, 0xf26b, 0x34d4 },
++  /*  234 */ (__ev64_u16__) { 0x5008, 0x80bd, 0xdfca, 0x2cbf },
++  /*  235 */ (__ev64_u16__) { 0x787d, 0x1788, 0x40cb, 0x89a3 },
++  /*  236 */ (__ev64_u16__) { 0x108a, 0xd388, 0x37b0, 0x32b2 },
++  /*  237 */ (__ev64_u16__) { 0x7643, 0x02fe, 0xc8b2, 0x3370 },
++  /*  238 */ (__ev64_u16__) { 0xaeab, 0x24a3, 0xec61, 0xb003 },
++  /*  239 */ (__ev64_u16__) { 0x5124, 0x43d3, 0xe31d, 0xf6a0 },
++  /*  240 */ (__ev64_u16__) { 0x3606, 0xf6bd, 0xe67e, 0x1dff },
++  /*  241 */ (__ev64_u16__) { 0xf537, 0xe200, 0x5a51, 0xbc24 },
++  /*  242 */ (__ev64_u16__) { 0x1204, 0x0ae6, 0x0ed3, 0x8ba2 },
++  /*  243 */ (__ev64_u16__) { 0x5e2a, 0x1b1c, 0xe945, 0xed44 },
++  /*  244 */ (__ev64_u16__) { 0xbdfd, 0xe6c4, 0xc1ae, 0x7d9e },
++  /*  245 */ (__ev64_u16__) { 0x1de1, 0x7240, 0x6610, 0x26d9 },
++  /*  246 */ (__ev64_u16__) { 0x8e83, 0x6d2e, 0x2b2a, 0x0ed5 },
++  /*  247 */ (__ev64_u16__) { 0x71e9, 0x6902, 0xbf1f, 0x7f06 },
++  /*  248 */ (__ev64_u16__) { 0xb3bc, 0x3493, 0x7f11, 0x86d4 },
++  /*  249 */ (__ev64_u16__) { 0xdd2b, 0xca07, 0x1263, 0xe68a },
++  /*  250 */ (__ev64_u16__) { 0x61db, 0xf8a5, 0x0291, 0xac05 },
++  /*  251 */ (__ev64_u16__) { 0xadbb, 0x9dc9, 0x41b2, 0x8287 },
++  /*  252 */ (__ev64_u16__) { 0x0997, 0x9ad3, 0x69ce, 0x9060 },
++  /*  253 */ (__ev64_u16__) { 0x357e, 0x56e2, 0xc175, 0x8757 },
++  /*  254 */ (__ev64_u16__) { 0x3302, 0x3b6c, 0xdc30, 0xe1f8 },
++  /*  255 */ (__ev64_u16__) { 0x9918, 0x5934, 0x8510, 0x3df2 },
++
++};
++
++__ev64_u16__ rD4u16[NELTS(rA4u16)];
++
++const __ev64_s16__ rA4s16[] = {
++
++  /*    0 */ (__ev64_s16__) { 0x7afe, 0xb7c6, 0x644f, 0x1c91 },
++  /*    1 */ (__ev64_s16__) { 0x2179, 0x4f9d, 0x3eab, 0x95b5 },
++  /*    2 */ (__ev64_s16__) { 0x9db6, 0x6d83, 0x8e09, 0xd7c2 },
++  /*    3 */ (__ev64_s16__) { 0x984e, 0xa0ad, 0x5d58, 0xd799 },
++  /*    4 */ (__ev64_s16__) { 0xc648, 0xde15, 0x4817, 0xb2b9 },
++  /*    5 */ (__ev64_s16__) { 0xade2, 0x4174, 0x4bf5, 0x6ca2 },
++  /*    6 */ (__ev64_s16__) { 0x5986, 0x087c, 0x0909, 0xe801 },
++  /*    7 */ (__ev64_s16__) { 0xf9e1, 0xb0b3, 0xd041, 0xea45 },
++  /*    8 */ (__ev64_s16__) { 0x07dd, 0x092c, 0xe49a, 0xd2f1 },
++  /*    9 */ (__ev64_s16__) { 0x033c, 0xa4c6, 0xcb32, 0xdcfa },
++  /*   10 */ (__ev64_s16__) { 0x58a0, 0x8311, 0xaefe, 0x25da },
++  /*   11 */ (__ev64_s16__) { 0x3642, 0x5917, 0x81d7, 0x32a6 },
++  /*   12 */ (__ev64_s16__) { 0xa39a, 0x0e38, 0x1a64, 0x6eb5 },
++  /*   13 */ (__ev64_s16__) { 0xf839, 0x25a5, 0x76c8, 0x0647 },
++  /*   14 */ (__ev64_s16__) { 0x8235, 0xf68d, 0x0a76, 0xe984 },
++  /*   15 */ (__ev64_s16__) { 0xe997, 0xc733, 0x15ad, 0x26ce },
++  /*   16 */ (__ev64_s16__) { 0x2a10, 0x6c3c, 0xe124, 0x4db5 },
++  /*   17 */ (__ev64_s16__) { 0x46ee, 0xaff3, 0x7c00, 0x8249 },
++  /*   18 */ (__ev64_s16__) { 0x4d5d, 0xccb5, 0xa92c, 0xab46 },
++  /*   19 */ (__ev64_s16__) { 0x45e8, 0x4324, 0x6a77, 0xc9d6 },
++  /*   20 */ (__ev64_s16__) { 0x8643, 0xa99d, 0x003f, 0x2b69 },
++  /*   21 */ (__ev64_s16__) { 0xb964, 0x1f42, 0xe6e2, 0xf1ef },
++  /*   22 */ (__ev64_s16__) { 0xd8d2, 0xb5a0, 0x768f, 0xa56e },
++  /*   23 */ (__ev64_s16__) { 0xedc8, 0x1d87, 0xb0c3, 0x6051 },
++  /*   24 */ (__ev64_s16__) { 0xa03c, 0x8715, 0x9434, 0x899c },
++  /*   25 */ (__ev64_s16__) { 0x1dda, 0xb08a, 0xf62c, 0x92d7 },
++  /*   26 */ (__ev64_s16__) { 0x7fff, 0x0aa4, 0xf8cc, 0x6c30 },
++  /*   27 */ (__ev64_s16__) { 0xb054, 0xd0a5, 0x011e, 0x567b },
++  /*   28 */ (__ev64_s16__) { 0x0ed0, 0x3f3f, 0x0b2b, 0xb8d2 },
++  /*   29 */ (__ev64_s16__) { 0x4495, 0x95d2, 0x399d, 0x12a5 },
++  /*   30 */ (__ev64_s16__) { 0x2607, 0xc13e, 0x68fa, 0x5db0 },
++  /*   31 */ (__ev64_s16__) { 0x1564, 0xbccc, 0x4901, 0x4aa7 },
++  /*   32 */ (__ev64_s16__) { 0xea9f, 0x168d, 0xa437, 0x372b },
++  /*   33 */ (__ev64_s16__) { 0x5163, 0xb4ea, 0xbab8, 0xf61d },
++  /*   34 */ (__ev64_s16__) { 0x1696, 0xd9b9, 0xf5a6, 0xd385 },
++  /*   35 */ (__ev64_s16__) { 0xff40, 0x6563, 0x018a, 0x671f },
++  /*   36 */ (__ev64_s16__) { 0x1a48, 0xa39c, 0x00f4, 0xa443 },
++  /*   37 */ (__ev64_s16__) { 0x48ab, 0xf2a6, 0x3ed2, 0xd256 },
++  /*   38 */ (__ev64_s16__) { 0x573d, 0x0d8b, 0xeb1d, 0xd298 },
++  /*   39 */ (__ev64_s16__) { 0x8a1b, 0x1b63, 0x4cfd, 0x5bb9 },
++  /*   40 */ (__ev64_s16__) { 0xd63f, 0x4735, 0xd4c3, 0x6462 },
++  /*   41 */ (__ev64_s16__) { 0xd84b, 0x7fc0, 0xa1a2, 0x1533 },
++  /*   42 */ (__ev64_s16__) { 0xc1be, 0x19a4, 0x9e67, 0x5a56 },
++  /*   43 */ (__ev64_s16__) { 0x59b0, 0x00d3, 0xacb3, 0xd7bb },
++  /*   44 */ (__ev64_s16__) { 0x2643, 0x3044, 0xc9b0, 0x21e8 },
++  /*   45 */ (__ev64_s16__) { 0x6d80, 0xd1b6, 0xdc8f, 0xfda9 },
++  /*   46 */ (__ev64_s16__) { 0x1e28, 0xcccb, 0xfc25, 0x2df2 },
++  /*   47 */ (__ev64_s16__) { 0xc40c, 0xb0f1, 0xb066, 0x6199 },
++  /*   48 */ (__ev64_s16__) { 0xc890, 0x834c, 0x7883, 0xc98b },
++  /*   49 */ (__ev64_s16__) { 0x8b34, 0xa00e, 0x36c9, 0xae47 },
++  /*   50 */ (__ev64_s16__) { 0xf06e, 0x5abc, 0x7df8, 0xa3ef },
++  /*   51 */ (__ev64_s16__) { 0x44f2, 0x7e34, 0xd657, 0x0d5b },
++  /*   52 */ (__ev64_s16__) { 0xedef, 0xc27e, 0xd002, 0x5365 },
++  /*   53 */ (__ev64_s16__) { 0x6d5e, 0x4441, 0x1a8f, 0x243d },
++  /*   54 */ (__ev64_s16__) { 0xe29d, 0xadb8, 0x1a6c, 0xd8f6 },
++  /*   55 */ (__ev64_s16__) { 0x71cf, 0x6ed9, 0x032a, 0x4d43 },
++  /*   56 */ (__ev64_s16__) { 0xab41, 0x4c3c, 0xb103, 0x9e09 },
++  /*   57 */ (__ev64_s16__) { 0xe455, 0x48fd, 0xca82, 0x3df7 },
++  /*   58 */ (__ev64_s16__) { 0xb4c6, 0x869a, 0xb929, 0x6652 },
++  /*   59 */ (__ev64_s16__) { 0xd792, 0xc8b8, 0xfcad, 0xdab4 },
++  /*   60 */ (__ev64_s16__) { 0x5b6c, 0x2fdd, 0x8c67, 0x0a6e },
++  /*   61 */ (__ev64_s16__) { 0x9654, 0x87f6, 0x0028, 0xdae7 },
++  /*   62 */ (__ev64_s16__) { 0x516d, 0x743b, 0xb521, 0xd68c },
++  /*   63 */ (__ev64_s16__) { 0xe405, 0x268c, 0x894d, 0x81b3 },
++  /*   64 */ (__ev64_s16__) { 0xc612, 0xd49f, 0x026a, 0x2523 },
++  /*   65 */ (__ev64_s16__) { 0x36b9, 0x8022, 0x78de, 0x6d63 },
++  /*   66 */ (__ev64_s16__) { 0xe22f, 0x5a47, 0x4ff2, 0x02d6 },
++  /*   67 */ (__ev64_s16__) { 0xa9c0, 0x3f10, 0x414d, 0xf77f },
++  /*   68 */ (__ev64_s16__) { 0x332f, 0x2677, 0x830c, 0x67d1 },
++  /*   69 */ (__ev64_s16__) { 0x362f, 0x7a05, 0x3cf2, 0x1aff },
++  /*   70 */ (__ev64_s16__) { 0x3221, 0xb625, 0x51cc, 0xb0f8 },
++  /*   71 */ (__ev64_s16__) { 0x7121, 0xba37, 0x43e6, 0xd9e8 },
++  /*   72 */ (__ev64_s16__) { 0xd8bd, 0xf1af, 0xe042, 0x2e25 },
++  /*   73 */ (__ev64_s16__) { 0xe152, 0xa0c6, 0xfa60, 0x00e2 },
++  /*   74 */ (__ev64_s16__) { 0xab05, 0xda97, 0xace0, 0xa550 },
++  /*   75 */ (__ev64_s16__) { 0x98ce, 0xe0b9, 0x1e70, 0x9de0 },
++  /*   76 */ (__ev64_s16__) { 0xaafd, 0xec85, 0xbefa, 0xc0ce },
++  /*   77 */ (__ev64_s16__) { 0x0c4e, 0xb328, 0xf900, 0x86a3 },
++  /*   78 */ (__ev64_s16__) { 0x218f, 0x912c, 0x63cf, 0x938b },
++  /*   79 */ (__ev64_s16__) { 0xbd14, 0x981c, 0x6726, 0x2b9c },
++  /*   80 */ (__ev64_s16__) { 0x7aea, 0xcedc, 0x4f20, 0xf78d },
++  /*   81 */ (__ev64_s16__) { 0x6d62, 0x8aaa, 0x35bf, 0xddfc },
++  /*   82 */ (__ev64_s16__) { 0xf014, 0x3af2, 0xc830, 0xf17c },
++  /*   83 */ (__ev64_s16__) { 0xb290, 0x28be, 0x7ab5, 0xecf5 },
++  /*   84 */ (__ev64_s16__) { 0xf7c7, 0x5b49, 0xdf03, 0xab86 },
++  /*   85 */ (__ev64_s16__) { 0x7796, 0x6a2c, 0x75c0, 0x34fc },
++  /*   86 */ (__ev64_s16__) { 0x77a8, 0x7f10, 0xee4d, 0x1ef6 },
++  /*   87 */ (__ev64_s16__) { 0x6d7f, 0xe0bf, 0xd6d6, 0xd164 },
++  /*   88 */ (__ev64_s16__) { 0xd557, 0x3f8c, 0x21b0, 0xc43c },
++  /*   89 */ (__ev64_s16__) { 0x5146, 0x6c59, 0xfb62, 0x4f94 },
++  /*   90 */ (__ev64_s16__) { 0x8a56, 0x0970, 0x88de, 0x92c1 },
++  /*   91 */ (__ev64_s16__) { 0x69ec, 0xa2c0, 0x85fa, 0x792f },
++  /*   92 */ (__ev64_s16__) { 0xb734, 0x932e, 0x4435, 0x8df3 },
++  /*   93 */ (__ev64_s16__) { 0xbf12, 0x8bcd, 0xa3b7, 0x654a },
++  /*   94 */ (__ev64_s16__) { 0x0f7f, 0x3653, 0xe447, 0x07aa },
++  /*   95 */ (__ev64_s16__) { 0xbcea, 0x55ab, 0x3f5e, 0x2ee6 },
++  /*   96 */ (__ev64_s16__) { 0xd775, 0x6e37, 0xda66, 0xd282 },
++  /*   97 */ (__ev64_s16__) { 0xc477, 0x211d, 0xdbc7, 0x03a8 },
++  /*   98 */ (__ev64_s16__) { 0xaa6b, 0x4d4e, 0x8f94, 0x7ac4 },
++  /*   99 */ (__ev64_s16__) { 0x95f6, 0xad03, 0x46f7, 0xb3ca },
++  /*  100 */ (__ev64_s16__) { 0x25de, 0xebc1, 0x394c, 0x4c89 },
++  /*  101 */ (__ev64_s16__) { 0x9c61, 0x3968, 0x6b36, 0xb064 },
++  /*  102 */ (__ev64_s16__) { 0xcfa3, 0x0c40, 0x63ec, 0x7724 },
++  /*  103 */ (__ev64_s16__) { 0xa549, 0x4c22, 0x15a4, 0xef8f },
++  /*  104 */ (__ev64_s16__) { 0xdee5, 0x69de, 0xfa68, 0x0a3e },
++  /*  105 */ (__ev64_s16__) { 0x0dc7, 0x5ea9, 0xe901, 0x8f95 },
++  /*  106 */ (__ev64_s16__) { 0xe75f, 0x0f23, 0x5b43, 0x60d4 },
++  /*  107 */ (__ev64_s16__) { 0xac12, 0x5ca9, 0x6428, 0xfcd9 },
++  /*  108 */ (__ev64_s16__) { 0x1918, 0x3ac6, 0xc792, 0x2bbb },
++  /*  109 */ (__ev64_s16__) { 0xbab1, 0x9d1e, 0xf50c, 0x1ab4 },
++  /*  110 */ (__ev64_s16__) { 0x7263, 0x34b6, 0xe708, 0xaef5 },
++  /*  111 */ (__ev64_s16__) { 0xd1f7, 0x414d, 0xa487, 0x55e2 },
++  /*  112 */ (__ev64_s16__) { 0x6f5d, 0x2c24, 0x9f95, 0x4036 },
++  /*  113 */ (__ev64_s16__) { 0x6912, 0xbd2b, 0xf5bd, 0xaaa0 },
++  /*  114 */ (__ev64_s16__) { 0x35b3, 0x88bf, 0x9bca, 0x2f2a },
++  /*  115 */ (__ev64_s16__) { 0xf48f, 0xb0a8, 0x8760, 0x05e3 },
++  /*  116 */ (__ev64_s16__) { 0xbf57, 0x8c6f, 0x59ef, 0xebec },
++  /*  117 */ (__ev64_s16__) { 0xa87f, 0xf1dc, 0x7da7, 0x5810 },
++  /*  118 */ (__ev64_s16__) { 0x9a97, 0x170d, 0x592e, 0x9e2f },
++  /*  119 */ (__ev64_s16__) { 0xe341, 0xcbb8, 0x59fd, 0x1915 },
++  /*  120 */ (__ev64_s16__) { 0xeec3, 0x433b, 0x7aea, 0xd54a },
++  /*  121 */ (__ev64_s16__) { 0x9159, 0x9670, 0x14d8, 0xca4e },
++  /*  122 */ (__ev64_s16__) { 0x6f21, 0x90ca, 0x7891, 0x9bcf },
++  /*  123 */ (__ev64_s16__) { 0xc131, 0xf926, 0x4dc4, 0x46b6 },
++  /*  124 */ (__ev64_s16__) { 0x1319, 0xf917, 0x0f1c, 0x0711 },
++  /*  125 */ (__ev64_s16__) { 0x6993, 0x1750, 0xfd70, 0xa573 },
++  /*  126 */ (__ev64_s16__) { 0x9bb8, 0x4503, 0x4fa2, 0x24a9 },
++  /*  127 */ (__ev64_s16__) { 0x9f6f, 0x6558, 0x2346, 0xbbcc },
++  /*  128 */ (__ev64_s16__) { 0x3f7d, 0x4f89, 0xc6c4, 0xdd5b },
++  /*  129 */ (__ev64_s16__) { 0x7d6f, 0x0b49, 0x1004, 0x5782 },
++  /*  130 */ (__ev64_s16__) { 0xb35f, 0x8647, 0x388d, 0xd8f2 },
++  /*  131 */ (__ev64_s16__) { 0x0345, 0xe6fb, 0xb1a7, 0x574a },
++  /*  132 */ (__ev64_s16__) { 0xc636, 0x432c, 0x5a2f, 0x3f10 },
++  /*  133 */ (__ev64_s16__) { 0x9c75, 0xa44e, 0x0226, 0xba2b },
++  /*  134 */ (__ev64_s16__) { 0xcc7c, 0x6f41, 0x9f6a, 0xe9ea },
++  /*  135 */ (__ev64_s16__) { 0x0794, 0xaf93, 0xdee0, 0x1558 },
++  /*  136 */ (__ev64_s16__) { 0x7661, 0xcb9d, 0x31a9, 0x586f },
++  /*  137 */ (__ev64_s16__) { 0x860f, 0xe357, 0x3f16, 0xa32e },
++  /*  138 */ (__ev64_s16__) { 0xf093, 0x0f84, 0x4ed1, 0x3d87 },
++  /*  139 */ (__ev64_s16__) { 0x0913, 0xfab9, 0x7a8f, 0x0b04 },
++  /*  140 */ (__ev64_s16__) { 0xd2bd, 0xb21c, 0xac00, 0x9630 },
++  /*  141 */ (__ev64_s16__) { 0x2f07, 0x4d41, 0xed55, 0xcdf2 },
++  /*  142 */ (__ev64_s16__) { 0xa395, 0xae41, 0x697e, 0x0f16 },
++  /*  143 */ (__ev64_s16__) { 0x39d6, 0xeac2, 0xd47d, 0x081e },
++  /*  144 */ (__ev64_s16__) { 0x7c2b, 0xb434, 0x2592, 0x36bd },
++  /*  145 */ (__ev64_s16__) { 0xffc3, 0x1973, 0x30d5, 0x1200 },
++  /*  146 */ (__ev64_s16__) { 0xd859, 0x5232, 0xe625, 0x3d11 },
++  /*  147 */ (__ev64_s16__) { 0x5010, 0x60b5, 0x2424, 0x72fa },
++  /*  148 */ (__ev64_s16__) { 0xf138, 0x7cf0, 0xde6c, 0xc79f },
++  /*  149 */ (__ev64_s16__) { 0x5aee, 0x2aa7, 0x4713, 0x0b64 },
++  /*  150 */ (__ev64_s16__) { 0x7069, 0xb217, 0x68f1, 0x069a },
++  /*  151 */ (__ev64_s16__) { 0x17d9, 0xe80f, 0x1df2, 0x9b67 },
++  /*  152 */ (__ev64_s16__) { 0xe225, 0xddcd, 0x68fe, 0x3fcf },
++  /*  153 */ (__ev64_s16__) { 0x7456, 0x7770, 0xe303, 0xce29 },
++  /*  154 */ (__ev64_s16__) { 0x8b1c, 0x9ef5, 0xf94c, 0x357f },
++  /*  155 */ (__ev64_s16__) { 0x2205, 0xbf8e, 0xaf44, 0x4796 },
++  /*  156 */ (__ev64_s16__) { 0xaf8b, 0xe6f1, 0xac20, 0xebdb },
++  /*  157 */ (__ev64_s16__) { 0x2d8c, 0x6331, 0x0a66, 0xff19 },
++  /*  158 */ (__ev64_s16__) { 0x28d5, 0x238a, 0x4d45, 0xa674 },
++  /*  159 */ (__ev64_s16__) { 0x2289, 0x9497, 0x018a, 0x335b },
++  /*  160 */ (__ev64_s16__) { 0xd428, 0x69d7, 0x25d6, 0xb482 },
++  /*  161 */ (__ev64_s16__) { 0x193b, 0x7a06, 0x0ef6, 0x9d49 },
++  /*  162 */ (__ev64_s16__) { 0x862c, 0x4e7e, 0x04b9, 0x2cee },
++  /*  163 */ (__ev64_s16__) { 0x92c9, 0xe897, 0xacd6, 0xd164 },
++  /*  164 */ (__ev64_s16__) { 0x5abc, 0x6253, 0x4cd1, 0x287e },
++  /*  165 */ (__ev64_s16__) { 0x333b, 0x31db, 0x2546, 0x12ea },
++  /*  166 */ (__ev64_s16__) { 0x4895, 0xb571, 0x366d, 0xc4fa },
++  /*  167 */ (__ev64_s16__) { 0xb23e, 0x2104, 0xf2c9, 0x8f88 },
++  /*  168 */ (__ev64_s16__) { 0x9335, 0xea4a, 0x7eb6, 0x9503 },
++  /*  169 */ (__ev64_s16__) { 0xa2ab, 0xd14c, 0x52ce, 0xe032 },
++  /*  170 */ (__ev64_s16__) { 0xe37c, 0xa773, 0x8abf, 0x041b },
++  /*  171 */ (__ev64_s16__) { 0x56d8, 0xee88, 0x91ec, 0x94ed },
++  /*  172 */ (__ev64_s16__) { 0x6504, 0x2e0e, 0x9c7c, 0x5c1e },
++  /*  173 */ (__ev64_s16__) { 0xc36d, 0x2f60, 0xd846, 0x4279 },
++  /*  174 */ (__ev64_s16__) { 0x6c02, 0x5803, 0xbf7a, 0x5e94 },
++  /*  175 */ (__ev64_s16__) { 0x79c0, 0xede6, 0x5b1b, 0x9da0 },
++  /*  176 */ (__ev64_s16__) { 0x74b0, 0x0844, 0x5b2f, 0x38ed },
++  /*  177 */ (__ev64_s16__) { 0xa6ec, 0xd216, 0x29bb, 0xce2d },
++  /*  178 */ (__ev64_s16__) { 0x328b, 0x4c51, 0xf5a3, 0x48a5 },
++  /*  179 */ (__ev64_s16__) { 0x17e1, 0xc47e, 0xcfc0, 0xc0f0 },
++  /*  180 */ (__ev64_s16__) { 0x747f, 0x33b7, 0xe530, 0xd06d },
++  /*  181 */ (__ev64_s16__) { 0x63f8, 0x6c84, 0xd9ae, 0x3cfb },
++  /*  182 */ (__ev64_s16__) { 0x2710, 0xb506, 0xa6c9, 0x682d },
++  /*  183 */ (__ev64_s16__) { 0xfb69, 0xab8e, 0xb3ee, 0x1de8 },
++  /*  184 */ (__ev64_s16__) { 0x7e9f, 0x94ff, 0x8d14, 0x8411 },
++  /*  185 */ (__ev64_s16__) { 0xaebb, 0xd4e9, 0x2046, 0x7499 },
++  /*  186 */ (__ev64_s16__) { 0xaa30, 0xcef0, 0x542b, 0x7eda },
++  /*  187 */ (__ev64_s16__) { 0x6b62, 0x7843, 0x48f4, 0x4c9e },
++  /*  188 */ (__ev64_s16__) { 0xafc2, 0x7667, 0x8e71, 0xb49c },
++  /*  189 */ (__ev64_s16__) { 0x83cb, 0x93bf, 0x4964, 0x6a86 },
++  /*  190 */ (__ev64_s16__) { 0xe222, 0x7ae6, 0xf170, 0xabbf },
++  /*  191 */ (__ev64_s16__) { 0xf46a, 0xf1a9, 0x9841, 0x05d2 },
++  /*  192 */ (__ev64_s16__) { 0xbce2, 0xa6d6, 0xd8d5, 0x3db1 },
++  /*  193 */ (__ev64_s16__) { 0x16eb, 0x8724, 0x134b, 0xf860 },
++  /*  194 */ (__ev64_s16__) { 0x9385, 0xe1d3, 0xe038, 0xaf8f },
++  /*  195 */ (__ev64_s16__) { 0x0b86, 0xf6fd, 0x12a3, 0x11f5 },
++  /*  196 */ (__ev64_s16__) { 0x07c6, 0xee93, 0x4fc0, 0x26cb },
++  /*  197 */ (__ev64_s16__) { 0x1efe, 0x8909, 0x6a1b, 0xbfaa },
++  /*  198 */ (__ev64_s16__) { 0x7ebf, 0xba92, 0x5ef3, 0x624e },
++  /*  199 */ (__ev64_s16__) { 0x92e6, 0x03c2, 0xc98b, 0xebd9 },
++  /*  200 */ (__ev64_s16__) { 0x75ee, 0x813a, 0xb118, 0x2eeb },
++  /*  201 */ (__ev64_s16__) { 0xa92a, 0x06a4, 0x6ed6, 0x4898 },
++  /*  202 */ (__ev64_s16__) { 0x514d, 0x8b80, 0xfb9d, 0xa2ce },
++  /*  203 */ (__ev64_s16__) { 0x6c00, 0x9def, 0x926b, 0x6a43 },
++  /*  204 */ (__ev64_s16__) { 0x0880, 0x38e7, 0xa5fc, 0x195a },
++  /*  205 */ (__ev64_s16__) { 0x7587, 0x5ae1, 0x9694, 0x8b55 },
++  /*  206 */ (__ev64_s16__) { 0x6c6a, 0x6c57, 0xa07f, 0x689d },
++  /*  207 */ (__ev64_s16__) { 0x1689, 0xcc75, 0x9d5f, 0x1331 },
++  /*  208 */ (__ev64_s16__) { 0x039f, 0xe19f, 0x3a6b, 0x3b70 },
++  /*  209 */ (__ev64_s16__) { 0xbd0e, 0x15a1, 0xe06d, 0x655e },
++  /*  210 */ (__ev64_s16__) { 0x851d, 0x6547, 0x514e, 0xdc37 },
++  /*  211 */ (__ev64_s16__) { 0xd6c6, 0xc444, 0x9eeb, 0xe611 },
++  /*  212 */ (__ev64_s16__) { 0x7cb3, 0x5e3b, 0x3599, 0x377d },
++  /*  213 */ (__ev64_s16__) { 0x7a6a, 0x3053, 0x02c1, 0xc843 },
++  /*  214 */ (__ev64_s16__) { 0x3131, 0xdb0e, 0x84f3, 0xbbab },
++  /*  215 */ (__ev64_s16__) { 0xc5bf, 0x9932, 0xc34a, 0x10f8 },
++  /*  216 */ (__ev64_s16__) { 0x81e9, 0x6d26, 0x01d6, 0xf92b },
++  /*  217 */ (__ev64_s16__) { 0x7d70, 0x45e7, 0xa461, 0x0973 },
++  /*  218 */ (__ev64_s16__) { 0xe154, 0xe168, 0xb7dd, 0xd78e },
++  /*  219 */ (__ev64_s16__) { 0x4155, 0x2a31, 0x36ee, 0x60ce },
++  /*  220 */ (__ev64_s16__) { 0x5805, 0x8cd8, 0xa90e, 0x9fdf },
++  /*  221 */ (__ev64_s16__) { 0x80d7, 0x98c3, 0xc3cc, 0x97a5 },
++  /*  222 */ (__ev64_s16__) { 0xb03a, 0xc8a2, 0x8809, 0x1ea8 },
++  /*  223 */ (__ev64_s16__) { 0x924e, 0x50c3, 0x7ecd, 0xa3cd },
++  /*  224 */ (__ev64_s16__) { 0xd252, 0xf958, 0x1b07, 0xb68a },
++  /*  225 */ (__ev64_s16__) { 0xcb38, 0xec75, 0xe7a8, 0xa4ef },
++  /*  226 */ (__ev64_s16__) { 0x64e4, 0x650e, 0x7e6e, 0xf602 },
++  /*  227 */ (__ev64_s16__) { 0xf097, 0x9b37, 0xac69, 0xe204 },
++  /*  228 */ (__ev64_s16__) { 0x5f4f, 0x08de, 0x775d, 0xc5f2 },
++  /*  229 */ (__ev64_s16__) { 0x7d0f, 0xfa5a, 0xe2ae, 0xaa6c },
++  /*  230 */ (__ev64_s16__) { 0xd628, 0xef10, 0xf74f, 0xef46 },
++  /*  231 */ (__ev64_s16__) { 0x1326, 0xc849, 0x81ae, 0x2b43 },
++  /*  232 */ (__ev64_s16__) { 0xe286, 0x69dc, 0x9ed5, 0x72f1 },
++  /*  233 */ (__ev64_s16__) { 0x7995, 0x55ea, 0xb8cb, 0x7ae9 },
++  /*  234 */ (__ev64_s16__) { 0xe807, 0x7523, 0xacdd, 0x39f0 },
++  /*  235 */ (__ev64_s16__) { 0xac8b, 0x00fa, 0x57dc, 0x4f41 },
++  /*  236 */ (__ev64_s16__) { 0x692e, 0xda78, 0xc253, 0xdfbb },
++  /*  237 */ (__ev64_s16__) { 0x5840, 0xa70a, 0xb027, 0x319b },
++  /*  238 */ (__ev64_s16__) { 0xaf17, 0x7d4e, 0xefd2, 0xd841 },
++  /*  239 */ (__ev64_s16__) { 0xeb74, 0x24a6, 0xe72d, 0xb889 },
++  /*  240 */ (__ev64_s16__) { 0x765b, 0xa211, 0x4f3f, 0x0941 },
++  /*  241 */ (__ev64_s16__) { 0x01ef, 0xf8a7, 0x74a3, 0x0316 },
++  /*  242 */ (__ev64_s16__) { 0x229f, 0x8115, 0x8442, 0x7f85 },
++  /*  243 */ (__ev64_s16__) { 0x4b3a, 0x4f94, 0xeadb, 0xabd8 },
++  /*  244 */ (__ev64_s16__) { 0xc618, 0x78f5, 0x0a7b, 0x88e3 },
++  /*  245 */ (__ev64_s16__) { 0x9acc, 0x0d73, 0x5071, 0x46b0 },
++  /*  246 */ (__ev64_s16__) { 0x6b46, 0x5849, 0x6a4c, 0x5dac },
++  /*  247 */ (__ev64_s16__) { 0x241c, 0xb1b8, 0xe6a0, 0xded9 },
++  /*  248 */ (__ev64_s16__) { 0x3dce, 0xdf57, 0xf0d9, 0xfd5a },
++  /*  249 */ (__ev64_s16__) { 0xefed, 0x09ec, 0xe81d, 0x48d5 },
++  /*  250 */ (__ev64_s16__) { 0xd481, 0x9c8e, 0x665b, 0xfa04 },
++  /*  251 */ (__ev64_s16__) { 0x3bde, 0x2528, 0xad53, 0x254e },
++  /*  252 */ (__ev64_s16__) { 0xab1c, 0xb5ee, 0x30bd, 0x82fd },
++  /*  253 */ (__ev64_s16__) { 0x90a8, 0x5524, 0x28be, 0x2e09 },
++  /*  254 */ (__ev64_s16__) { 0x4233, 0xce9c, 0x7e44, 0x88df },
++  /*  255 */ (__ev64_s16__) { 0x73d0, 0x70d6, 0xbe25, 0xcff1 },
++
++};
++
++const __ev64_s16__ rB4s16[NELTS(rA4s16)] = {
++
++  /*    0 */ (__ev64_s16__) { 0xe642, 0x478e, 0x8b07, 0xe773 },
++  /*    1 */ (__ev64_s16__) { 0xe97b, 0xe7b2, 0xd812, 0x87b4 },
++  /*    2 */ (__ev64_s16__) { 0x943a, 0x607a, 0xcdb1, 0x1d2a },
++  /*    3 */ (__ev64_s16__) { 0x12cc, 0x9666, 0x24ae, 0x9b64 },
++  /*    4 */ (__ev64_s16__) { 0xaaa6, 0xe8f5, 0x5444, 0x7288 },
++  /*    5 */ (__ev64_s16__) { 0x7248, 0x823b, 0xe002, 0xecbd },
++  /*    6 */ (__ev64_s16__) { 0x6c08, 0x6049, 0x14c0, 0x3890 },
++  /*    7 */ (__ev64_s16__) { 0x5e42, 0xa130, 0x0241, 0x2760 },
++  /*    8 */ (__ev64_s16__) { 0x9dde, 0xbd5d, 0x5537, 0x9083 },
++  /*    9 */ (__ev64_s16__) { 0x7963, 0x2faa, 0x7605, 0x7e35 },
++  /*   10 */ (__ev64_s16__) { 0xb25a, 0xf04f, 0x86e6, 0x68ad },
++  /*   11 */ (__ev64_s16__) { 0x337a, 0xdf59, 0x5733, 0xd8d1 },
++  /*   12 */ (__ev64_s16__) { 0xa713, 0x7e0c, 0x15f1, 0x019c },
++  /*   13 */ (__ev64_s16__) { 0x71ea, 0xf941, 0xb362, 0x77ae },
++  /*   14 */ (__ev64_s16__) { 0xfcec, 0xaceb, 0x88f1, 0xd933 },
++  /*   15 */ (__ev64_s16__) { 0x6263, 0x7baa, 0x3f41, 0x2ff1 },
++  /*   16 */ (__ev64_s16__) { 0xd708, 0xf570, 0x4760, 0x67dc },
++  /*   17 */ (__ev64_s16__) { 0x9342, 0xdefa, 0x8bd9, 0xb10e },
++  /*   18 */ (__ev64_s16__) { 0x5811, 0x5c19, 0x7f3f, 0xa8cf },
++  /*   19 */ (__ev64_s16__) { 0xa263, 0x1d31, 0xddf8, 0xe36e },
++  /*   20 */ (__ev64_s16__) { 0x21b2, 0xdca8, 0x343f, 0x3aae },
++  /*   21 */ (__ev64_s16__) { 0x6832, 0xeff8, 0x287d, 0x5e40 },
++  /*   22 */ (__ev64_s16__) { 0xc750, 0x1c38, 0xbec8, 0xfe11 },
++  /*   23 */ (__ev64_s16__) { 0xc831, 0xbdc6, 0xe8ce, 0x9b22 },
++  /*   24 */ (__ev64_s16__) { 0xe83a, 0x9f9b, 0xcc41, 0xea92 },
++  /*   25 */ (__ev64_s16__) { 0x94f4, 0xd6f6, 0x7f60, 0x4cfa },
++  /*   26 */ (__ev64_s16__) { 0x8823, 0xac44, 0x9d4a, 0x6a73 },
++  /*   27 */ (__ev64_s16__) { 0x9558, 0xe7a0, 0x7b9a, 0xcb66 },
++  /*   28 */ (__ev64_s16__) { 0xe645, 0xd884, 0xdd5f, 0xaee8 },
++  /*   29 */ (__ev64_s16__) { 0x0329, 0x47db, 0x77b9, 0xafd3 },
++  /*   30 */ (__ev64_s16__) { 0x4727, 0x6e32, 0x688a, 0x8158 },
++  /*   31 */ (__ev64_s16__) { 0xebf0, 0x6477, 0xe5f5, 0xc281 },
++  /*   32 */ (__ev64_s16__) { 0x9d50, 0x8b54, 0x9368, 0x8751 },
++  /*   33 */ (__ev64_s16__) { 0x5fb7, 0xa32f, 0x5b83, 0x298e },
++  /*   34 */ (__ev64_s16__) { 0x51e0, 0xd359, 0x0430, 0x6c28 },
++  /*   35 */ (__ev64_s16__) { 0x593d, 0x05c3, 0x2ef4, 0x734c },
++  /*   36 */ (__ev64_s16__) { 0xb388, 0xd087, 0xcf89, 0x8fc2 },
++  /*   37 */ (__ev64_s16__) { 0x277a, 0x4311, 0x4356, 0x773f },
++  /*   38 */ (__ev64_s16__) { 0xc990, 0xe836, 0xbd4e, 0x9855 },
++  /*   39 */ (__ev64_s16__) { 0xfe8b, 0x6d87, 0x1e67, 0xa782 },
++  /*   40 */ (__ev64_s16__) { 0x9f5a, 0x79a7, 0x15e2, 0xb4c0 },
++  /*   41 */ (__ev64_s16__) { 0x4db0, 0x5f15, 0x7752, 0x34a6 },
++  /*   42 */ (__ev64_s16__) { 0x0887, 0x32c0, 0xf956, 0xb614 },
++  /*   43 */ (__ev64_s16__) { 0x161b, 0xadf3, 0x08df, 0x6c18 },
++  /*   44 */ (__ev64_s16__) { 0x5339, 0x7764, 0x20e7, 0x0fbc },
++  /*   45 */ (__ev64_s16__) { 0xc765, 0x7a09, 0x2121, 0xed38 },
++  /*   46 */ (__ev64_s16__) { 0x41eb, 0xc49c, 0xd636, 0x5ad1 },
++  /*   47 */ (__ev64_s16__) { 0x619f, 0xc9af, 0x1a32, 0x48fa },
++  /*   48 */ (__ev64_s16__) { 0xe708, 0x39ab, 0x8c1b, 0xb2fd },
++  /*   49 */ (__ev64_s16__) { 0x607c, 0xb23f, 0xf30f, 0xf971 },
++  /*   50 */ (__ev64_s16__) { 0xd807, 0x30fa, 0xce97, 0xbf7c },
++  /*   51 */ (__ev64_s16__) { 0x82e3, 0x54cc, 0x48e5, 0x406f },
++  /*   52 */ (__ev64_s16__) { 0x0d16, 0xb533, 0x2dbb, 0xb5fe },
++  /*   53 */ (__ev64_s16__) { 0x6efb, 0x087b, 0xbf9d, 0xd013 },
++  /*   54 */ (__ev64_s16__) { 0x0826, 0x0bb0, 0x407c, 0x1d0c },
++  /*   55 */ (__ev64_s16__) { 0x6086, 0x77be, 0xb8ef, 0x21aa },
++  /*   56 */ (__ev64_s16__) { 0x4b4c, 0xfa8f, 0x31fb, 0x4b76 },
++  /*   57 */ (__ev64_s16__) { 0x97ea, 0xb1e8, 0xa208, 0x9474 },
++  /*   58 */ (__ev64_s16__) { 0xc10c, 0xf603, 0x8752, 0xd3ac },
++  /*   59 */ (__ev64_s16__) { 0xf8a9, 0x1601, 0xa9f3, 0x708f },
++  /*   60 */ (__ev64_s16__) { 0x3160, 0xef48, 0x39f0, 0xf724 },
++  /*   61 */ (__ev64_s16__) { 0x99a8, 0xd73e, 0x4e9f, 0x6b8c },
++  /*   62 */ (__ev64_s16__) { 0x89dc, 0x4ee6, 0xdae0, 0x5730 },
++  /*   63 */ (__ev64_s16__) { 0x55b5, 0x8211, 0x0ec1, 0x6a27 },
++  /*   64 */ (__ev64_s16__) { 0x7ea5, 0xecb3, 0x06fe, 0x0079 },
++  /*   65 */ (__ev64_s16__) { 0xc4c7, 0xa079, 0xb529, 0xd7ce },
++  /*   66 */ (__ev64_s16__) { 0xb7ff, 0x5230, 0x4440, 0xc0e0 },
++  /*   67 */ (__ev64_s16__) { 0x8f5d, 0xb213, 0x1ff1, 0xa5f6 },
++  /*   68 */ (__ev64_s16__) { 0x73da, 0x5f57, 0x03a2, 0x017a },
++  /*   69 */ (__ev64_s16__) { 0xc53a, 0x316d, 0xb541, 0x099e },
++  /*   70 */ (__ev64_s16__) { 0xbadf, 0xf03a, 0xcf86, 0x1339 },
++  /*   71 */ (__ev64_s16__) { 0x7b65, 0x8e38, 0x5600, 0x7c4d },
++  /*   72 */ (__ev64_s16__) { 0x96b2, 0x1db6, 0xbb7f, 0xb3df },
++  /*   73 */ (__ev64_s16__) { 0x71af, 0x502d, 0x6529, 0x4971 },
++  /*   74 */ (__ev64_s16__) { 0x98ca, 0x949a, 0xc397, 0xcda4 },
++  /*   75 */ (__ev64_s16__) { 0x31db, 0x823b, 0xecae, 0xbb12 },
++  /*   76 */ (__ev64_s16__) { 0xfd82, 0x9ed2, 0x0469, 0x2e10 },
++  /*   77 */ (__ev64_s16__) { 0xfee6, 0x856f, 0x2d6a, 0x8d40 },
++  /*   78 */ (__ev64_s16__) { 0x8be4, 0xc487, 0xced1, 0x0a54 },
++  /*   79 */ (__ev64_s16__) { 0xae7b, 0xa938, 0x46e7, 0x4690 },
++  /*   80 */ (__ev64_s16__) { 0xad7a, 0xb78a, 0x1afe, 0x7c59 },
++  /*   81 */ (__ev64_s16__) { 0x7fca, 0x6d15, 0xfc44, 0xb3ec },
++  /*   82 */ (__ev64_s16__) { 0x8e89, 0x1a7d, 0xb914, 0x52bd },
++  /*   83 */ (__ev64_s16__) { 0xe5ca, 0x846f, 0x8da2, 0x59a5 },
++  /*   84 */ (__ev64_s16__) { 0x7ffe, 0x5f0c, 0x03c2, 0x33c4 },
++  /*   85 */ (__ev64_s16__) { 0x9c24, 0x6303, 0xc1b4, 0xf0a3 },
++  /*   86 */ (__ev64_s16__) { 0xeb65, 0x1658, 0x0141, 0x506a },
++  /*   87 */ (__ev64_s16__) { 0x7c9d, 0x04f5, 0xfc13, 0xc482 },
++  /*   88 */ (__ev64_s16__) { 0xb16e, 0x2277, 0x2aa3, 0x8f4f },
++  /*   89 */ (__ev64_s16__) { 0x007a, 0xa438, 0x0b70, 0x5a3e },
++  /*   90 */ (__ev64_s16__) { 0x6ed8, 0x48e9, 0x8b01, 0xd8a0 },
++  /*   91 */ (__ev64_s16__) { 0x0acb, 0xe683, 0x8a80, 0xb1aa },
++  /*   92 */ (__ev64_s16__) { 0x3ff9, 0x8a28, 0x304b, 0x970f },
++  /*   93 */ (__ev64_s16__) { 0x0c2e, 0xb436, 0xe48b, 0x5135 },
++  /*   94 */ (__ev64_s16__) { 0xc8ec, 0x35b8, 0x30ce, 0x929e },
++  /*   95 */ (__ev64_s16__) { 0xd3ea, 0x6d98, 0xd40b, 0x4c5e },
++  /*   96 */ (__ev64_s16__) { 0x4a89, 0x6ce6, 0x3133, 0x8764 },
++  /*   97 */ (__ev64_s16__) { 0x23bf, 0x69fa, 0x60b6, 0xebe0 },
++  /*   98 */ (__ev64_s16__) { 0x14b3, 0x284f, 0x238b, 0x2a92 },
++  /*   99 */ (__ev64_s16__) { 0x2270, 0x5085, 0x6970, 0xded2 },
++  /*  100 */ (__ev64_s16__) { 0xe836, 0xd794, 0x7bc6, 0x6ec4 },
++  /*  101 */ (__ev64_s16__) { 0xf17c, 0xb6d2, 0x155b, 0x9ced },
++  /*  102 */ (__ev64_s16__) { 0xd9dd, 0x03f3, 0x6eba, 0x27e4 },
++  /*  103 */ (__ev64_s16__) { 0x1ecf, 0x288f, 0xcb36, 0xec4f },
++  /*  104 */ (__ev64_s16__) { 0x89cb, 0x8731, 0x8bd4, 0x453c },
++  /*  105 */ (__ev64_s16__) { 0x0b4d, 0x73d3, 0x3d67, 0x7587 },
++  /*  106 */ (__ev64_s16__) { 0x4652, 0xa213, 0xf475, 0x2a6a },
++  /*  107 */ (__ev64_s16__) { 0x10d9, 0xae5e, 0x2d4b, 0xfc04 },
++  /*  108 */ (__ev64_s16__) { 0x218c, 0x2715, 0x42d7, 0x7ffc },
++  /*  109 */ (__ev64_s16__) { 0x5412, 0xef8d, 0x6ed5, 0x368d },
++  /*  110 */ (__ev64_s16__) { 0x65b1, 0x0bae, 0x175c, 0x0b12 },
++  /*  111 */ (__ev64_s16__) { 0xf460, 0xaa76, 0x4476, 0xb44b },
++  /*  112 */ (__ev64_s16__) { 0xa3c2, 0x5ea6, 0x236b, 0xe016 },
++  /*  113 */ (__ev64_s16__) { 0x69fc, 0x3e43, 0x6869, 0xe9a7 },
++  /*  114 */ (__ev64_s16__) { 0xcd20, 0x6e25, 0xfbd1, 0x2ac5 },
++  /*  115 */ (__ev64_s16__) { 0xeb23, 0x4a1f, 0xe6b4, 0xa9d2 },
++  /*  116 */ (__ev64_s16__) { 0x928e, 0x62c8, 0x83ae, 0x0196 },
++  /*  117 */ (__ev64_s16__) { 0xfc93, 0xc18d, 0xb987, 0x3550 },
++  /*  118 */ (__ev64_s16__) { 0x8240, 0xc9a6, 0x9648, 0x6564 },
++  /*  119 */ (__ev64_s16__) { 0x9a3d, 0x644a, 0xe87f, 0xb3a4 },
++  /*  120 */ (__ev64_s16__) { 0xb695, 0x878a, 0xcd98, 0x8b8b },
++  /*  121 */ (__ev64_s16__) { 0x832e, 0xa9a5, 0xb355, 0x62b6 },
++  /*  122 */ (__ev64_s16__) { 0xca75, 0x7bde, 0x5216, 0x0657 },
++  /*  123 */ (__ev64_s16__) { 0x4b1f, 0xa6ac, 0x5c55, 0xd088 },
++  /*  124 */ (__ev64_s16__) { 0x45a5, 0x16e3, 0xc938, 0xff5a },
++  /*  125 */ (__ev64_s16__) { 0x7871, 0xbf20, 0xafa0, 0x6178 },
++  /*  126 */ (__ev64_s16__) { 0xc08f, 0x5569, 0x3fcc, 0xb327 },
++  /*  127 */ (__ev64_s16__) { 0x2bd4, 0x0ccd, 0x4679, 0x21b8 },
++  /*  128 */ (__ev64_s16__) { 0xaaa2, 0x6dfd, 0x79c9, 0x37bd },
++  /*  129 */ (__ev64_s16__) { 0x0e65, 0x0d9a, 0x2634, 0xab21 },
++  /*  130 */ (__ev64_s16__) { 0x5e52, 0x8080, 0xfa13, 0xa45e },
++  /*  131 */ (__ev64_s16__) { 0x5a80, 0x2092, 0xb518, 0x380d },
++  /*  132 */ (__ev64_s16__) { 0x729e, 0xeb91, 0x23a2, 0xe03d },
++  /*  133 */ (__ev64_s16__) { 0x7b7f, 0x60fb, 0xe613, 0x4487 },
++  /*  134 */ (__ev64_s16__) { 0xd544, 0xbae1, 0xbc5f, 0x0f7e },
++  /*  135 */ (__ev64_s16__) { 0xe48e, 0x2a51, 0x9a0d, 0x2329 },
++  /*  136 */ (__ev64_s16__) { 0xe0a1, 0x8313, 0x8138, 0xc350 },
++  /*  137 */ (__ev64_s16__) { 0xacbb, 0x0f64, 0xd3d1, 0x6671 },
++  /*  138 */ (__ev64_s16__) { 0x1396, 0x2e94, 0x6b69, 0xfbc9 },
++  /*  139 */ (__ev64_s16__) { 0x01de, 0xaf11, 0x1bd3, 0xb296 },
++  /*  140 */ (__ev64_s16__) { 0x1aa8, 0xaa2e, 0xee05, 0x7857 },
++  /*  141 */ (__ev64_s16__) { 0x9fe0, 0x4cc0, 0xbec2, 0x7a83 },
++  /*  142 */ (__ev64_s16__) { 0x00df, 0x171a, 0x7e81, 0x1260 },
++  /*  143 */ (__ev64_s16__) { 0x0efa, 0xa357, 0x2c67, 0xf8f5 },
++  /*  144 */ (__ev64_s16__) { 0x805e, 0x8ffe, 0x2426, 0x4e81 },
++  /*  145 */ (__ev64_s16__) { 0xceb9, 0x651a, 0x42cf, 0xd18b },
++  /*  146 */ (__ev64_s16__) { 0xb9c3, 0xa5bd, 0x9687, 0xda72 },
++  /*  147 */ (__ev64_s16__) { 0x4b12, 0xda5f, 0x1d87, 0xdb78 },
++  /*  148 */ (__ev64_s16__) { 0xf44b, 0x739f, 0xa8a4, 0x46a5 },
++  /*  149 */ (__ev64_s16__) { 0x81f7, 0xa246, 0x47c0, 0x02ee },
++  /*  150 */ (__ev64_s16__) { 0x70a6, 0x77d1, 0x605f, 0x8d99 },
++  /*  151 */ (__ev64_s16__) { 0x4df4, 0xa1e1, 0xb1e9, 0x0510 },
++  /*  152 */ (__ev64_s16__) { 0x67ce, 0xdc5b, 0x76e4, 0x1643 },
++  /*  153 */ (__ev64_s16__) { 0x4b10, 0xb10a, 0x267b, 0x78cc },
++  /*  154 */ (__ev64_s16__) { 0x3035, 0x108b, 0x01dc, 0x2458 },
++  /*  155 */ (__ev64_s16__) { 0xdf92, 0xc751, 0xc1a0, 0x6053 },
++  /*  156 */ (__ev64_s16__) { 0x9e8c, 0xf96c, 0x3744, 0xdbcc },
++  /*  157 */ (__ev64_s16__) { 0x7d93, 0x8479, 0xbd1b, 0xa4ec },
++  /*  158 */ (__ev64_s16__) { 0x647f, 0x6705, 0x7b9b, 0x4bf6 },
++  /*  159 */ (__ev64_s16__) { 0xd5d0, 0x8676, 0xaa34, 0x2199 },
++  /*  160 */ (__ev64_s16__) { 0x12e3, 0x184a, 0x7db0, 0x0882 },
++  /*  161 */ (__ev64_s16__) { 0x0370, 0x6db9, 0x1b92, 0x1e22 },
++  /*  162 */ (__ev64_s16__) { 0x2e10, 0x523a, 0x217e, 0x4fe3 },
++  /*  163 */ (__ev64_s16__) { 0x0d14, 0x0862, 0xa33c, 0x9ef7 },
++  /*  164 */ (__ev64_s16__) { 0x009c, 0x6d44, 0xb810, 0xbf93 },
++  /*  165 */ (__ev64_s16__) { 0x6a98, 0xf0a7, 0x6bea, 0x8ba7 },
++  /*  166 */ (__ev64_s16__) { 0x07e3, 0x0ab6, 0xd3ef, 0xfff4 },
++  /*  167 */ (__ev64_s16__) { 0x75ec, 0x51cd, 0x4a59, 0x9b96 },
++  /*  168 */ (__ev64_s16__) { 0xa36d, 0xa847, 0x19af, 0xe4b0 },
++  /*  169 */ (__ev64_s16__) { 0xe799, 0x9c94, 0x066b, 0x1f44 },
++  /*  170 */ (__ev64_s16__) { 0x2edf, 0x13b6, 0x8d1f, 0x15e2 },
++  /*  171 */ (__ev64_s16__) { 0x4608, 0xc8a5, 0xe87c, 0xf5c9 },
++  /*  172 */ (__ev64_s16__) { 0x326c, 0xc22f, 0x29aa, 0x8b50 },
++  /*  173 */ (__ev64_s16__) { 0xf045, 0xe0b2, 0xd202, 0xa7ec },
++  /*  174 */ (__ev64_s16__) { 0x66e1, 0xbc9d, 0xfd94, 0xaf25 },
++  /*  175 */ (__ev64_s16__) { 0xd8ea, 0x5c49, 0xfcda, 0x1952 },
++  /*  176 */ (__ev64_s16__) { 0x1f00, 0x9668, 0xeb74, 0x718c },
++  /*  177 */ (__ev64_s16__) { 0xb5d8, 0xf711, 0x1daf, 0x9b1c },
++  /*  178 */ (__ev64_s16__) { 0xf9b9, 0x884d, 0x6624, 0xff69 },
++  /*  179 */ (__ev64_s16__) { 0x1c1e, 0xae51, 0xfd25, 0xdff1 },
++  /*  180 */ (__ev64_s16__) { 0xaeca, 0xef73, 0x786f, 0xf117 },
++  /*  181 */ (__ev64_s16__) { 0x3fb5, 0x18ca, 0xec7e, 0xb970 },
++  /*  182 */ (__ev64_s16__) { 0x8e72, 0xcb1b, 0x8f81, 0x082f },
++  /*  183 */ (__ev64_s16__) { 0x571c, 0x4b1b, 0x45e8, 0x85ab },
++  /*  184 */ (__ev64_s16__) { 0xdb15, 0x40a7, 0x92b3, 0xa9f4 },
++  /*  185 */ (__ev64_s16__) { 0x8141, 0x77d6, 0xc11e, 0xb804 },
++  /*  186 */ (__ev64_s16__) { 0x56bd, 0x8dc4, 0x65dd, 0x1b9f },
++  /*  187 */ (__ev64_s16__) { 0x6aa9, 0xaf4a, 0x7357, 0xecfa },
++  /*  188 */ (__ev64_s16__) { 0x4883, 0x5a55, 0x10a1, 0x8aa1 },
++  /*  189 */ (__ev64_s16__) { 0x7c43, 0x02be, 0x0f41, 0x1e89 },
++  /*  190 */ (__ev64_s16__) { 0x800d, 0x6c41, 0xc155, 0xe88a },
++  /*  191 */ (__ev64_s16__) { 0x5afd, 0x5e06, 0x72a7, 0x9c69 },
++  /*  192 */ (__ev64_s16__) { 0xdfd5, 0x9f0b, 0x79d0, 0x703d },
++  /*  193 */ (__ev64_s16__) { 0x6123, 0xe2a6, 0xb304, 0xdfdb },
++  /*  194 */ (__ev64_s16__) { 0x7248, 0x7e2a, 0xb0f1, 0x0b3c },
++  /*  195 */ (__ev64_s16__) { 0x82a3, 0x07b9, 0xa3c5, 0x02ef },
++  /*  196 */ (__ev64_s16__) { 0xa8ea, 0xd46f, 0x5c68, 0xff0c },
++  /*  197 */ (__ev64_s16__) { 0x11b0, 0x71b3, 0xabdd, 0x497c },
++  /*  198 */ (__ev64_s16__) { 0x6cde, 0x78c4, 0x1503, 0x68c4 },
++  /*  199 */ (__ev64_s16__) { 0x0df5, 0x80c0, 0x3388, 0xf517 },
++  /*  200 */ (__ev64_s16__) { 0x40c5, 0xa3c3, 0xf415, 0x7e5f },
++  /*  201 */ (__ev64_s16__) { 0xd28d, 0xf3a8, 0xf6cd, 0xd727 },
++  /*  202 */ (__ev64_s16__) { 0x9278, 0xf406, 0x453d, 0x2bdf },
++  /*  203 */ (__ev64_s16__) { 0xce03, 0x9fa1, 0x908c, 0x139f },
++  /*  204 */ (__ev64_s16__) { 0xf155, 0x8879, 0x735b, 0xbcc9 },
++  /*  205 */ (__ev64_s16__) { 0x2eff, 0xf726, 0xb311, 0x13d6 },
++  /*  206 */ (__ev64_s16__) { 0xff4a, 0x00e9, 0xfe75, 0x9025 },
++  /*  207 */ (__ev64_s16__) { 0x7cd4, 0x77a9, 0xee3f, 0x4fe6 },
++  /*  208 */ (__ev64_s16__) { 0x3e2c, 0xbda6, 0xf6ff, 0x9f1d },
++  /*  209 */ (__ev64_s16__) { 0x4b7e, 0xa02c, 0x6751, 0x61f2 },
++  /*  210 */ (__ev64_s16__) { 0x81c1, 0xc250, 0xa37d, 0xb113 },
++  /*  211 */ (__ev64_s16__) { 0x41ab, 0x0440, 0x943e, 0xf3b3 },
++  /*  212 */ (__ev64_s16__) { 0xd18a, 0xb965, 0xd70c, 0xc9aa },
++  /*  213 */ (__ev64_s16__) { 0x577c, 0x5c60, 0x958a, 0x37c8 },
++  /*  214 */ (__ev64_s16__) { 0xc51e, 0x8ee6, 0x2ff5, 0x6b56 },
++  /*  215 */ (__ev64_s16__) { 0xb15e, 0x906d, 0xe7ee, 0xaa07 },
++  /*  216 */ (__ev64_s16__) { 0xbadf, 0xe6d8, 0x946c, 0x1037 },
++  /*  217 */ (__ev64_s16__) { 0x5183, 0x1cc4, 0x6cc8, 0xfaf0 },
++  /*  218 */ (__ev64_s16__) { 0x708a, 0x48cc, 0xec6c, 0x72e6 },
++  /*  219 */ (__ev64_s16__) { 0x4560, 0x8ddb, 0x8132, 0x2401 },
++  /*  220 */ (__ev64_s16__) { 0xf49c, 0xde36, 0xba63, 0x1e33 },
++  /*  221 */ (__ev64_s16__) { 0x4613, 0xeafd, 0x0a81, 0x5aff },
++  /*  222 */ (__ev64_s16__) { 0xec87, 0x0ed2, 0x3671, 0xeb81 },
++  /*  223 */ (__ev64_s16__) { 0xf83b, 0xd26f, 0x3e86, 0x6feb },
++  /*  224 */ (__ev64_s16__) { 0xedc4, 0xa7d6, 0x0ad1, 0xeb46 },
++  /*  225 */ (__ev64_s16__) { 0xbbc1, 0xd169, 0xc824, 0x071d },
++  /*  226 */ (__ev64_s16__) { 0xc457, 0xe6db, 0xecb6, 0xd52d },
++  /*  227 */ (__ev64_s16__) { 0x702e, 0xb132, 0x30e7, 0x428f },
++  /*  228 */ (__ev64_s16__) { 0xd3bb, 0xc58d, 0xb818, 0x47ad },
++  /*  229 */ (__ev64_s16__) { 0x2c1e, 0x2c5a, 0xdc4b, 0x63fb },
++  /*  230 */ (__ev64_s16__) { 0x5afb, 0x75f2, 0x07ae, 0xc78a },
++  /*  231 */ (__ev64_s16__) { 0xa125, 0x71e6, 0x3c94, 0xf3f1 },
++  /*  232 */ (__ev64_s16__) { 0x8286, 0x4e86, 0x30e1, 0x0de1 },
++  /*  233 */ (__ev64_s16__) { 0x1b5b, 0xd2ba, 0xc888, 0x4fee },
++  /*  234 */ (__ev64_s16__) { 0xb456, 0x184b, 0xc5c1, 0xf98c },
++  /*  235 */ (__ev64_s16__) { 0x0748, 0x7bfd, 0xdfa7, 0x4cf1 },
++  /*  236 */ (__ev64_s16__) { 0x8c3d, 0x2143, 0x35e1, 0x0a84 },
++  /*  237 */ (__ev64_s16__) { 0xc33f, 0xf59c, 0x0f5e, 0x9fcf },
++  /*  238 */ (__ev64_s16__) { 0xd2d1, 0x61cc, 0xd65e, 0x936f },
++  /*  239 */ (__ev64_s16__) { 0xce57, 0x9329, 0x48ee, 0xa3b1 },
++  /*  240 */ (__ev64_s16__) { 0xf5b3, 0xe86b, 0xad75, 0x42fd },
++  /*  241 */ (__ev64_s16__) { 0xa8ea, 0x8f32, 0xec61, 0x48a2 },
++  /*  242 */ (__ev64_s16__) { 0x4107, 0x6f8d, 0xfbba, 0x3a84 },
++  /*  243 */ (__ev64_s16__) { 0xcc77, 0x7d70, 0x9e45, 0xb464 },
++  /*  244 */ (__ev64_s16__) { 0x0132, 0xbe73, 0xa666, 0xf5d1 },
++  /*  245 */ (__ev64_s16__) { 0xa995, 0xc96e, 0x5f8b, 0x4b56 },
++  /*  246 */ (__ev64_s16__) { 0xd848, 0x41ca, 0xd697, 0x83c2 },
++  /*  247 */ (__ev64_s16__) { 0x61b7, 0x73e1, 0x5c9f, 0xfea9 },
++  /*  248 */ (__ev64_s16__) { 0xb4b7, 0xe94a, 0xeb6c, 0xe2dd },
++  /*  249 */ (__ev64_s16__) { 0xb883, 0x9c89, 0x2cb4, 0x2964 },
++  /*  250 */ (__ev64_s16__) { 0x7fd1, 0x71c1, 0x46da, 0x7e76 },
++  /*  251 */ (__ev64_s16__) { 0x79f8, 0x426f, 0xb815, 0x103b },
++  /*  252 */ (__ev64_s16__) { 0x6469, 0xc894, 0x95c3, 0xd50b },
++  /*  253 */ (__ev64_s16__) { 0x49ee, 0x6958, 0x9f15, 0x6021 },
++  /*  254 */ (__ev64_s16__) { 0x744b, 0xd134, 0xe385, 0x011b },
++  /*  255 */ (__ev64_s16__) { 0xb35e, 0x8b80, 0x97be, 0x5d22 },
++
++};
++
++__ev64_s16__ rD4s16[NELTS(rA4s16)];
++
++const __ev64_u32__ rA2u32[] = {
++
++  /*    0 */ (__ev64_u32__) { 0x6082912b, 0xfc532c1d },
++  /*    1 */ (__ev64_u32__) { 0x0d9c7241, 0xdbfec80e },
++  /*    2 */ (__ev64_u32__) { 0xee528fac, 0x2df5d7a4 },
++  /*    3 */ (__ev64_u32__) { 0xee3fd3c6, 0xf872209c },
++  /*    4 */ (__ev64_u32__) { 0x3cb0b533, 0x9403dfa5 },
++  /*    5 */ (__ev64_u32__) { 0x241bf114, 0x816f22e6 },
++  /*    6 */ (__ev64_u32__) { 0x3dd89a42, 0xcd1655fc },
++  /*    7 */ (__ev64_u32__) { 0xa0449d66, 0x53958e74 },
++  /*    8 */ (__ev64_u32__) { 0xebbf0cb2, 0x3590a4fb },
++  /*    9 */ (__ev64_u32__) { 0xafcee950, 0xe206f851 },
++  /*   10 */ (__ev64_u32__) { 0x54910004, 0xc975ccdd },
++  /*   11 */ (__ev64_u32__) { 0x6b87435d, 0xe98a39d2 },
++  /*   12 */ (__ev64_u32__) { 0x0cf3d607, 0x48c6fa5a },
++  /*   13 */ (__ev64_u32__) { 0x833dcbc1, 0x2877b1d5 },
++  /*   14 */ (__ev64_u32__) { 0x23e1d4f3, 0x7000aefb },
++  /*   15 */ (__ev64_u32__) { 0x43d33420, 0xf0e0d79e },
++  /*   16 */ (__ev64_u32__) { 0xed0741d9, 0x71ab2cbf },
++  /*   17 */ (__ev64_u32__) { 0xb052f7ef, 0x7ac693d0 },
++  /*   18 */ (__ev64_u32__) { 0xf58a94c6, 0x86bb2229 },
++  /*   19 */ (__ev64_u32__) { 0x902a6624, 0xbb16bbf4 },
++  /*   20 */ (__ev64_u32__) { 0xd7668138, 0xdf2b43f3 },
++  /*   21 */ (__ev64_u32__) { 0x16662742, 0x3a2f7c40 },
++  /*   22 */ (__ev64_u32__) { 0xaaf390c2, 0x8710adc4 },
++  /*   23 */ (__ev64_u32__) { 0x05e5f99c, 0xcf517978 },
++  /*   24 */ (__ev64_u32__) { 0xd85858b3, 0xd8ad3560 },
++  /*   25 */ (__ev64_u32__) { 0x8dc01a3f, 0x69baa73d },
++  /*   26 */ (__ev64_u32__) { 0x8bdecfdf, 0x8a29a13f },
++  /*   27 */ (__ev64_u32__) { 0x21a21292, 0x90adb605 },
++  /*   28 */ (__ev64_u32__) { 0x436a6ddb, 0x37c275ca },
++  /*   29 */ (__ev64_u32__) { 0x5035750b, 0x191c8526 },
++  /*   30 */ (__ev64_u32__) { 0x8e5898ea, 0x39840ff4 },
++  /*   31 */ (__ev64_u32__) { 0x44f11591, 0xd8c850f4 },
++  /*   32 */ (__ev64_u32__) { 0x0616dff7, 0x87cc5878 },
++  /*   33 */ (__ev64_u32__) { 0x0bd836b0, 0xde46dfad },
++  /*   34 */ (__ev64_u32__) { 0xbc518299, 0x5d49dd89 },
++  /*   35 */ (__ev64_u32__) { 0xefba9021, 0x1a6f4f4e },
++  /*   36 */ (__ev64_u32__) { 0x06cb695b, 0x623006fc },
++  /*   37 */ (__ev64_u32__) { 0xa0038f89, 0x588d8913 },
++  /*   38 */ (__ev64_u32__) { 0x1ebabe96, 0xc31f2e01 },
++  /*   39 */ (__ev64_u32__) { 0x2ed32039, 0x55e5892f },
++  /*   40 */ (__ev64_u32__) { 0xb71255d4, 0x6cc7e347 },
++  /*   41 */ (__ev64_u32__) { 0xb82c9462, 0xf58f6fb0 },
++  /*   42 */ (__ev64_u32__) { 0x6f553397, 0xcc6d0902 },
++  /*   43 */ (__ev64_u32__) { 0xe8325f23, 0x7eb46b77 },
++  /*   44 */ (__ev64_u32__) { 0x549261ff, 0x9b77d617 },
++  /*   45 */ (__ev64_u32__) { 0x03d516e2, 0x09e6ccca },
++  /*   46 */ (__ev64_u32__) { 0x66e30092, 0x68d54206 },
++  /*   47 */ (__ev64_u32__) { 0x51636a79, 0xac32f54c },
++  /*   48 */ (__ev64_u32__) { 0xd6c1ffe4, 0x1168d25a },
++  /*   49 */ (__ev64_u32__) { 0x472aacfb, 0x3a53cd43 },
++  /*   50 */ (__ev64_u32__) { 0x756fe22c, 0xb06d9f8b },
++  /*   51 */ (__ev64_u32__) { 0xa8375432, 0x7f51ca15 },
++  /*   52 */ (__ev64_u32__) { 0x2c9656b3, 0x53b3a8bc },
++  /*   53 */ (__ev64_u32__) { 0xc53b800e, 0x62eafa6b },
++  /*   54 */ (__ev64_u32__) { 0x9c7206e4, 0x5a97aa6b },
++  /*   55 */ (__ev64_u32__) { 0xe0d7c58b, 0xd5a644f7 },
++  /*   56 */ (__ev64_u32__) { 0xeec94212, 0x5dc09963 },
++  /*   57 */ (__ev64_u32__) { 0x3b3eb559, 0xc1f8815c },
++  /*   58 */ (__ev64_u32__) { 0xd1ff9421, 0xfa21c1c0 },
++  /*   59 */ (__ev64_u32__) { 0xe2eda224, 0xef8ed881 },
++  /*   60 */ (__ev64_u32__) { 0xc028b015, 0x6fa10877 },
++  /*   61 */ (__ev64_u32__) { 0xdb790aa1, 0xb750140b },
++  /*   62 */ (__ev64_u32__) { 0x08f1cb6d, 0xa96d5dcc },
++  /*   63 */ (__ev64_u32__) { 0x653de0ff, 0x93ba39f4 },
++  /*   64 */ (__ev64_u32__) { 0xae0bdcfa, 0x2d28332d },
++  /*   65 */ (__ev64_u32__) { 0x8dfb4345, 0xd5428b03 },
++  /*   66 */ (__ev64_u32__) { 0x1dcf5901, 0x67f2cdc7 },
++  /*   67 */ (__ev64_u32__) { 0xdbe920d4, 0x10259db2 },
++  /*   68 */ (__ev64_u32__) { 0x370fb483, 0x71743cf2 },
++  /*   69 */ (__ev64_u32__) { 0x29b4d8ac, 0x0664dbff },
++  /*   70 */ (__ev64_u32__) { 0x9ecf5a37, 0x1de55d89 },
++  /*   71 */ (__ev64_u32__) { 0x6193ffb8, 0xd8933818 },
++  /*   72 */ (__ev64_u32__) { 0x707ab9c9, 0xc64ffefd },
++  /*   73 */ (__ev64_u32__) { 0xe3563760, 0x323be707 },
++  /*   74 */ (__ev64_u32__) { 0xf5f6c22d, 0xf83707f7 },
++  /*   75 */ (__ev64_u32__) { 0xc0275134, 0x9f375949 },
++  /*   76 */ (__ev64_u32__) { 0x97460d04, 0xabc630a2 },
++  /*   77 */ (__ev64_u32__) { 0x38869d67, 0x09e101e1 },
++  /*   78 */ (__ev64_u32__) { 0xe3b265be, 0xe481be00 },
++  /*   79 */ (__ev64_u32__) { 0x9846d2ef, 0xf0d512b6 },
++  /*   80 */ (__ev64_u32__) { 0x12676278, 0x24b0fbfa },
++  /*   81 */ (__ev64_u32__) { 0xa999263d, 0x58b53d50 },
++  /*   82 */ (__ev64_u32__) { 0x516711a1, 0x979bfea2 },
++  /*   83 */ (__ev64_u32__) { 0x5710580b, 0xd6c51d1c },
++  /*   84 */ (__ev64_u32__) { 0xc3a5bc0b, 0x9b5372e8 },
++  /*   85 */ (__ev64_u32__) { 0xfaee3dd6, 0x4ed84c17 },
++  /*   86 */ (__ev64_u32__) { 0x2b830f4a, 0x35d49d05 },
++  /*   87 */ (__ev64_u32__) { 0x76b95e7f, 0xcce15224 },
++  /*   88 */ (__ev64_u32__) { 0xff74af70, 0x8419e20f },
++  /*   89 */ (__ev64_u32__) { 0x9b0fa13c, 0xa15839bd },
++  /*   90 */ (__ev64_u32__) { 0xab882f3d, 0x49f3a2a6 },
++  /*   91 */ (__ev64_u32__) { 0xb2baf147, 0x9abd2994 },
++  /*   92 */ (__ev64_u32__) { 0x746baa87, 0x867ae382 },
++  /*   93 */ (__ev64_u32__) { 0x93a0c19f, 0xc725031e },
++  /*   94 */ (__ev64_u32__) { 0xc02c172a, 0xcbe4211f },
++  /*   95 */ (__ev64_u32__) { 0xc3d5b6da, 0x4a381274 },
++  /*   96 */ (__ev64_u32__) { 0xd725e1e4, 0x36a361da },
++  /*   97 */ (__ev64_u32__) { 0xae9f47f9, 0xe33d96dd },
++  /*   98 */ (__ev64_u32__) { 0x9a42c329, 0x1e23bb6e },
++  /*   99 */ (__ev64_u32__) { 0xef16cdfa, 0x5fd9b556 },
++  /*  100 */ (__ev64_u32__) { 0xbcea5b88, 0x4cd04e6c },
++  /*  101 */ (__ev64_u32__) { 0x6059326d, 0x8e2d013c },
++  /*  102 */ (__ev64_u32__) { 0x6fd4da37, 0x18318999 },
++  /*  103 */ (__ev64_u32__) { 0xf39920c8, 0xca2d5791 },
++  /*  104 */ (__ev64_u32__) { 0xdad7b2ce, 0x7424667a },
++  /*  105 */ (__ev64_u32__) { 0xbe360248, 0x958f873d },
++  /*  106 */ (__ev64_u32__) { 0x4a96689d, 0x7b72eb77 },
++  /*  107 */ (__ev64_u32__) { 0x822c24cd, 0x0296527a },
++  /*  108 */ (__ev64_u32__) { 0xc83bf794, 0x0247ed1f },
++  /*  109 */ (__ev64_u32__) { 0xd2397b55, 0xbbf35d18 },
++  /*  110 */ (__ev64_u32__) { 0x57ebb60f, 0x481ab290 },
++  /*  111 */ (__ev64_u32__) { 0xe58b34d1, 0xdc9bc6ed },
++  /*  112 */ (__ev64_u32__) { 0xa84e0e54, 0xe96ea6e0 },
++  /*  113 */ (__ev64_u32__) { 0xccd3ad36, 0x601be5fb },
++  /*  114 */ (__ev64_u32__) { 0xc12bfe65, 0xeb418d72 },
++  /*  115 */ (__ev64_u32__) { 0x09848602, 0x54c375a4 },
++  /*  116 */ (__ev64_u32__) { 0x123278d1, 0x58d4980f },
++  /*  117 */ (__ev64_u32__) { 0xc4ef125f, 0x67a93267 },
++  /*  118 */ (__ev64_u32__) { 0x6f1dfeaa, 0xde86a969 },
++  /*  119 */ (__ev64_u32__) { 0xf6baef19, 0x8625b468 },
++  /*  120 */ (__ev64_u32__) { 0xf5ed0433, 0x1f869320 },
++  /*  121 */ (__ev64_u32__) { 0x1746e919, 0xbf4d59da },
++  /*  122 */ (__ev64_u32__) { 0x7a85acff, 0x7e6ff835 },
++  /*  123 */ (__ev64_u32__) { 0x08a9b3ed, 0x33a05212 },
++  /*  124 */ (__ev64_u32__) { 0x36f00d55, 0x9a8a26bf },
++  /*  125 */ (__ev64_u32__) { 0xce67467c, 0xbd80c6ac },
++  /*  126 */ (__ev64_u32__) { 0x343a70be, 0x9ffc0632 },
++  /*  127 */ (__ev64_u32__) { 0x26236d14, 0x956a2eee },
++  /*  128 */ (__ev64_u32__) { 0xc52adedd, 0x0154044b },
++  /*  129 */ (__ev64_u32__) { 0x8d5bc8ef, 0xe5e12d60 },
++  /*  130 */ (__ev64_u32__) { 0xb410341c, 0x738a7151 },
++  /*  131 */ (__ev64_u32__) { 0xcd2fa8c8, 0xf81bcbfa },
++  /*  132 */ (__ev64_u32__) { 0x884d5896, 0x3ea6afa1 },
++  /*  133 */ (__ev64_u32__) { 0xebd3df5f, 0x002d3971 },
++  /*  134 */ (__ev64_u32__) { 0x8dffa01e, 0xc0eb05e0 },
++  /*  135 */ (__ev64_u32__) { 0x62a241f0, 0xf9cc7c3e },
++  /*  136 */ (__ev64_u32__) { 0xb7b78345, 0xcc259a84 },
++  /*  137 */ (__ev64_u32__) { 0x93e47225, 0x3a190f3e },
++  /*  138 */ (__ev64_u32__) { 0x064804fc, 0xdb0a278d },
++  /*  139 */ (__ev64_u32__) { 0xd57d3c47, 0xfb9dd4c8 },
++  /*  140 */ (__ev64_u32__) { 0xf69d4f5a, 0xecd20754 },
++  /*  141 */ (__ev64_u32__) { 0x1b08c962, 0x32dcab24 },
++  /*  142 */ (__ev64_u32__) { 0x37bb0658, 0x013c945e },
++  /*  143 */ (__ev64_u32__) { 0x09cb38eb, 0xf8201cab },
++  /*  144 */ (__ev64_u32__) { 0x3524dc02, 0xbf2f747b },
++  /*  145 */ (__ev64_u32__) { 0xf31eed11, 0xdcab5061 },
++  /*  146 */ (__ev64_u32__) { 0x5d1f13cc, 0x51f05a1e },
++  /*  147 */ (__ev64_u32__) { 0xb4697c10, 0xb5147ac5 },
++  /*  148 */ (__ev64_u32__) { 0xf56438f3, 0x0af884d9 },
++  /*  149 */ (__ev64_u32__) { 0xaabfae47, 0xf046be95 },
++  /*  150 */ (__ev64_u32__) { 0x1e0e2181, 0xa2da9573 },
++  /*  151 */ (__ev64_u32__) { 0x4259d58e, 0x813c0082 },
++  /*  152 */ (__ev64_u32__) { 0x7d70203f, 0x946daf90 },
++  /*  153 */ (__ev64_u32__) { 0x206d41d4, 0xfa39df57 },
++  /*  154 */ (__ev64_u32__) { 0x63471c7b, 0x9f938354 },
++  /*  155 */ (__ev64_u32__) { 0x08bf92dc, 0xb66172fe },
++  /*  156 */ (__ev64_u32__) { 0x2102b4d9, 0xb3210168 },
++  /*  157 */ (__ev64_u32__) { 0xa4a8db7a, 0x9c7fcc0b },
++  /*  158 */ (__ev64_u32__) { 0x10916bbb, 0xd832ab72 },
++  /*  159 */ (__ev64_u32__) { 0xdf647fd5, 0xc626cef5 },
++  /*  160 */ (__ev64_u32__) { 0x02eb6d04, 0x0a32f9db },
++  /*  161 */ (__ev64_u32__) { 0x23d9866d, 0x3e67937c },
++  /*  162 */ (__ev64_u32__) { 0x721477a1, 0xfeb25f07 },
++  /*  163 */ (__ev64_u32__) { 0x103f19cb, 0x820c8a08 },
++  /*  164 */ (__ev64_u32__) { 0x9f66b138, 0x288a7b00 },
++  /*  165 */ (__ev64_u32__) { 0xf3d8b6b0, 0x00b4e99a },
++  /*  166 */ (__ev64_u32__) { 0x2ee36c16, 0x69e8b9c0 },
++  /*  167 */ (__ev64_u32__) { 0xc6f74bbb, 0x13b1f417 },
++  /*  168 */ (__ev64_u32__) { 0x908fdebf, 0xbd78519a },
++  /*  169 */ (__ev64_u32__) { 0xb454d282, 0x67e69be2 },
++  /*  170 */ (__ev64_u32__) { 0xe6429eb9, 0x6e605bea },
++  /*  171 */ (__ev64_u32__) { 0x0089ceba, 0x9b3a2432 },
++  /*  172 */ (__ev64_u32__) { 0x14826875, 0xc7228e82 },
++  /*  173 */ (__ev64_u32__) { 0x5653d98b, 0x03c20399 },
++  /*  174 */ (__ev64_u32__) { 0x3d8db711, 0xc50d8924 },
++  /*  175 */ (__ev64_u32__) { 0x98c95991, 0xd19a44fd },
++  /*  176 */ (__ev64_u32__) { 0x047a7cab, 0x9d9cadca },
++  /*  177 */ (__ev64_u32__) { 0xc6a75c10, 0xc9ced221 },
++  /*  178 */ (__ev64_u32__) { 0x05f6dacb, 0xddc41adb },
++  /*  179 */ (__ev64_u32__) { 0x086bcf8d, 0x4a81acf1 },
++  /*  180 */ (__ev64_u32__) { 0x4b0e2890, 0x74fb2e0a },
++  /*  181 */ (__ev64_u32__) { 0x869aa3a6, 0xcc9b7355 },
++  /*  182 */ (__ev64_u32__) { 0x5799a8fb, 0x423a2019 },
++  /*  183 */ (__ev64_u32__) { 0xfac9dfce, 0x68ac7fec },
++  /*  184 */ (__ev64_u32__) { 0x1ff19bf0, 0xbb554129 },
++  /*  185 */ (__ev64_u32__) { 0x4fd63fe9, 0x867ca656 },
++  /*  186 */ (__ev64_u32__) { 0xce82f801, 0x61935b89 },
++  /*  187 */ (__ev64_u32__) { 0xe640243c, 0xa932142d },
++  /*  188 */ (__ev64_u32__) { 0xac84a853, 0xee170d8f },
++  /*  189 */ (__ev64_u32__) { 0x9e92b95a, 0xd0f33135 },
++  /*  190 */ (__ev64_u32__) { 0x3022639f, 0x869f6222 },
++  /*  191 */ (__ev64_u32__) { 0x65ae08fa, 0x84fd69c5 },
++  /*  192 */ (__ev64_u32__) { 0x5038a916, 0xa1ef03e5 },
++  /*  193 */ (__ev64_u32__) { 0x9ac96863, 0x3bb20227 },
++  /*  194 */ (__ev64_u32__) { 0x3d2670e0, 0x667de1de },
++  /*  195 */ (__ev64_u32__) { 0x70af9228, 0xb7a7ea34 },
++  /*  196 */ (__ev64_u32__) { 0xa9d09154, 0x800848ea },
++  /*  197 */ (__ev64_u32__) { 0x901b68aa, 0xc06cb054 },
++  /*  198 */ (__ev64_u32__) { 0x6a558527, 0x86db7bb7 },
++  /*  199 */ (__ev64_u32__) { 0x36b3ac2f, 0xf242003f },
++  /*  200 */ (__ev64_u32__) { 0xabf7733e, 0x68313c5f },
++  /*  201 */ (__ev64_u32__) { 0xb7e3401e, 0xca863074 },
++  /*  202 */ (__ev64_u32__) { 0x301e6bd2, 0x6da7752e },
++  /*  203 */ (__ev64_u32__) { 0x8a6b6e53, 0x6cac5275 },
++  /*  204 */ (__ev64_u32__) { 0x3e384b42, 0x8169f0c0 },
++  /*  205 */ (__ev64_u32__) { 0xee319a58, 0x164001dc },
++  /*  206 */ (__ev64_u32__) { 0xaaa22df7, 0x0c2d239e },
++  /*  207 */ (__ev64_u32__) { 0xc4a8ec12, 0x680db18f },
++  /*  208 */ (__ev64_u32__) { 0x00d20945, 0x11609194 },
++  /*  209 */ (__ev64_u32__) { 0x207c63f0, 0xe4362806 },
++  /*  210 */ (__ev64_u32__) { 0x8fc1de53, 0x4b9f29be },
++  /*  211 */ (__ev64_u32__) { 0x20d2ae37, 0xee12bd96 },
++  /*  212 */ (__ev64_u32__) { 0x19484e9b, 0xb101f5bc },
++  /*  213 */ (__ev64_u32__) { 0xed85a844, 0x61fce7fb },
++  /*  214 */ (__ev64_u32__) { 0x57ff5d46, 0x068bf94f },
++  /*  215 */ (__ev64_u32__) { 0x510ef818, 0x517c9436 },
++  /*  216 */ (__ev64_u32__) { 0x14c34b6f, 0x833f9821 },
++  /*  217 */ (__ev64_u32__) { 0x674e785e, 0x73c42f2b },
++  /*  218 */ (__ev64_u32__) { 0xcff35be4, 0x8c8c643d },
++  /*  219 */ (__ev64_u32__) { 0x3be38f76, 0x1abfa25b },
++  /*  220 */ (__ev64_u32__) { 0x63f3b5e5, 0xcd41f375 },
++  /*  221 */ (__ev64_u32__) { 0x296ba710, 0xd5a8b3cd },
++  /*  222 */ (__ev64_u32__) { 0x4b1d0ced, 0x6eb2e17a },
++  /*  223 */ (__ev64_u32__) { 0x39508040, 0xc1e68bfa },
++  /*  224 */ (__ev64_u32__) { 0x1457130c, 0xa6e47d99 },
++  /*  225 */ (__ev64_u32__) { 0x6103701c, 0xa02f1ce4 },
++  /*  226 */ (__ev64_u32__) { 0x6f6768a3, 0x3a27f7e9 },
++  /*  227 */ (__ev64_u32__) { 0x59b4233d, 0xa270a570 },
++  /*  228 */ (__ev64_u32__) { 0x9c285b84, 0x43c219e2 },
++  /*  229 */ (__ev64_u32__) { 0xbe26ea0b, 0xd186d20d },
++  /*  230 */ (__ev64_u32__) { 0x0801f122, 0x02ba19ff },
++  /*  231 */ (__ev64_u32__) { 0xdce8391c, 0x9dadbdd3 },
++  /*  232 */ (__ev64_u32__) { 0x6bcc9d04, 0x3425c1aa },
++  /*  233 */ (__ev64_u32__) { 0x812c5258, 0xe95424ef },
++  /*  234 */ (__ev64_u32__) { 0xcd40f39e, 0x23a28ec7 },
++  /*  235 */ (__ev64_u32__) { 0xb869f3f6, 0x4d6cefb2 },
++  /*  236 */ (__ev64_u32__) { 0x526acdfe, 0x6a606022 },
++  /*  237 */ (__ev64_u32__) { 0xc64c0027, 0xb9fee139 },
++  /*  238 */ (__ev64_u32__) { 0x916bc232, 0xd7beb530 },
++  /*  239 */ (__ev64_u32__) { 0x9f81dae8, 0x21afbc08 },
++  /*  240 */ (__ev64_u32__) { 0xdc413c91, 0x10046c21 },
++  /*  241 */ (__ev64_u32__) { 0x9ba72808, 0x6aa366d9 },
++  /*  242 */ (__ev64_u32__) { 0x41265773, 0xc9b5b183 },
++  /*  243 */ (__ev64_u32__) { 0x505cfc08, 0xced41b33 },
++  /*  244 */ (__ev64_u32__) { 0x1df9f4a9, 0xd7ec5c6b },
++  /*  245 */ (__ev64_u32__) { 0x7c1ea56d, 0xdfe09af7 },
++  /*  246 */ (__ev64_u32__) { 0x6f72704b, 0x207b9f91 },
++  /*  247 */ (__ev64_u32__) { 0x831c8e6a, 0x8a006af3 },
++  /*  248 */ (__ev64_u32__) { 0xdf38cdb0, 0x8c7acf88 },
++  /*  249 */ (__ev64_u32__) { 0x63636831, 0xbe45a203 },
++  /*  250 */ (__ev64_u32__) { 0x0afb9cd6, 0xd7cf8c45 },
++  /*  251 */ (__ev64_u32__) { 0x76bf2f30, 0x9e5bc8d7 },
++  /*  252 */ (__ev64_u32__) { 0x4312cacc, 0x7da5ea63 },
++  /*  253 */ (__ev64_u32__) { 0x217f2dc2, 0x01d4b3bf },
++  /*  254 */ (__ev64_u32__) { 0x86df3c68, 0xf8ceb7aa },
++  /*  255 */ (__ev64_u32__) { 0x80073e80, 0x105b7e95 },
++
++};
++
++const __ev64_u32__ rB2u32[NELTS(rA2u32)] = {
++
++  /*    0 */ (__ev64_u32__) { 0x50da6aea, 0x97e61833 },
++  /*    1 */ (__ev64_u32__) { 0x023b1cd5, 0xa847ad06 },
++  /*    2 */ (__ev64_u32__) { 0x136823cc, 0x3a123891 },
++  /*    3 */ (__ev64_u32__) { 0xe0041f44, 0x6dde4b5f },
++  /*    4 */ (__ev64_u32__) { 0x53bdffac, 0xabcfc340 },
++  /*    5 */ (__ev64_u32__) { 0x9679e95e, 0xc99da6dc },
++  /*    6 */ (__ev64_u32__) { 0x05aa6a82, 0x968eebe5 },
++  /*    7 */ (__ev64_u32__) { 0x983d3f4e, 0xb658a649 },
++  /*    8 */ (__ev64_u32__) { 0x6ab6997e, 0x4f61c457 },
++  /*    9 */ (__ev64_u32__) { 0xc4bafb49, 0xbf684764 },
++  /*   10 */ (__ev64_u32__) { 0x815d3f92, 0xccc94277 },
++  /*   11 */ (__ev64_u32__) { 0x898358c7, 0xc4d1a670 },
++  /*   12 */ (__ev64_u32__) { 0xf16da253, 0xb4503885 },
++  /*   13 */ (__ev64_u32__) { 0x39d8220d, 0xc77c38d3 },
++  /*   14 */ (__ev64_u32__) { 0xb1631fae, 0x2d04a430 },
++  /*   15 */ (__ev64_u32__) { 0xbc91e9ad, 0x4b128d5b },
++  /*   16 */ (__ev64_u32__) { 0x06d2e388, 0x073a4fcf },
++  /*   17 */ (__ev64_u32__) { 0x5b0461fe, 0x5a3e57e1 },
++  /*   18 */ (__ev64_u32__) { 0x28c2f756, 0xea45ea12 },
++  /*   19 */ (__ev64_u32__) { 0x16c5fc1b, 0xeb44783e },
++  /*   20 */ (__ev64_u32__) { 0xaa7dfc41, 0xd8fbd580 },
++  /*   21 */ (__ev64_u32__) { 0x0dff0813, 0x5b8b4b71 },
++  /*   22 */ (__ev64_u32__) { 0x6ddd578e, 0xb0f776d8 },
++  /*   23 */ (__ev64_u32__) { 0x7bfacd7a, 0x323a6814 },
++  /*   24 */ (__ev64_u32__) { 0x1a4fce0f, 0x01793774 },
++  /*   25 */ (__ev64_u32__) { 0x0c94afad, 0x6e6f1733 },
++  /*   26 */ (__ev64_u32__) { 0x9b6121e5, 0x37452e64 },
++  /*   27 */ (__ev64_u32__) { 0x7be08780, 0xf71d9e6e },
++  /*   28 */ (__ev64_u32__) { 0xb39779b6, 0xba15f183 },
++  /*   29 */ (__ev64_u32__) { 0x9410376c, 0xd7db2911 },
++  /*   30 */ (__ev64_u32__) { 0x3caaed87, 0x609daa57 },
++  /*   31 */ (__ev64_u32__) { 0x8c56b71d, 0xe52271b2 },
++  /*   32 */ (__ev64_u32__) { 0x7638ffc1, 0xcd89c360 },
++  /*   33 */ (__ev64_u32__) { 0x44f531c5, 0x28be72e4 },
++  /*   34 */ (__ev64_u32__) { 0xe9b1b663, 0x04d1eaa5 },
++  /*   35 */ (__ev64_u32__) { 0x41fd9881, 0x0ce82dd8 },
++  /*   36 */ (__ev64_u32__) { 0x2073e7dd, 0xa80c0e69 },
++  /*   37 */ (__ev64_u32__) { 0x29438ac7, 0x0bd4e5e5 },
++  /*   38 */ (__ev64_u32__) { 0x7e23b98a, 0x2f07dec2 },
++  /*   39 */ (__ev64_u32__) { 0x8e2f6262, 0x9dade72f },
++  /*   40 */ (__ev64_u32__) { 0x1760e962, 0x180584ac },
++  /*   41 */ (__ev64_u32__) { 0xa701986b, 0x02cd866f },
++  /*   42 */ (__ev64_u32__) { 0x35bb71a6, 0x6daa0576 },
++  /*   43 */ (__ev64_u32__) { 0xa9b2c0a8, 0x1d7952f3 },
++  /*   44 */ (__ev64_u32__) { 0x628bf987, 0xd752e035 },
++  /*   45 */ (__ev64_u32__) { 0xb953b84c, 0xe1fb772a },
++  /*   46 */ (__ev64_u32__) { 0x6f479815, 0xd0253a97 },
++  /*   47 */ (__ev64_u32__) { 0xcf38756f, 0x63c39d73 },
++  /*   48 */ (__ev64_u32__) { 0x04bec00e, 0x498b0774 },
++  /*   49 */ (__ev64_u32__) { 0x0b7f6673, 0x30fb119a },
++  /*   50 */ (__ev64_u32__) { 0x892e707a, 0xaf0a259f },
++  /*   51 */ (__ev64_u32__) { 0x44714269, 0xddffe547 },
++  /*   52 */ (__ev64_u32__) { 0x12d33a5d, 0x98fc5612 },
++  /*   53 */ (__ev64_u32__) { 0xe3891ded, 0x25fe904d },
++  /*   54 */ (__ev64_u32__) { 0x48b3659a, 0x975e9680 },
++  /*   55 */ (__ev64_u32__) { 0x596ae1ee, 0x2101528f },
++  /*   56 */ (__ev64_u32__) { 0x7c6c2c17, 0xcfed3584 },
++  /*   57 */ (__ev64_u32__) { 0x6d869d88, 0x45ac914b },
++  /*   58 */ (__ev64_u32__) { 0xbb5c1af8, 0x30b4c611 },
++  /*   59 */ (__ev64_u32__) { 0x63dca64d, 0x27f5b018 },
++  /*   60 */ (__ev64_u32__) { 0x8edb8b78, 0x197c0f6c },
++  /*   61 */ (__ev64_u32__) { 0xf1b263d6, 0x4f3606f4 },
++  /*   62 */ (__ev64_u32__) { 0xd5510de0, 0x472b0c3b },
++  /*   63 */ (__ev64_u32__) { 0x3cf8436e, 0xc1731524 },
++  /*   64 */ (__ev64_u32__) { 0x0ab95a8c, 0xbc71c2d0 },
++  /*   65 */ (__ev64_u32__) { 0x31fe4537, 0xed417519 },
++  /*   66 */ (__ev64_u32__) { 0x1f38c6cd, 0xbe9f31b2 },
++  /*   67 */ (__ev64_u32__) { 0x30ca55e1, 0x553bf69d },
++  /*   68 */ (__ev64_u32__) { 0x73da7dcd, 0x4fcc174d },
++  /*   69 */ (__ev64_u32__) { 0xbe57a4ea, 0x687b2d23 },
++  /*   70 */ (__ev64_u32__) { 0x66bcf0f1, 0xf8af23b9 },
++  /*   71 */ (__ev64_u32__) { 0xdc4f27fc, 0x74bfd8e3 },
++  /*   72 */ (__ev64_u32__) { 0x64706a0d, 0x68afdca1 },
++  /*   73 */ (__ev64_u32__) { 0xd41515af, 0xd8acfa70 },
++  /*   74 */ (__ev64_u32__) { 0x654e3e32, 0x8b3dcb11 },
++  /*   75 */ (__ev64_u32__) { 0x3188de4d, 0x5879f08c },
++  /*   76 */ (__ev64_u32__) { 0xf9a3ae3b, 0x42d872c3 },
++  /*   77 */ (__ev64_u32__) { 0xe121aa79, 0x3d488631 },
++  /*   78 */ (__ev64_u32__) { 0x40a3ec83, 0x91f0a0c7 },
++  /*   79 */ (__ev64_u32__) { 0x0e362d57, 0x4e1c52af },
++  /*   80 */ (__ev64_u32__) { 0x4b9b7b52, 0xa9618a3c },
++  /*   81 */ (__ev64_u32__) { 0x318e0fcd, 0x54d3562e },
++  /*   82 */ (__ev64_u32__) { 0xbe89bfbb, 0x6e47e4a8 },
++  /*   83 */ (__ev64_u32__) { 0xae3933e1, 0x1a818b9d },
++  /*   84 */ (__ev64_u32__) { 0x7e375069, 0xd2fa47f1 },
++  /*   85 */ (__ev64_u32__) { 0x64a20317, 0x7db1f702 },
++  /*   86 */ (__ev64_u32__) { 0x73724061, 0x15a933fb },
++  /*   87 */ (__ev64_u32__) { 0x7bf25ed8, 0x90bdd661 },
++  /*   88 */ (__ev64_u32__) { 0x8a747fca, 0xb8bec14f },
++  /*   89 */ (__ev64_u32__) { 0x40f9d146, 0xc7c9b8fa },
++  /*   90 */ (__ev64_u32__) { 0x48b16d70, 0xb86caec6 },
++  /*   91 */ (__ev64_u32__) { 0xcf415f19, 0x1d0dcc2a },
++  /*   92 */ (__ev64_u32__) { 0x414448a9, 0x4dbf5c24 },
++  /*   93 */ (__ev64_u32__) { 0x24662efe, 0x28823390 },
++  /*   94 */ (__ev64_u32__) { 0x8f35d90f, 0x44ba4935 },
++  /*   95 */ (__ev64_u32__) { 0x73563629, 0x0bcb5741 },
++  /*   96 */ (__ev64_u32__) { 0xd928efbc, 0x86cb559f },
++  /*   97 */ (__ev64_u32__) { 0xf5825b1b, 0x0eea0856 },
++  /*   98 */ (__ev64_u32__) { 0x6c73502b, 0x266f23b7 },
++  /*   99 */ (__ev64_u32__) { 0x61a0cf29, 0x4cb9d2da },
++  /*  100 */ (__ev64_u32__) { 0x7d541ec7, 0xf3f3e096 },
++  /*  101 */ (__ev64_u32__) { 0x9430cd3a, 0xb9b71471 },
++  /*  102 */ (__ev64_u32__) { 0x307d0924, 0x7fd8b2d5 },
++  /*  103 */ (__ev64_u32__) { 0xd2813bc5, 0xc2bf3d55 },
++  /*  104 */ (__ev64_u32__) { 0x03e8c80b, 0x53afdfb1 },
++  /*  105 */ (__ev64_u32__) { 0x14a25435, 0xe57433af },
++  /*  106 */ (__ev64_u32__) { 0x6a88fcd7, 0x9c3b77a7 },
++  /*  107 */ (__ev64_u32__) { 0x04ee14b1, 0x77b35e2e },
++  /*  108 */ (__ev64_u32__) { 0xff8e59e3, 0x2df94a61 },
++  /*  109 */ (__ev64_u32__) { 0x43c59639, 0x3e33f4d2 },
++  /*  110 */ (__ev64_u32__) { 0x33e4ab79, 0x1c26a001 },
++  /*  111 */ (__ev64_u32__) { 0xed8eee4c, 0x7ac84a98 },
++  /*  112 */ (__ev64_u32__) { 0x43e4c801, 0x5669836f },
++  /*  113 */ (__ev64_u32__) { 0xfcbf8de4, 0x1a4d0219 },
++  /*  114 */ (__ev64_u32__) { 0x5a72796c, 0x2e95a0ca },
++  /*  115 */ (__ev64_u32__) { 0xb7dd230e, 0x1c9445f0 },
++  /*  116 */ (__ev64_u32__) { 0x207b5c4e, 0xee4dc476 },
++  /*  117 */ (__ev64_u32__) { 0x5bb50202, 0xe571f881 },
++  /*  118 */ (__ev64_u32__) { 0xafeeeec9, 0xe408acf9 },
++  /*  119 */ (__ev64_u32__) { 0x3e2a52ac, 0x51fb74c1 },
++  /*  120 */ (__ev64_u32__) { 0xb0984ba1, 0xe33a3b23 },
++  /*  121 */ (__ev64_u32__) { 0x526e8f82, 0xdf30476f },
++  /*  122 */ (__ev64_u32__) { 0x46fb6a40, 0x31b1be25 },
++  /*  123 */ (__ev64_u32__) { 0x9b5b4d74, 0xdc9b421b },
++  /*  124 */ (__ev64_u32__) { 0xe7c65ce3, 0xe505a8ad },
++  /*  125 */ (__ev64_u32__) { 0x14437ff4, 0x6f0cf6cb },
++  /*  126 */ (__ev64_u32__) { 0x25549499, 0xc5cfcac5 },
++  /*  127 */ (__ev64_u32__) { 0xec5ffe11, 0xebbf379b },
++  /*  128 */ (__ev64_u32__) { 0x77426250, 0x9a3b4e6a },
++  /*  129 */ (__ev64_u32__) { 0xdad775b5, 0xf4598842 },
++  /*  130 */ (__ev64_u32__) { 0x5a4caed4, 0x2e953ad8 },
++  /*  131 */ (__ev64_u32__) { 0x240b0889, 0x9dbaa5ba },
++  /*  132 */ (__ev64_u32__) { 0xa7c7f9c6, 0x35164177 },
++  /*  133 */ (__ev64_u32__) { 0x37093795, 0x090e350a },
++  /*  134 */ (__ev64_u32__) { 0xa996573e, 0xd2040c1a },
++  /*  135 */ (__ev64_u32__) { 0x6f152cf0, 0xc97bb261 },
++  /*  136 */ (__ev64_u32__) { 0x603b2a52, 0x8f72e19c },
++  /*  137 */ (__ev64_u32__) { 0x01f2fd87, 0x2b8109f3 },
++  /*  138 */ (__ev64_u32__) { 0xd281729f, 0xe61c924e },
++  /*  139 */ (__ev64_u32__) { 0x0c2fa992, 0x7d58c6f5 },
++  /*  140 */ (__ev64_u32__) { 0xb1fb7209, 0xfde1e6e7 },
++  /*  141 */ (__ev64_u32__) { 0x4ec15d8b, 0x6cef5638 },
++  /*  142 */ (__ev64_u32__) { 0xaf2db31d, 0xe8a137dc },
++  /*  143 */ (__ev64_u32__) { 0x4365818b, 0xbeab22bb },
++  /*  144 */ (__ev64_u32__) { 0x47421a50, 0x2b242cef },
++  /*  145 */ (__ev64_u32__) { 0x8b8e14f1, 0x1fe113f7 },
++  /*  146 */ (__ev64_u32__) { 0x049a0e60, 0x963dab92 },
++  /*  147 */ (__ev64_u32__) { 0x3f78539c, 0x18552e0d },
++  /*  148 */ (__ev64_u32__) { 0xaa687190, 0xfddeea37 },
++  /*  149 */ (__ev64_u32__) { 0x6a9be37d, 0x2e98e83b },
++  /*  150 */ (__ev64_u32__) { 0x614216b7, 0x7e94d3a7 },
++  /*  151 */ (__ev64_u32__) { 0x5245231d, 0x18dbc984 },
++  /*  152 */ (__ev64_u32__) { 0xd1a36f72, 0xd55860e0 },
++  /*  153 */ (__ev64_u32__) { 0x436ab385, 0xdf4867db },
++  /*  154 */ (__ev64_u32__) { 0x44688636, 0xf4b70fd4 },
++  /*  155 */ (__ev64_u32__) { 0x8c3761cf, 0xa78fcece },
++  /*  156 */ (__ev64_u32__) { 0x82bd1e28, 0x82fdc5f7 },
++  /*  157 */ (__ev64_u32__) { 0xb8f571c3, 0x8a7f6bd5 },
++  /*  158 */ (__ev64_u32__) { 0x76301610, 0x85ebbd33 },
++  /*  159 */ (__ev64_u32__) { 0xa88d641b, 0xad191b46 },
++  /*  160 */ (__ev64_u32__) { 0x1d7c11c6, 0xd432712a },
++  /*  161 */ (__ev64_u32__) { 0x29af1296, 0x39b1e070 },
++  /*  162 */ (__ev64_u32__) { 0x4401c015, 0xe6e6120b },
++  /*  163 */ (__ev64_u32__) { 0x15fd8a1e, 0xc8043bce },
++  /*  164 */ (__ev64_u32__) { 0x8a649058, 0x0c093676 },
++  /*  165 */ (__ev64_u32__) { 0xd1c5fb09, 0x21135c45 },
++  /*  166 */ (__ev64_u32__) { 0xfd205e80, 0x634561b4 },
++  /*  167 */ (__ev64_u32__) { 0xf8f12eff, 0x6b1d8bea },
++  /*  168 */ (__ev64_u32__) { 0x81feb45e, 0xc7f7e82d },
++  /*  169 */ (__ev64_u32__) { 0xd22becb0, 0xa9bd9fe0 },
++  /*  170 */ (__ev64_u32__) { 0xbbcaaea0, 0x4ad7ca84 },
++  /*  171 */ (__ev64_u32__) { 0x7b3241e7, 0x9edfc7f2 },
++  /*  172 */ (__ev64_u32__) { 0x089e1f1f, 0x3f52e705 },
++  /*  173 */ (__ev64_u32__) { 0x4afc8b1d, 0x7131bd2e },
++  /*  174 */ (__ev64_u32__) { 0xd1645ed9, 0x9a3c9a55 },
++  /*  175 */ (__ev64_u32__) { 0x4cb0016d, 0xd2edcc60 },
++  /*  176 */ (__ev64_u32__) { 0x3b68ad6d, 0x6a79a044 },
++  /*  177 */ (__ev64_u32__) { 0xa7d29211, 0x36870dce },
++  /*  178 */ (__ev64_u32__) { 0x11b1101a, 0xff3e0029 },
++  /*  179 */ (__ev64_u32__) { 0x51f416ca, 0x7b1aae8f },
++  /*  180 */ (__ev64_u32__) { 0xe958b0be, 0x4705aa00 },
++  /*  181 */ (__ev64_u32__) { 0xc3317f1c, 0x84fbf353 },
++  /*  182 */ (__ev64_u32__) { 0x77fe0471, 0x546b786b },
++  /*  183 */ (__ev64_u32__) { 0x452852b4, 0xb2cb5693 },
++  /*  184 */ (__ev64_u32__) { 0xafedcc20, 0x99c94f5c },
++  /*  185 */ (__ev64_u32__) { 0x9d0f8b28, 0x26db667f },
++  /*  186 */ (__ev64_u32__) { 0x670a382c, 0x9e3d35e5 },
++  /*  187 */ (__ev64_u32__) { 0x7112ce46, 0x06285724 },
++  /*  188 */ (__ev64_u32__) { 0x24727345, 0x278f2b69 },
++  /*  189 */ (__ev64_u32__) { 0x52361ee3, 0x915fa932 },
++  /*  190 */ (__ev64_u32__) { 0x9663deb6, 0xa0d2d9a2 },
++  /*  191 */ (__ev64_u32__) { 0x993e09d5, 0x43878f1a },
++  /*  192 */ (__ev64_u32__) { 0x8a7e1d21, 0xbb98ac82 },
++  /*  193 */ (__ev64_u32__) { 0x20bba9a4, 0x708b1147 },
++  /*  194 */ (__ev64_u32__) { 0x08853933, 0xfbf621dc },
++  /*  195 */ (__ev64_u32__) { 0x124b3862, 0x0e75815d },
++  /*  196 */ (__ev64_u32__) { 0x1f32b93c, 0xb24d6fd8 },
++  /*  197 */ (__ev64_u32__) { 0xac62c687, 0x764855bd },
++  /*  198 */ (__ev64_u32__) { 0xf2b493a4, 0x7c8f3e66 },
++  /*  199 */ (__ev64_u32__) { 0xc0cea713, 0x75499f46 },
++  /*  200 */ (__ev64_u32__) { 0xc17cf9d0, 0x76568bc4 },
++  /*  201 */ (__ev64_u32__) { 0x4d62695c, 0x90a9d548 },
++  /*  202 */ (__ev64_u32__) { 0x4eca45b0, 0x4b1da3e1 },
++  /*  203 */ (__ev64_u32__) { 0x06f6c368, 0x3c591290 },
++  /*  204 */ (__ev64_u32__) { 0xc7986455, 0x1cb6a00e },
++  /*  205 */ (__ev64_u32__) { 0x5ff881aa, 0x1ce55546 },
++  /*  206 */ (__ev64_u32__) { 0xa8ba9fa2, 0xd456ebd2 },
++  /*  207 */ (__ev64_u32__) { 0x0c3902b1, 0xa60acd19 },
++  /*  208 */ (__ev64_u32__) { 0x261b31e3, 0x00d4fa6b },
++  /*  209 */ (__ev64_u32__) { 0x63d3138c, 0x409d1449 },
++  /*  210 */ (__ev64_u32__) { 0x02f42cfc, 0x0ca38803 },
++  /*  211 */ (__ev64_u32__) { 0x5626556c, 0xdfbf8aa3 },
++  /*  212 */ (__ev64_u32__) { 0x17669235, 0x03a2fce7 },
++  /*  213 */ (__ev64_u32__) { 0xfca10151, 0xcb2a6ce5 },
++  /*  214 */ (__ev64_u32__) { 0x11d274d9, 0x5ceec512 },
++  /*  215 */ (__ev64_u32__) { 0x2d6538a2, 0x7d8bd93c },
++  /*  216 */ (__ev64_u32__) { 0x3b4dddb4, 0x5a631922 },
++  /*  217 */ (__ev64_u32__) { 0x2f3a487c, 0x3a8a9739 },
++  /*  218 */ (__ev64_u32__) { 0x9b6c96f5, 0xd4d10478 },
++  /*  219 */ (__ev64_u32__) { 0xfaaa2679, 0xe5ec2cd4 },
++  /*  220 */ (__ev64_u32__) { 0x265eeabd, 0xe6cfbba9 },
++  /*  221 */ (__ev64_u32__) { 0x208fcbbc, 0xcf145dbb },
++  /*  222 */ (__ev64_u32__) { 0x8fed62ca, 0xf8475a9b },
++  /*  223 */ (__ev64_u32__) { 0x01c7b9c0, 0x066a50a2 },
++  /*  224 */ (__ev64_u32__) { 0xe92404ef, 0xf938a8f5 },
++  /*  225 */ (__ev64_u32__) { 0x44cbeaf0, 0x4e8b46eb },
++  /*  226 */ (__ev64_u32__) { 0x5e96e33f, 0xd7473008 },
++  /*  227 */ (__ev64_u32__) { 0x50159431, 0xa380502c },
++  /*  228 */ (__ev64_u32__) { 0x220e147e, 0x4af2a5aa },
++  /*  229 */ (__ev64_u32__) { 0x1fa8f9cf, 0x1098c9a0 },
++  /*  230 */ (__ev64_u32__) { 0xea9201a5, 0x368128b3 },
++  /*  231 */ (__ev64_u32__) { 0xbbd324a5, 0x42479c54 },
++  /*  232 */ (__ev64_u32__) { 0x7977ff1e, 0x4b7c3114 },
++  /*  233 */ (__ev64_u32__) { 0xf2eb245d, 0xd0858f9f },
++  /*  234 */ (__ev64_u32__) { 0x014f722a, 0x0ce67bf9 },
++  /*  235 */ (__ev64_u32__) { 0xfcbded29, 0x994f5ad7 },
++  /*  236 */ (__ev64_u32__) { 0xd2b5f4ec, 0x50bdf222 },
++  /*  237 */ (__ev64_u32__) { 0x561ec049, 0x2b3d2025 },
++  /*  238 */ (__ev64_u32__) { 0xd809bb7f, 0xe8793f75 },
++  /*  239 */ (__ev64_u32__) { 0xca534498, 0x74b7dd52 },
++  /*  240 */ (__ev64_u32__) { 0x3bb7693f, 0xbcec2479 },
++  /*  241 */ (__ev64_u32__) { 0x6a7ae5ec, 0x9de12d5d },
++  /*  242 */ (__ev64_u32__) { 0x39cd79fe, 0x1064cee6 },
++  /*  243 */ (__ev64_u32__) { 0xcc58813e, 0x4c0dbc53 },
++  /*  244 */ (__ev64_u32__) { 0x478ceef0, 0x368b0c4f },
++  /*  245 */ (__ev64_u32__) { 0x2f499da8, 0xea05e4d8 },
++  /*  246 */ (__ev64_u32__) { 0x03d0318f, 0xf13cda15 },
++  /*  247 */ (__ev64_u32__) { 0x510b344d, 0x13bb1623 },
++  /*  248 */ (__ev64_u32__) { 0x530b1fb0, 0xca3440f7 },
++  /*  249 */ (__ev64_u32__) { 0xb0bd99e9, 0xc71530e1 },
++  /*  250 */ (__ev64_u32__) { 0x30b68a36, 0x351da63e },
++  /*  251 */ (__ev64_u32__) { 0xbbc22593, 0x9ee72f34 },
++  /*  252 */ (__ev64_u32__) { 0xcabb1c96, 0x0adcf17f },
++  /*  253 */ (__ev64_u32__) { 0xc6620733, 0xbce5587b },
++  /*  254 */ (__ev64_u32__) { 0x3a4df932, 0x47f864e1 },
++  /*  255 */ (__ev64_u32__) { 0x9ef150f4, 0xe9c75409 },
++
++};
++
++__ev64_u32__ rD2u32[NELTS(rA2u32)];
++
++const __ev64_s32__ rA2s32[] = {
++
++  /*    0 */ (__ev64_s32__) { 0x2221f2d1, 0xe8af9d12 },
++  /*    1 */ (__ev64_s32__) { 0xe62ae2bd, 0x081bbd97 },
++  /*    2 */ (__ev64_s32__) { 0x95557629, 0xe5813500 },
++  /*    3 */ (__ev64_s32__) { 0xca6e9d68, 0xc48c1a25 },
++  /*    4 */ (__ev64_s32__) { 0x17612294, 0x2ea1ecdf },
++  /*    5 */ (__ev64_s32__) { 0x3f3158d0, 0xa7991335 },
++  /*    6 */ (__ev64_s32__) { 0x38e02293, 0xefe75457 },
++  /*    7 */ (__ev64_s32__) { 0x974bf3c0, 0xa28b1f26 },
++  /*    8 */ (__ev64_s32__) { 0xdf8c8916, 0x44dcb50a },
++  /*    9 */ (__ev64_s32__) { 0xa04cd5f8, 0x7d7bba72 },
++  /*   10 */ (__ev64_s32__) { 0x683b2fea, 0x12fb0ee3 },
++  /*   11 */ (__ev64_s32__) { 0xce6870bd, 0xdf4bdb94 },
++  /*   12 */ (__ev64_s32__) { 0x192c2fa3, 0x1a3baf4f },
++  /*   13 */ (__ev64_s32__) { 0xc5acb689, 0x40a11543 },
++  /*   14 */ (__ev64_s32__) { 0x9be87831, 0x672b3340 },
++  /*   15 */ (__ev64_s32__) { 0x03e55f02, 0x716ea33f },
++  /*   16 */ (__ev64_s32__) { 0x6fc1dce0, 0x09540e06 },
++  /*   17 */ (__ev64_s32__) { 0xa44a3aae, 0x3ce75762 },
++  /*   18 */ (__ev64_s32__) { 0x1171817a, 0x72a117cb },
++  /*   19 */ (__ev64_s32__) { 0x80fce225, 0xfb302085 },
++  /*   20 */ (__ev64_s32__) { 0xb22b4338, 0x0f96c7f5 },
++  /*   21 */ (__ev64_s32__) { 0x531436b7, 0xfdd4d266 },
++  /*   22 */ (__ev64_s32__) { 0xdac71c2b, 0xb8bbc127 },
++  /*   23 */ (__ev64_s32__) { 0xb821354a, 0xf3b1d720 },
++  /*   24 */ (__ev64_s32__) { 0x4f7a94bb, 0xae43532a },
++  /*   25 */ (__ev64_s32__) { 0xc2d924cb, 0xbf0bdeae },
++  /*   26 */ (__ev64_s32__) { 0x426286b6, 0x81acbda4 },
++  /*   27 */ (__ev64_s32__) { 0x58258df8, 0x04e7f724 },
++  /*   28 */ (__ev64_s32__) { 0x91ebda81, 0xb14b2ebf },
++  /*   29 */ (__ev64_s32__) { 0xcbb8aefd, 0xd3428d3a },
++  /*   30 */ (__ev64_s32__) { 0xa98747ca, 0xce247283 },
++  /*   31 */ (__ev64_s32__) { 0x98254417, 0x9fcf359f },
++  /*   32 */ (__ev64_s32__) { 0x8a19d2eb, 0x2f725c26 },
++  /*   33 */ (__ev64_s32__) { 0xea99750a, 0xec2e28ba },
++  /*   34 */ (__ev64_s32__) { 0x314689aa, 0xdb893d53 },
++  /*   35 */ (__ev64_s32__) { 0xe177fce6, 0x43b32d2a },
++  /*   36 */ (__ev64_s32__) { 0x8261bd86, 0xac909604 },
++  /*   37 */ (__ev64_s32__) { 0x02755244, 0x3d58b78a },
++  /*   38 */ (__ev64_s32__) { 0xd3098359, 0x92af78cd },
++  /*   39 */ (__ev64_s32__) { 0x5056cd4c, 0xa13cf2ab },
++  /*   40 */ (__ev64_s32__) { 0xe922c99c, 0x1d42f82d },
++  /*   41 */ (__ev64_s32__) { 0x16cf3102, 0x9595e9d2 },
++  /*   42 */ (__ev64_s32__) { 0x6f796ec4, 0xf10af2eb },
++  /*   43 */ (__ev64_s32__) { 0x737d9daa, 0x9c3b3b54 },
++  /*   44 */ (__ev64_s32__) { 0x218e1478, 0x7f0da06e },
++  /*   45 */ (__ev64_s32__) { 0xe6a22d4b, 0xf14b2ae0 },
++  /*   46 */ (__ev64_s32__) { 0xa3ce31d0, 0x9b4a97a7 },
++  /*   47 */ (__ev64_s32__) { 0x0a5492d6, 0x3acc55dd },
++  /*   48 */ (__ev64_s32__) { 0xb44f747d, 0x16302e2c },
++  /*   49 */ (__ev64_s32__) { 0xa96506e7, 0x8b445290 },
++  /*   50 */ (__ev64_s32__) { 0x95ac41f2, 0xbb793dc0 },
++  /*   51 */ (__ev64_s32__) { 0xb2bb0b40, 0x0800d544 },
++  /*   52 */ (__ev64_s32__) { 0x2c1fc946, 0x354ec7c2 },
++  /*   53 */ (__ev64_s32__) { 0xe0a03236, 0xef98229c },
++  /*   54 */ (__ev64_s32__) { 0xd297207b, 0xc5e54bc0 },
++  /*   55 */ (__ev64_s32__) { 0x38fd1110, 0xc28d32e2 },
++  /*   56 */ (__ev64_s32__) { 0x3fa34085, 0x1370f371 },
++  /*   57 */ (__ev64_s32__) { 0x640bdd68, 0x223c4b2b },
++  /*   58 */ (__ev64_s32__) { 0x9b2a4b06, 0xb392e3e1 },
++  /*   59 */ (__ev64_s32__) { 0x5c23e48b, 0xf856f7b5 },
++  /*   60 */ (__ev64_s32__) { 0x3e1559b8, 0x349ac40f },
++  /*   61 */ (__ev64_s32__) { 0x667a7528, 0x6d783ad2 },
++  /*   62 */ (__ev64_s32__) { 0xd984e89b, 0x3b82207e },
++  /*   63 */ (__ev64_s32__) { 0x3da49a46, 0xd10a033a },
++  /*   64 */ (__ev64_s32__) { 0x8223c7a6, 0xba9aedf2 },
++  /*   65 */ (__ev64_s32__) { 0xc1b8ce88, 0xe62cd25a },
++  /*   66 */ (__ev64_s32__) { 0x62c96583, 0xa7962c95 },
++  /*   67 */ (__ev64_s32__) { 0x33caf7cf, 0xa87c9efe },
++  /*   68 */ (__ev64_s32__) { 0xab23f75f, 0x1a68631c },
++  /*   69 */ (__ev64_s32__) { 0x7526caf2, 0xab2b1a04 },
++  /*   70 */ (__ev64_s32__) { 0x2d23f8e9, 0x6c791d3b },
++  /*   71 */ (__ev64_s32__) { 0xccb6b4a8, 0xaa266833 },
++  /*   72 */ (__ev64_s32__) { 0xb633180d, 0x22a66481 },
++  /*   73 */ (__ev64_s32__) { 0xd5e368a2, 0x03323f19 },
++  /*   74 */ (__ev64_s32__) { 0xd2701b8c, 0xd499d9a7 },
++  /*   75 */ (__ev64_s32__) { 0x9e02f6dd, 0x36787479 },
++  /*   76 */ (__ev64_s32__) { 0xeb85777a, 0xd2dce790 },
++  /*   77 */ (__ev64_s32__) { 0xce1a3b30, 0xe695726a },
++  /*   78 */ (__ev64_s32__) { 0xdd1ab278, 0xbc734f0c },
++  /*   79 */ (__ev64_s32__) { 0x81a01e43, 0xc9054169 },
++  /*   80 */ (__ev64_s32__) { 0xc0cf664c, 0x6800e751 },
++  /*   81 */ (__ev64_s32__) { 0x7480cfe8, 0x7f3edbab },
++  /*   82 */ (__ev64_s32__) { 0x30d6a5d7, 0xac9b49bc },
++  /*   83 */ (__ev64_s32__) { 0x94a35681, 0x9782d43e },
++  /*   84 */ (__ev64_s32__) { 0xe4eed548, 0x8c054924 },
++  /*   85 */ (__ev64_s32__) { 0x64720f29, 0x6985d101 },
++  /*   86 */ (__ev64_s32__) { 0x4d6a2067, 0xd0535472 },
++  /*   87 */ (__ev64_s32__) { 0x7acfd922, 0x3ccaac50 },
++  /*   88 */ (__ev64_s32__) { 0x36d7c2ea, 0x246f154d },
++  /*   89 */ (__ev64_s32__) { 0x2995fdf0, 0x26e75400 },
++  /*   90 */ (__ev64_s32__) { 0x13af25de, 0x2ba90dae },
++  /*   91 */ (__ev64_s32__) { 0x299726d5, 0x67f1673c },
++  /*   92 */ (__ev64_s32__) { 0x2b70085d, 0x42d79a4e },
++  /*   93 */ (__ev64_s32__) { 0x1fc0184b, 0xf4b4840f },
++  /*   94 */ (__ev64_s32__) { 0xdf001f5a, 0x31f87a06 },
++  /*   95 */ (__ev64_s32__) { 0x0bcccd55, 0xf99d8e39 },
++  /*   96 */ (__ev64_s32__) { 0xfe172cc0, 0x8f80ba13 },
++  /*   97 */ (__ev64_s32__) { 0x61cd045b, 0x6191c8cf },
++  /*   98 */ (__ev64_s32__) { 0xe7098079, 0x54e7027b },
++  /*   99 */ (__ev64_s32__) { 0xe2c6c876, 0xede12002 },
++  /*  100 */ (__ev64_s32__) { 0x72330aa0, 0x18777d43 },
++  /*  101 */ (__ev64_s32__) { 0xa4fa43c2, 0xccbc3644 },
++  /*  102 */ (__ev64_s32__) { 0x4e1444ae, 0x5c963dd8 },
++  /*  103 */ (__ev64_s32__) { 0x760191fe, 0x669d15d8 },
++  /*  104 */ (__ev64_s32__) { 0x25539336, 0x41c82c79 },
++  /*  105 */ (__ev64_s32__) { 0x5cee135f, 0xfa52d3d0 },
++  /*  106 */ (__ev64_s32__) { 0xa12b4255, 0xb35f727e },
++  /*  107 */ (__ev64_s32__) { 0x81cea040, 0x4b94734e },
++  /*  108 */ (__ev64_s32__) { 0x359510a5, 0x6f0da0cf },
++  /*  109 */ (__ev64_s32__) { 0x9b21a71e, 0x3a16e9b3 },
++  /*  110 */ (__ev64_s32__) { 0x42178a56, 0xda224509 },
++  /*  111 */ (__ev64_s32__) { 0x44212eb6, 0xe3d881f1 },
++  /*  112 */ (__ev64_s32__) { 0x1fadbd53, 0xea26687a },
++  /*  113 */ (__ev64_s32__) { 0x8588a591, 0x6634f855 },
++  /*  114 */ (__ev64_s32__) { 0x413700ba, 0x44839718 },
++  /*  115 */ (__ev64_s32__) { 0xc84f84df, 0x2d323f81 },
++  /*  116 */ (__ev64_s32__) { 0x8c737fe7, 0x8baf216d },
++  /*  117 */ (__ev64_s32__) { 0x3ba66950, 0xdb62d084 },
++  /*  118 */ (__ev64_s32__) { 0xa9fdf110, 0x10217832 },
++  /*  119 */ (__ev64_s32__) { 0xf3fde8bf, 0x611dd0b1 },
++  /*  120 */ (__ev64_s32__) { 0x83f2459f, 0x189f3aec },
++  /*  121 */ (__ev64_s32__) { 0xd973e360, 0xad8f5c7a },
++  /*  122 */ (__ev64_s32__) { 0xb68243a3, 0x8f022215 },
++  /*  123 */ (__ev64_s32__) { 0x9cbcb552, 0xf7080d23 },
++  /*  124 */ (__ev64_s32__) { 0xe1be9b0c, 0x921d4478 },
++  /*  125 */ (__ev64_s32__) { 0x17fb1ce5, 0x76e261df },
++  /*  126 */ (__ev64_s32__) { 0x1d255e81, 0x82d1d2ae },
++  /*  127 */ (__ev64_s32__) { 0x9b10af74, 0x3fd40c5a },
++  /*  128 */ (__ev64_s32__) { 0x7b9ce66e, 0x000b5a93 },
++  /*  129 */ (__ev64_s32__) { 0x641b4601, 0x33fec7c2 },
++  /*  130 */ (__ev64_s32__) { 0x0e6ebc5b, 0x9ac622f2 },
++  /*  131 */ (__ev64_s32__) { 0x51c64c1e, 0x07001809 },
++  /*  132 */ (__ev64_s32__) { 0x6f78e49e, 0x1c5b580b },
++  /*  133 */ (__ev64_s32__) { 0x53316d41, 0xf67f0ee7 },
++  /*  134 */ (__ev64_s32__) { 0xc0ea4af3, 0xbac1c9b7 },
++  /*  135 */ (__ev64_s32__) { 0x47b2f0a6, 0x3a4f34c0 },
++  /*  136 */ (__ev64_s32__) { 0x0c4c3cd5, 0x494c39a9 },
++  /*  137 */ (__ev64_s32__) { 0xd451ab78, 0xc19ade40 },
++  /*  138 */ (__ev64_s32__) { 0xf091ddc1, 0x9f5984b6 },
++  /*  139 */ (__ev64_s32__) { 0x2d13fb93, 0x659eab7a },
++  /*  140 */ (__ev64_s32__) { 0x7be83042, 0xc3f5ad5f },
++  /*  141 */ (__ev64_s32__) { 0x46fd9f9d, 0xcf0998b8 },
++  /*  142 */ (__ev64_s32__) { 0x43f083c5, 0x244a5d08 },
++  /*  143 */ (__ev64_s32__) { 0x4d26483d, 0x15ee9a27 },
++  /*  144 */ (__ev64_s32__) { 0xd4eef191, 0xacc3db92 },
++  /*  145 */ (__ev64_s32__) { 0x371bcd5c, 0x795f19d8 },
++  /*  146 */ (__ev64_s32__) { 0xf2fd3263, 0x8659a191 },
++  /*  147 */ (__ev64_s32__) { 0xaeb360aa, 0x8ef38ee9 },
++  /*  148 */ (__ev64_s32__) { 0x2d429dc4, 0x8d4fe575 },
++  /*  149 */ (__ev64_s32__) { 0xcf30bbd6, 0xd7ea3376 },
++  /*  150 */ (__ev64_s32__) { 0xfbdca01a, 0xd4662bfb },
++  /*  151 */ (__ev64_s32__) { 0xe04ea9c6, 0xf7f2d89a },
++  /*  152 */ (__ev64_s32__) { 0xe7d825c4, 0x86ff790c },
++  /*  153 */ (__ev64_s32__) { 0x7b54b363, 0x6e769955 },
++  /*  154 */ (__ev64_s32__) { 0xaab1296e, 0x78f547b1 },
++  /*  155 */ (__ev64_s32__) { 0x89ffa01e, 0xabe983da },
++  /*  156 */ (__ev64_s32__) { 0x51c9a587, 0x008eaba5 },
++  /*  157 */ (__ev64_s32__) { 0xcf0a71a9, 0xf6eda60b },
++  /*  158 */ (__ev64_s32__) { 0x3d1a0f3d, 0x59254ac8 },
++  /*  159 */ (__ev64_s32__) { 0x9870bfb3, 0x0dc236d1 },
++  /*  160 */ (__ev64_s32__) { 0xd9acf63b, 0xb6fadf48 },
++  /*  161 */ (__ev64_s32__) { 0xb491612a, 0x495b52f6 },
++  /*  162 */ (__ev64_s32__) { 0xc9614ee6, 0x0ea6803b },
++  /*  163 */ (__ev64_s32__) { 0x6b4e109f, 0x18827a83 },
++  /*  164 */ (__ev64_s32__) { 0xd4b1452e, 0x29abe8d9 },
++  /*  165 */ (__ev64_s32__) { 0xdf119466, 0x068f8a7f },
++  /*  166 */ (__ev64_s32__) { 0x67385008, 0xaf1fb160 },
++  /*  167 */ (__ev64_s32__) { 0x5b4fad58, 0x6c2bfb77 },
++  /*  168 */ (__ev64_s32__) { 0xc61ad386, 0x32e4a42b },
++  /*  169 */ (__ev64_s32__) { 0x4684fed9, 0x5d4873e3 },
++  /*  170 */ (__ev64_s32__) { 0xb93997f9, 0x5cbf8141 },
++  /*  171 */ (__ev64_s32__) { 0x0ee0fa51, 0x57a3d14e },
++  /*  172 */ (__ev64_s32__) { 0x2e942dee, 0xb5c21b4a },
++  /*  173 */ (__ev64_s32__) { 0x97fd58b8, 0xd5d2ed2c },
++  /*  174 */ (__ev64_s32__) { 0x448b6dbf, 0xd045dd52 },
++  /*  175 */ (__ev64_s32__) { 0x589424b1, 0x21bd21c6 },
++  /*  176 */ (__ev64_s32__) { 0x8767122f, 0xcd78043e },
++  /*  177 */ (__ev64_s32__) { 0xd65fb5df, 0x636dc515 },
++  /*  178 */ (__ev64_s32__) { 0x493d5fae, 0x625a4aa4 },
++  /*  179 */ (__ev64_s32__) { 0x79875f51, 0xadd6bca0 },
++  /*  180 */ (__ev64_s32__) { 0x79e8f6cb, 0x05eef9f6 },
++  /*  181 */ (__ev64_s32__) { 0xac53bba3, 0xf565be59 },
++  /*  182 */ (__ev64_s32__) { 0x5e331516, 0x99931bed },
++  /*  183 */ (__ev64_s32__) { 0xc35f3b38, 0xfbb8a234 },
++  /*  184 */ (__ev64_s32__) { 0xdddbded8, 0x0d6e22b7 },
++  /*  185 */ (__ev64_s32__) { 0x848fa19d, 0x4811f645 },
++  /*  186 */ (__ev64_s32__) { 0x0eeb38d1, 0x2be3bd1e },
++  /*  187 */ (__ev64_s32__) { 0xb79c9e5f, 0x9cca1ee9 },
++  /*  188 */ (__ev64_s32__) { 0x8bd7512d, 0x3c20306c },
++  /*  189 */ (__ev64_s32__) { 0x4969aacf, 0x578b778a },
++  /*  190 */ (__ev64_s32__) { 0x8279a106, 0xe13ee3e5 },
++  /*  191 */ (__ev64_s32__) { 0xdd668865, 0x8f4190f6 },
++  /*  192 */ (__ev64_s32__) { 0x43e3bc9a, 0x56544454 },
++  /*  193 */ (__ev64_s32__) { 0xa018484c, 0xdc00faef },
++  /*  194 */ (__ev64_s32__) { 0xd9cc2f12, 0xededd171 },
++  /*  195 */ (__ev64_s32__) { 0x5cfc36f9, 0xeb68617a },
++  /*  196 */ (__ev64_s32__) { 0x98508b74, 0x08b46163 },
++  /*  197 */ (__ev64_s32__) { 0x99a99478, 0x6a700251 },
++  /*  198 */ (__ev64_s32__) { 0xb97b7632, 0x464e1fc9 },
++  /*  199 */ (__ev64_s32__) { 0x6b9730e7, 0x09552897 },
++  /*  200 */ (__ev64_s32__) { 0xaa3359c0, 0x0505853e },
++  /*  201 */ (__ev64_s32__) { 0x921da776, 0x7212317b },
++  /*  202 */ (__ev64_s32__) { 0x937c9046, 0x1d1c1f06 },
++  /*  203 */ (__ev64_s32__) { 0xf764b3b8, 0x6c06ac7d },
++  /*  204 */ (__ev64_s32__) { 0x6adf9431, 0x5330caeb },
++  /*  205 */ (__ev64_s32__) { 0x6f50d8ec, 0x5dd2ea51 },
++  /*  206 */ (__ev64_s32__) { 0xed2e77ca, 0x90a353f4 },
++  /*  207 */ (__ev64_s32__) { 0x26bc7edd, 0xd8f96415 },
++  /*  208 */ (__ev64_s32__) { 0x0b784ef6, 0xafa46eff },
++  /*  209 */ (__ev64_s32__) { 0x716f475c, 0x504a7d9e },
++  /*  210 */ (__ev64_s32__) { 0xe8d6d792, 0x0af2e26b },
++  /*  211 */ (__ev64_s32__) { 0xb8843c11, 0x010e5bef },
++  /*  212 */ (__ev64_s32__) { 0x2874a75f, 0x68ec4d0e },
++  /*  213 */ (__ev64_s32__) { 0xa36282d2, 0x71f863cd },
++  /*  214 */ (__ev64_s32__) { 0x274613c7, 0xb35f959d },
++  /*  215 */ (__ev64_s32__) { 0x401ef74c, 0x81a3c86a },
++  /*  216 */ (__ev64_s32__) { 0x0b3a882f, 0xdf764443 },
++  /*  217 */ (__ev64_s32__) { 0x9925abec, 0xdb4efabb },
++  /*  218 */ (__ev64_s32__) { 0xfdc4fa9f, 0x034f5de6 },
++  /*  219 */ (__ev64_s32__) { 0x0a7fa90b, 0x0e5a22ce },
++  /*  220 */ (__ev64_s32__) { 0x66c1561b, 0xce7b40c9 },
++  /*  221 */ (__ev64_s32__) { 0x2a257845, 0xebdd116c },
++  /*  222 */ (__ev64_s32__) { 0x2ba110f8, 0x1a799c2d },
++  /*  223 */ (__ev64_s32__) { 0xd547a4cd, 0xe41bb413 },
++  /*  224 */ (__ev64_s32__) { 0xf400e6e3, 0x2a5ac0ce },
++  /*  225 */ (__ev64_s32__) { 0x72a53eef, 0x7a42910b },
++  /*  226 */ (__ev64_s32__) { 0x85d2e3b0, 0xd91feefc },
++  /*  227 */ (__ev64_s32__) { 0x33ba6796, 0x928cbaba },
++  /*  228 */ (__ev64_s32__) { 0x022d5259, 0xbd87ec98 },
++  /*  229 */ (__ev64_s32__) { 0x223fd864, 0x714cab00 },
++  /*  230 */ (__ev64_s32__) { 0x70ca2aa8, 0xf18c67e9 },
++  /*  231 */ (__ev64_s32__) { 0x82247af9, 0xb2e172cf },
++  /*  232 */ (__ev64_s32__) { 0xbb3021b1, 0xb5779e11 },
++  /*  233 */ (__ev64_s32__) { 0x17f65a5a, 0x3af6033e },
++  /*  234 */ (__ev64_s32__) { 0x4da53cc4, 0xda4462c9 },
++  /*  235 */ (__ev64_s32__) { 0x122c4d8a, 0x59fffbeb },
++  /*  236 */ (__ev64_s32__) { 0xfaf18e4a, 0xccb3dbf6 },
++  /*  237 */ (__ev64_s32__) { 0xb7ac4f9b, 0xa4c3bda4 },
++  /*  238 */ (__ev64_s32__) { 0x722c33f4, 0xaa3b66bd },
++  /*  239 */ (__ev64_s32__) { 0x4e6ec1c9, 0x3bde5fae },
++  /*  240 */ (__ev64_s32__) { 0xd4f6e1a1, 0x9aa1cf2b },
++  /*  241 */ (__ev64_s32__) { 0x2bb8b995, 0x0398bdc8 },
++  /*  242 */ (__ev64_s32__) { 0x1c13706b, 0xfe3ddb77 },
++  /*  243 */ (__ev64_s32__) { 0xb81752fb, 0xebf36a3b },
++  /*  244 */ (__ev64_s32__) { 0xcbe8b7ca, 0x3c149440 },
++  /*  245 */ (__ev64_s32__) { 0xd6eae92e, 0x06f66e9f },
++  /*  246 */ (__ev64_s32__) { 0xc186e318, 0x1585e20d },
++  /*  247 */ (__ev64_s32__) { 0xdbe54ab5, 0x79e53cae },
++  /*  248 */ (__ev64_s32__) { 0xa2f0b715, 0x8c700fc8 },
++  /*  249 */ (__ev64_s32__) { 0xea8b4010, 0x6e7325af },
++  /*  250 */ (__ev64_s32__) { 0x5003b21c, 0xaf85a63e },
++  /*  251 */ (__ev64_s32__) { 0x776b40ca, 0xe8b2bf9b },
++  /*  252 */ (__ev64_s32__) { 0x5676bb50, 0xf77afca4 },
++  /*  253 */ (__ev64_s32__) { 0x70fb2d8b, 0x93eb0a40 },
++  /*  254 */ (__ev64_s32__) { 0x8cf46819, 0xf4e2cae4 },
++  /*  255 */ (__ev64_s32__) { 0xae7b36da, 0x6d16b07b },
++
++};
++
++const __ev64_s32__ rB2s32[NELTS(rA2s32)] = {
++
++  /*    0 */ (__ev64_s32__) { 0xdeccedf4, 0xc2933ad3 },
++  /*    1 */ (__ev64_s32__) { 0x319bbbda, 0x7f4ee50a },
++  /*    2 */ (__ev64_s32__) { 0x5e64d745, 0xc092af87 },
++  /*    3 */ (__ev64_s32__) { 0x0e82af5e, 0x42fe9ce3 },
++  /*    4 */ (__ev64_s32__) { 0xfff5a12c, 0xfca50d59 },
++  /*    5 */ (__ev64_s32__) { 0x9d7ced66, 0xce9e3492 },
++  /*    6 */ (__ev64_s32__) { 0xf80745cb, 0x3eb7a55f },
++  /*    7 */ (__ev64_s32__) { 0x9f0916e7, 0xb233167d },
++  /*    8 */ (__ev64_s32__) { 0xedabac80, 0x49e79c61 },
++  /*    9 */ (__ev64_s32__) { 0xbfa4d9c3, 0x5b34ade6 },
++  /*   10 */ (__ev64_s32__) { 0x3324c3fc, 0x36cc05ca },
++  /*   11 */ (__ev64_s32__) { 0xee226157, 0x33439e52 },
++  /*   12 */ (__ev64_s32__) { 0x579e22c3, 0x478a6877 },
++  /*   13 */ (__ev64_s32__) { 0x8288e178, 0xc4802f9c },
++  /*   14 */ (__ev64_s32__) { 0x222f18a4, 0x7f75f35f },
++  /*   15 */ (__ev64_s32__) { 0x32e0be98, 0xea746e5d },
++  /*   16 */ (__ev64_s32__) { 0xcc275b00, 0xb9ddaae6 },
++  /*   17 */ (__ev64_s32__) { 0xaf43278f, 0x3156de39 },
++  /*   18 */ (__ev64_s32__) { 0x5fa669e4, 0x80e9a5a4 },
++  /*   19 */ (__ev64_s32__) { 0xd4b3f146, 0x643a09a4 },
++  /*   20 */ (__ev64_s32__) { 0x4d9d8d1e, 0xe6b974e5 },
++  /*   21 */ (__ev64_s32__) { 0xc217e861, 0xf8943b88 },
++  /*   22 */ (__ev64_s32__) { 0x6e4c6c3e, 0xa3ee410f },
++  /*   23 */ (__ev64_s32__) { 0x911db107, 0xe91f33f4 },
++  /*   24 */ (__ev64_s32__) { 0xbe7275d9, 0x29834c4b },
++  /*   25 */ (__ev64_s32__) { 0xf84f7f2f, 0xf6cd59e5 },
++  /*   26 */ (__ev64_s32__) { 0x2e0a29e9, 0x8fb59843 },
++  /*   27 */ (__ev64_s32__) { 0x75c9fdf8, 0xc88b4c44 },
++  /*   28 */ (__ev64_s32__) { 0x072e0860, 0x30883a64 },
++  /*   29 */ (__ev64_s32__) { 0x8bfe6379, 0xc7c3b27d },
++  /*   30 */ (__ev64_s32__) { 0x66826bdc, 0xaf80249c },
++  /*   31 */ (__ev64_s32__) { 0xbcb5af98, 0x1fc796ad },
++  /*   32 */ (__ev64_s32__) { 0xd53a784e, 0xd35c5b9b },
++  /*   33 */ (__ev64_s32__) { 0xc29cb4e9, 0xd6dc22d1 },
++  /*   34 */ (__ev64_s32__) { 0xa1241cb6, 0x1e79f9cb },
++  /*   35 */ (__ev64_s32__) { 0xa684028a, 0xaabcc19a },
++  /*   36 */ (__ev64_s32__) { 0x8df58b25, 0x6d5462bc },
++  /*   37 */ (__ev64_s32__) { 0x313a1726, 0xddf2a9ca },
++  /*   38 */ (__ev64_s32__) { 0xd0beb8bb, 0x30a699d3 },
++  /*   39 */ (__ev64_s32__) { 0xb6bc2a79, 0x57cffb78 },
++  /*   40 */ (__ev64_s32__) { 0x6f45c958, 0x1ccec13f },
++  /*   41 */ (__ev64_s32__) { 0x1b9efcdc, 0x3b3a79d6 },
++  /*   42 */ (__ev64_s32__) { 0xfca21196, 0xecada33a },
++  /*   43 */ (__ev64_s32__) { 0x3fcb108d, 0xa41eccd9 },
++  /*   44 */ (__ev64_s32__) { 0x1b902e5f, 0x6085b9af },
++  /*   45 */ (__ev64_s32__) { 0xb4529e4f, 0x62e38745 },
++  /*   46 */ (__ev64_s32__) { 0x490c9e47, 0x1e86290f },
++  /*   47 */ (__ev64_s32__) { 0xb400c421, 0x9f45cfbb },
++  /*   48 */ (__ev64_s32__) { 0x49cf9fa1, 0xdf510ab8 },
++  /*   49 */ (__ev64_s32__) { 0x66a18079, 0x7f9662e7 },
++  /*   50 */ (__ev64_s32__) { 0x3692415a, 0x9750ad30 },
++  /*   51 */ (__ev64_s32__) { 0xe4e3dadc, 0x3c0f602c },
++  /*   52 */ (__ev64_s32__) { 0x219d839c, 0x5ad02e24 },
++  /*   53 */ (__ev64_s32__) { 0xe1f33f51, 0xe0ef47ca },
++  /*   54 */ (__ev64_s32__) { 0x48d5e977, 0x54965ce1 },
++  /*   55 */ (__ev64_s32__) { 0x7e0e75e6, 0xac7562d7 },
++  /*   56 */ (__ev64_s32__) { 0xcf23bc80, 0x958fc65b },
++  /*   57 */ (__ev64_s32__) { 0x572d8cd1, 0xf5467a77 },
++  /*   58 */ (__ev64_s32__) { 0x85fb5535, 0x025135f6 },
++  /*   59 */ (__ev64_s32__) { 0x32c3d0c6, 0xb1a703d0 },
++  /*   60 */ (__ev64_s32__) { 0x708911dd, 0x56ee1e49 },
++  /*   61 */ (__ev64_s32__) { 0xe5dd328b, 0x6446cfc4 },
++  /*   62 */ (__ev64_s32__) { 0x54018f70, 0xce1f6ee0 },
++  /*   63 */ (__ev64_s32__) { 0xec6a8ef8, 0xe75ff74e },
++  /*   64 */ (__ev64_s32__) { 0x65c7c094, 0x07ae817b },
++  /*   65 */ (__ev64_s32__) { 0x664b5852, 0x3fa8b5b7 },
++  /*   66 */ (__ev64_s32__) { 0xa9f2fc3a, 0x392682bd },
++  /*   67 */ (__ev64_s32__) { 0x431f3f6b, 0x688dac8a },
++  /*   68 */ (__ev64_s32__) { 0xec288879, 0xf272802f },
++  /*   69 */ (__ev64_s32__) { 0x7a9b6b6f, 0xd4e8bb45 },
++  /*   70 */ (__ev64_s32__) { 0xd12342e7, 0x10907a77 },
++  /*   71 */ (__ev64_s32__) { 0xb94033e4, 0x20a0d723 },
++  /*   72 */ (__ev64_s32__) { 0x44f36d77, 0x6034cc43 },
++  /*   73 */ (__ev64_s32__) { 0xccfb4488, 0x953c7dab },
++  /*   74 */ (__ev64_s32__) { 0x5a3c6088, 0x39367d03 },
++  /*   75 */ (__ev64_s32__) { 0x473df5a9, 0x2fb45458 },
++  /*   76 */ (__ev64_s32__) { 0x09b8065f, 0xf99ee5e0 },
++  /*   77 */ (__ev64_s32__) { 0xdae5f7ad, 0xaa4c89c1 },
++  /*   78 */ (__ev64_s32__) { 0xf4975731, 0xd5211216 },
++  /*   79 */ (__ev64_s32__) { 0x01289a1c, 0x635fd08a },
++  /*   80 */ (__ev64_s32__) { 0x2ba32dfe, 0x733e1e25 },
++  /*   81 */ (__ev64_s32__) { 0xaddc1fe3, 0xecc8b256 },
++  /*   82 */ (__ev64_s32__) { 0xaa85ff52, 0x6930112c },
++  /*   83 */ (__ev64_s32__) { 0x0ba0536a, 0xfc4693dd },
++  /*   84 */ (__ev64_s32__) { 0xc821099a, 0xdfff1653 },
++  /*   85 */ (__ev64_s32__) { 0x37c36ae0, 0x1111e34d },
++  /*   86 */ (__ev64_s32__) { 0x0fee24e0, 0xe2be3a33 },
++  /*   87 */ (__ev64_s32__) { 0x21a91f95, 0x35cae024 },
++  /*   88 */ (__ev64_s32__) { 0x9ed998b8, 0xce34a4a0 },
++  /*   89 */ (__ev64_s32__) { 0xa580a6e0, 0x95a3f06d },
++  /*   90 */ (__ev64_s32__) { 0xf50e7ae8, 0x77beb880 },
++  /*   91 */ (__ev64_s32__) { 0xf1ca304d, 0x573a6c4a },
++  /*   92 */ (__ev64_s32__) { 0x3e940f3e, 0xe5c612ee },
++  /*   93 */ (__ev64_s32__) { 0x7aa46b0a, 0x57a1a474 },
++  /*   94 */ (__ev64_s32__) { 0x9b2d2f5f, 0xef1cc647 },
++  /*   95 */ (__ev64_s32__) { 0x92f8673f, 0xa9c8ff44 },
++  /*   96 */ (__ev64_s32__) { 0x852328e4, 0xdcfe3813 },
++  /*   97 */ (__ev64_s32__) { 0x410af849, 0x507ee5f6 },
++  /*   98 */ (__ev64_s32__) { 0x46bbfff8, 0xc519a425 },
++  /*   99 */ (__ev64_s32__) { 0x052f8151, 0x579a29ed },
++  /*  100 */ (__ev64_s32__) { 0xbd8d217b, 0x8d8b15f6 },
++  /*  101 */ (__ev64_s32__) { 0xb7942123, 0xff3aad62 },
++  /*  102 */ (__ev64_s32__) { 0x14f8eba0, 0x5091c41e },
++  /*  103 */ (__ev64_s32__) { 0x9c626de9, 0xce88f0c7 },
++  /*  104 */ (__ev64_s32__) { 0xf7c52ba2, 0x76602b37 },
++  /*  105 */ (__ev64_s32__) { 0x92a12b6c, 0x7af657a9 },
++  /*  106 */ (__ev64_s32__) { 0x6267063d, 0x772c0259 },
++  /*  107 */ (__ev64_s32__) { 0x93150c87, 0xbe4d5810 },
++  /*  108 */ (__ev64_s32__) { 0x9ac6ded4, 0x3e786adf },
++  /*  109 */ (__ev64_s32__) { 0x18b55f5d, 0x5f8a22b4 },
++  /*  110 */ (__ev64_s32__) { 0x2cc66e61, 0x432d0e42 },
++  /*  111 */ (__ev64_s32__) { 0x83d290e6, 0xc0528b4e },
++  /*  112 */ (__ev64_s32__) { 0x3d099346, 0xae9d0f88 },
++  /*  113 */ (__ev64_s32__) { 0x1f175966, 0x17c389a1 },
++  /*  114 */ (__ev64_s32__) { 0x38f69f52, 0x77b938cf },
++  /*  115 */ (__ev64_s32__) { 0x4e038181, 0xb44d5890 },
++  /*  116 */ (__ev64_s32__) { 0xe2b13e84, 0xeea10779 },
++  /*  117 */ (__ev64_s32__) { 0x7a631f75, 0xbd30757a },
++  /*  118 */ (__ev64_s32__) { 0xff8198a1, 0xbea03a88 },
++  /*  119 */ (__ev64_s32__) { 0xc39066c4, 0x6ef6c0ef },
++  /*  120 */ (__ev64_s32__) { 0xadc738dc, 0x36f866cf },
++  /*  121 */ (__ev64_s32__) { 0xb060a1e0, 0x26e50f3c },
++  /*  122 */ (__ev64_s32__) { 0x73fbd925, 0x066f56f0 },
++  /*  123 */ (__ev64_s32__) { 0xc00c46f2, 0x6f7b9ae4 },
++  /*  124 */ (__ev64_s32__) { 0xee8138b5, 0x71db31cb },
++  /*  125 */ (__ev64_s32__) { 0x9b52c7b7, 0x1d084b74 },
++  /*  126 */ (__ev64_s32__) { 0x9c505345, 0x1ee05de8 },
++  /*  127 */ (__ev64_s32__) { 0x9b01a2d1, 0x31e7ddac },
++  /*  128 */ (__ev64_s32__) { 0x908e7444, 0x2bd80710 },
++  /*  129 */ (__ev64_s32__) { 0x9178da04, 0x85f8c70c },
++  /*  130 */ (__ev64_s32__) { 0x5bbb8e64, 0x78db1292 },
++  /*  131 */ (__ev64_s32__) { 0xc294ffc5, 0xdeedf8df },
++  /*  132 */ (__ev64_s32__) { 0x70effe5f, 0x7d32a4f3 },
++  /*  133 */ (__ev64_s32__) { 0xd76fbaed, 0xa97cc9d7 },
++  /*  134 */ (__ev64_s32__) { 0x585f7b74, 0xaeddd246 },
++  /*  135 */ (__ev64_s32__) { 0xed72d506, 0xbdb272e0 },
++  /*  136 */ (__ev64_s32__) { 0xeaa1afe4, 0x8113cc49 },
++  /*  137 */ (__ev64_s32__) { 0x66dc178a, 0x593e666b },
++  /*  138 */ (__ev64_s32__) { 0xc6ed6716, 0x73d05ce4 },
++  /*  139 */ (__ev64_s32__) { 0xe11449f5, 0x5eb3965e },
++  /*  140 */ (__ev64_s32__) { 0x0ad30502, 0x07c0ec47 },
++  /*  141 */ (__ev64_s32__) { 0x88872064, 0xde68e19a },
++  /*  142 */ (__ev64_s32__) { 0x62c4689a, 0x0b3dc93b },
++  /*  143 */ (__ev64_s32__) { 0xffc53043, 0xffad5407 },
++  /*  144 */ (__ev64_s32__) { 0x24845225, 0x8d5389e9 },
++  /*  145 */ (__ev64_s32__) { 0xad5cd6fa, 0xee417c62 },
++  /*  146 */ (__ev64_s32__) { 0x4d4bbf5d, 0x91a0c76b },
++  /*  147 */ (__ev64_s32__) { 0xc74e32d3, 0x75ad1b25 },
++  /*  148 */ (__ev64_s32__) { 0x888fd452, 0x0a4ffa9e },
++  /*  149 */ (__ev64_s32__) { 0x99688098, 0x956b6989 },
++  /*  150 */ (__ev64_s32__) { 0x289fd297, 0x1aadb431 },
++  /*  151 */ (__ev64_s32__) { 0x1acdea38, 0x82658d53 },
++  /*  152 */ (__ev64_s32__) { 0x93a2170d, 0xcbf794aa },
++  /*  153 */ (__ev64_s32__) { 0x6931e025, 0x453c2cdb },
++  /*  154 */ (__ev64_s32__) { 0x42e19f2e, 0x7fe6f64a },
++  /*  155 */ (__ev64_s32__) { 0xfe42265a, 0x4b6e63dc },
++  /*  156 */ (__ev64_s32__) { 0xa8a6ced3, 0x4c057453 },
++  /*  157 */ (__ev64_s32__) { 0xc0e0e796, 0x01af926d },
++  /*  158 */ (__ev64_s32__) { 0x04195c43, 0x31c61e87 },
++  /*  159 */ (__ev64_s32__) { 0x82eb1a4d, 0x5880afde },
++  /*  160 */ (__ev64_s32__) { 0xacfad3f3, 0xbcbf5d8f },
++  /*  161 */ (__ev64_s32__) { 0x5cb8f967, 0x0e11cfc1 },
++  /*  162 */ (__ev64_s32__) { 0xa840a0b6, 0xf900eb91 },
++  /*  163 */ (__ev64_s32__) { 0x4a87c56c, 0xb86512df },
++  /*  164 */ (__ev64_s32__) { 0xc86728c4, 0x650e9479 },
++  /*  165 */ (__ev64_s32__) { 0x2371d3ca, 0xa6f2b4d6 },
++  /*  166 */ (__ev64_s32__) { 0x73affe95, 0xc06d905a },
++  /*  167 */ (__ev64_s32__) { 0x0e85c90e, 0x1b6e2fe4 },
++  /*  168 */ (__ev64_s32__) { 0x0b45841d, 0x2ee72e60 },
++  /*  169 */ (__ev64_s32__) { 0xd7193e25, 0xf471b566 },
++  /*  170 */ (__ev64_s32__) { 0x68996829, 0xa2a532b8 },
++  /*  171 */ (__ev64_s32__) { 0x38c0457a, 0xddcc4c13 },
++  /*  172 */ (__ev64_s32__) { 0xfc8ffe2f, 0x70a4fccf },
++  /*  173 */ (__ev64_s32__) { 0x5628b513, 0x8ad0562f },
++  /*  174 */ (__ev64_s32__) { 0xd998f9d8, 0x137bc2bc },
++  /*  175 */ (__ev64_s32__) { 0x161638aa, 0x9a7def34 },
++  /*  176 */ (__ev64_s32__) { 0xece4ed9e, 0xd5ba7137 },
++  /*  177 */ (__ev64_s32__) { 0xe6fa2ded, 0xd31accb9 },
++  /*  178 */ (__ev64_s32__) { 0x472b0ad4, 0x0d57481f },
++  /*  179 */ (__ev64_s32__) { 0xead9dba8, 0xcddccf15 },
++  /*  180 */ (__ev64_s32__) { 0xaa3865e6, 0xa084b5fa },
++  /*  181 */ (__ev64_s32__) { 0x3b2a0746, 0x15628442 },
++  /*  182 */ (__ev64_s32__) { 0x9c7e2951, 0x504aeaf5 },
++  /*  183 */ (__ev64_s32__) { 0xe39590c0, 0x26e51a1c },
++  /*  184 */ (__ev64_s32__) { 0x7955f178, 0xf5be7b52 },
++  /*  185 */ (__ev64_s32__) { 0x8d921a0b, 0xa208dae9 },
++  /*  186 */ (__ev64_s32__) { 0xfef93eb5, 0x305ef020 },
++  /*  187 */ (__ev64_s32__) { 0x2cf7ea9e, 0xa0c56e58 },
++  /*  188 */ (__ev64_s32__) { 0xc159f637, 0xf9c069fe },
++  /*  189 */ (__ev64_s32__) { 0xaea88cd8, 0xe399619a },
++  /*  190 */ (__ev64_s32__) { 0x2aca25a6, 0xca8d6139 },
++  /*  191 */ (__ev64_s32__) { 0xa6090615, 0x11f45fff },
++  /*  192 */ (__ev64_s32__) { 0xd370f80d, 0xa6178b34 },
++  /*  193 */ (__ev64_s32__) { 0x126292e7, 0xa7c5380d },
++  /*  194 */ (__ev64_s32__) { 0x718d4590, 0x6280d4cb },
++  /*  195 */ (__ev64_s32__) { 0x2a36bc2b, 0x44d8044a },
++  /*  196 */ (__ev64_s32__) { 0x45b76d48, 0xb4dc40e2 },
++  /*  197 */ (__ev64_s32__) { 0x47cae04a, 0x2e60b96b },
++  /*  198 */ (__ev64_s32__) { 0x745fc200, 0xa6cb775e },
++  /*  199 */ (__ev64_s32__) { 0x6898c2e8, 0x265250bb },
++  /*  200 */ (__ev64_s32__) { 0x323e6ef2, 0xaab30b69 },
++  /*  201 */ (__ev64_s32__) { 0xfaf30255, 0x4c8685b1 },
++  /*  202 */ (__ev64_s32__) { 0x1532a180, 0x3cb0523e },
++  /*  203 */ (__ev64_s32__) { 0xd325484d, 0x8816f796 },
++  /*  204 */ (__ev64_s32__) { 0xa268fe03, 0xf558cdc7 },
++  /*  205 */ (__ev64_s32__) { 0x6f1b52fc, 0xd8e00889 },
++  /*  206 */ (__ev64_s32__) { 0x5dcb422f, 0x5d7e86fd },
++  /*  207 */ (__ev64_s32__) { 0x92d6cb6f, 0x143ed5b6 },
++  /*  208 */ (__ev64_s32__) { 0xbebf4fb5, 0xa5028454 },
++  /*  209 */ (__ev64_s32__) { 0x4644e08f, 0xf88a0a1f },
++  /*  210 */ (__ev64_s32__) { 0xccbbe357, 0xe2bcb54b },
++  /*  211 */ (__ev64_s32__) { 0xbc9baef3, 0x82f6f33c },
++  /*  212 */ (__ev64_s32__) { 0x1d15e81a, 0xec8adbee },
++  /*  213 */ (__ev64_s32__) { 0x701b6884, 0xd82c5e24 },
++  /*  214 */ (__ev64_s32__) { 0x42324eb3, 0x3008f31d },
++  /*  215 */ (__ev64_s32__) { 0x07b5793c, 0x13e258eb },
++  /*  216 */ (__ev64_s32__) { 0xbba199b4, 0x330a0ad1 },
++  /*  217 */ (__ev64_s32__) { 0x2055421d, 0x5cd90907 },
++  /*  218 */ (__ev64_s32__) { 0xb24f386c, 0x9ad03c31 },
++  /*  219 */ (__ev64_s32__) { 0x04546b41, 0x7db305b6 },
++  /*  220 */ (__ev64_s32__) { 0x57acc6ae, 0x44fbbf21 },
++  /*  221 */ (__ev64_s32__) { 0x0026e876, 0xc93a8c13 },
++  /*  222 */ (__ev64_s32__) { 0x8a9af2c7, 0xf168807e },
++  /*  223 */ (__ev64_s32__) { 0xd791aaf7, 0xe7088db7 },
++  /*  224 */ (__ev64_s32__) { 0xba9d0028, 0x65293a40 },
++  /*  225 */ (__ev64_s32__) { 0x15216cae, 0x7ef95781 },
++  /*  226 */ (__ev64_s32__) { 0xa0e5792c, 0xa4b3e5e1 },
++  /*  227 */ (__ev64_s32__) { 0x3c5778fe, 0xbd7416dc },
++  /*  228 */ (__ev64_s32__) { 0xb5844588, 0xb6417875 },
++  /*  229 */ (__ev64_s32__) { 0x2492c414, 0xcd9fb079 },
++  /*  230 */ (__ev64_s32__) { 0x03d009e3, 0xb5cba9d8 },
++  /*  231 */ (__ev64_s32__) { 0xb56f3f7f, 0x27d09216 },
++  /*  232 */ (__ev64_s32__) { 0x2cf15c1c, 0xbb60132e },
++  /*  233 */ (__ev64_s32__) { 0xd967597d, 0xd0a43517 },
++  /*  234 */ (__ev64_s32__) { 0x9ec6ea43, 0x5707c50c },
++  /*  235 */ (__ev64_s32__) { 0x972dc626, 0xa399ddac },
++  /*  236 */ (__ev64_s32__) { 0xeedadb5a, 0x802dfabd },
++  /*  237 */ (__ev64_s32__) { 0xdb7b6491, 0x5ca9a54a },
++  /*  238 */ (__ev64_s32__) { 0x929ebab7, 0x31259b89 },
++  /*  239 */ (__ev64_s32__) { 0x38b6021a, 0x462e592b },
++  /*  240 */ (__ev64_s32__) { 0xa276ee6c, 0x7e414ec8 },
++  /*  241 */ (__ev64_s32__) { 0xf4baa285, 0xd3815d74 },
++  /*  242 */ (__ev64_s32__) { 0x45f8e3fe, 0x4a2829e3 },
++  /*  243 */ (__ev64_s32__) { 0xaef489b9, 0x2c1efd92 },
++  /*  244 */ (__ev64_s32__) { 0x85f3193d, 0xd889a4ec },
++  /*  245 */ (__ev64_s32__) { 0x244a4181, 0xa13d18e1 },
++  /*  246 */ (__ev64_s32__) { 0x8a5c62c5, 0xe21b0b37 },
++  /*  247 */ (__ev64_s32__) { 0x0f1ef67f, 0xb4064e7a },
++  /*  248 */ (__ev64_s32__) { 0x56dfec95, 0xa3c195ff },
++  /*  249 */ (__ev64_s32__) { 0x4c27ef03, 0xc19f24fa },
++  /*  250 */ (__ev64_s32__) { 0x113f525d, 0xe2c7e3dd },
++  /*  251 */ (__ev64_s32__) { 0x04eede0e, 0x054d4f25 },
++  /*  252 */ (__ev64_s32__) { 0x58e15c5a, 0x8117d5a0 },
++  /*  253 */ (__ev64_s32__) { 0xaceebb70, 0xc3831391 },
++  /*  254 */ (__ev64_s32__) { 0xb5ea5f12, 0x4cf6aab0 },
++  /*  255 */ (__ev64_s32__) { 0xd084cfce, 0x5009b593 },
++
++};
++
++__ev64_s32__ rD2s32[NELTS(rA2s32)];
++
++const __ev64_u64__ rA1u64[] = {
++
++  /*    0 */ (__ev64_u64__) { 0x5c4b9f6ac0f2d41d },
++  /*    1 */ (__ev64_u64__) { 0x6bed2e469055d12d },
++  /*    2 */ (__ev64_u64__) { 0xf67cd2bcae8e73c5 },
++  /*    3 */ (__ev64_u64__) { 0x6ffd1c6d8d906b88 },
++  /*    4 */ (__ev64_u64__) { 0x0507e9e7c66c44be },
++  /*    5 */ (__ev64_u64__) { 0xebe9f13b02dfc68d },
++  /*    6 */ (__ev64_u64__) { 0x756a54179c3248b3 },
++  /*    7 */ (__ev64_u64__) { 0x8023504c26c821f4 },
++  /*    8 */ (__ev64_u64__) { 0x05d23d3642252f12 },
++  /*    9 */ (__ev64_u64__) { 0xede3f55ecb24c292 },
++  /*   10 */ (__ev64_u64__) { 0x90b164e019bb28b1 },
++  /*   11 */ (__ev64_u64__) { 0xed3c85e349994e15 },
++  /*   12 */ (__ev64_u64__) { 0x2a229e1904edfa00 },
++  /*   13 */ (__ev64_u64__) { 0xb2644c380299b7ba },
++  /*   14 */ (__ev64_u64__) { 0x82e38433ee4e3626 },
++  /*   15 */ (__ev64_u64__) { 0x34428c9a8ca2796e },
++  /*   16 */ (__ev64_u64__) { 0xa2a1e3b51d5b1c83 },
++  /*   17 */ (__ev64_u64__) { 0x33508a44f081e521 },
++  /*   18 */ (__ev64_u64__) { 0x6d3da48fd9cc649d },
++  /*   19 */ (__ev64_u64__) { 0xf77c95e7be6a7c32 },
++  /*   20 */ (__ev64_u64__) { 0xbd2714c421e4f440 },
++  /*   21 */ (__ev64_u64__) { 0xd707d58e28c12bfc },
++  /*   22 */ (__ev64_u64__) { 0x76c5e3beb71188b6 },
++  /*   23 */ (__ev64_u64__) { 0x1b9552c38f5e71cb },
++  /*   24 */ (__ev64_u64__) { 0x75cbd8493e590785 },
++  /*   25 */ (__ev64_u64__) { 0xb9b163ee767ba3b2 },
++  /*   26 */ (__ev64_u64__) { 0xa82ac01de716c400 },
++  /*   27 */ (__ev64_u64__) { 0x44102f0826e1721e },
++  /*   28 */ (__ev64_u64__) { 0xda33d890008909aa },
++  /*   29 */ (__ev64_u64__) { 0x5e971f0dede827a2 },
++  /*   30 */ (__ev64_u64__) { 0x6a0468f218737778 },
++  /*   31 */ (__ev64_u64__) { 0xcb4a672940d38daf },
++  /*   32 */ (__ev64_u64__) { 0xb09b10f1a8ebfa47 },
++  /*   33 */ (__ev64_u64__) { 0xabda2989a20cf416 },
++  /*   34 */ (__ev64_u64__) { 0x0a0a3b79968d07cc },
++  /*   35 */ (__ev64_u64__) { 0x14f2866542acb4b6 },
++  /*   36 */ (__ev64_u64__) { 0x11bd1e7a1a6c3650 },
++  /*   37 */ (__ev64_u64__) { 0x6f214bc77719a68e },
++  /*   38 */ (__ev64_u64__) { 0x536d60eab363fdc0 },
++  /*   39 */ (__ev64_u64__) { 0x66d9cfef8ea18384 },
++  /*   40 */ (__ev64_u64__) { 0x32e62f3801fa7808 },
++  /*   41 */ (__ev64_u64__) { 0x18ba2f020d27cb1f },
++  /*   42 */ (__ev64_u64__) { 0x75bdadba7a7fe2b6 },
++  /*   43 */ (__ev64_u64__) { 0x0414d211512ece42 },
++  /*   44 */ (__ev64_u64__) { 0xdf65f73f2aebf96d },
++  /*   45 */ (__ev64_u64__) { 0x91c7ce729b7d96ec },
++  /*   46 */ (__ev64_u64__) { 0x5bb2707e1fac0645 },
++  /*   47 */ (__ev64_u64__) { 0x513a0a3b6d9ad1f9 },
++  /*   48 */ (__ev64_u64__) { 0xd3b010d75a7afe37 },
++  /*   49 */ (__ev64_u64__) { 0xac07a331e92426ff },
++  /*   50 */ (__ev64_u64__) { 0x61f8e40faecec1ad },
++  /*   51 */ (__ev64_u64__) { 0xe973dbc2f65617d2 },
++  /*   52 */ (__ev64_u64__) { 0xb7ddf3f7e3810a35 },
++  /*   53 */ (__ev64_u64__) { 0x00c572ca61021658 },
++  /*   54 */ (__ev64_u64__) { 0x61a3f0d8bbaa2506 },
++  /*   55 */ (__ev64_u64__) { 0xcc2df70373663366 },
++  /*   56 */ (__ev64_u64__) { 0x4e9e3fc05d4a257e },
++  /*   57 */ (__ev64_u64__) { 0x10f75ceb1bd2c32a },
++  /*   58 */ (__ev64_u64__) { 0xeb8f3b3309516359 },
++  /*   59 */ (__ev64_u64__) { 0x96367e645f6a6d11 },
++  /*   60 */ (__ev64_u64__) { 0xc90f479bb7b7e855 },
++  /*   61 */ (__ev64_u64__) { 0xcb4cf852368e1e67 },
++  /*   62 */ (__ev64_u64__) { 0x0b49328c1a92b864 },
++  /*   63 */ (__ev64_u64__) { 0xad8c29febfff48c0 },
++  /*   64 */ (__ev64_u64__) { 0xc2b490149c541d91 },
++  /*   65 */ (__ev64_u64__) { 0xab7265ae02c08547 },
++  /*   66 */ (__ev64_u64__) { 0x7f9674fc24153f02 },
++  /*   67 */ (__ev64_u64__) { 0xfd2be5069849bbe0 },
++  /*   68 */ (__ev64_u64__) { 0xfc5f2e111d9044a4 },
++  /*   69 */ (__ev64_u64__) { 0xc0bb3a9d06f30218 },
++  /*   70 */ (__ev64_u64__) { 0xbae2fc9e78e39fda },
++  /*   71 */ (__ev64_u64__) { 0xca48eabfb41fb3ed },
++  /*   72 */ (__ev64_u64__) { 0xdf83874e7edb56e6 },
++  /*   73 */ (__ev64_u64__) { 0xaa2966854cc9c841 },
++  /*   74 */ (__ev64_u64__) { 0x8f121801b38fa9c6 },
++  /*   75 */ (__ev64_u64__) { 0xf89d85d515ec7d62 },
++  /*   76 */ (__ev64_u64__) { 0xf407e7d5758c3311 },
++  /*   77 */ (__ev64_u64__) { 0xd8ccfe92989c344d },
++  /*   78 */ (__ev64_u64__) { 0x3af65ab3bad14d01 },
++  /*   79 */ (__ev64_u64__) { 0x6a2b20dbf0e4c001 },
++  /*   80 */ (__ev64_u64__) { 0x7a64b3713580f099 },
++  /*   81 */ (__ev64_u64__) { 0x6eb44c932000c2ac },
++  /*   82 */ (__ev64_u64__) { 0xba9c790a1b108e15 },
++  /*   83 */ (__ev64_u64__) { 0x77b8df62c21629ef },
++  /*   84 */ (__ev64_u64__) { 0x9f9c88e31dac3c82 },
++  /*   85 */ (__ev64_u64__) { 0x6a5818a7db6fef1b },
++  /*   86 */ (__ev64_u64__) { 0x09f9eb5a694abb02 },
++  /*   87 */ (__ev64_u64__) { 0xd22dc2ee525f7ea9 },
++  /*   88 */ (__ev64_u64__) { 0x839b61636b376ffb },
++  /*   89 */ (__ev64_u64__) { 0xa7df4fc0ede26d15 },
++  /*   90 */ (__ev64_u64__) { 0xe6527705f9c62cc1 },
++  /*   91 */ (__ev64_u64__) { 0xc087e426062278a4 },
++  /*   92 */ (__ev64_u64__) { 0x0df92ea225359fa0 },
++  /*   93 */ (__ev64_u64__) { 0x720fdd686bb62d82 },
++  /*   94 */ (__ev64_u64__) { 0xc312ba2ea28861a1 },
++  /*   95 */ (__ev64_u64__) { 0x79fbf07b5f725712 },
++  /*   96 */ (__ev64_u64__) { 0x75ebef9cd707ceae },
++  /*   97 */ (__ev64_u64__) { 0x0f742cb32f08790b },
++  /*   98 */ (__ev64_u64__) { 0x755c33cee3110c67 },
++  /*   99 */ (__ev64_u64__) { 0xd3e7836e59c09af1 },
++  /*  100 */ (__ev64_u64__) { 0x9fe4b30510eda0f3 },
++  /*  101 */ (__ev64_u64__) { 0x988a16a31c1969f7 },
++  /*  102 */ (__ev64_u64__) { 0xe926b0e359c88163 },
++  /*  103 */ (__ev64_u64__) { 0x7a024d4e37c2f51b },
++  /*  104 */ (__ev64_u64__) { 0x30f4b36809a771ce },
++  /*  105 */ (__ev64_u64__) { 0x7e8547357fe30dcc },
++  /*  106 */ (__ev64_u64__) { 0xd5e0b428a945f015 },
++  /*  107 */ (__ev64_u64__) { 0x471455620e4e52d3 },
++  /*  108 */ (__ev64_u64__) { 0x0d16ab53a5122930 },
++  /*  109 */ (__ev64_u64__) { 0x7c3b6f8434777bf8 },
++  /*  110 */ (__ev64_u64__) { 0x4b77a49d1bcf494d },
++  /*  111 */ (__ev64_u64__) { 0x17162356b23c21f4 },
++  /*  112 */ (__ev64_u64__) { 0xf76130c53af99c20 },
++  /*  113 */ (__ev64_u64__) { 0x327db3e7d6d1d6ee },
++  /*  114 */ (__ev64_u64__) { 0x0c301359c591fc89 },
++  /*  115 */ (__ev64_u64__) { 0x3ac208f47466722d },
++  /*  116 */ (__ev64_u64__) { 0x45922886c2284ff7 },
++  /*  117 */ (__ev64_u64__) { 0x57e866f1c01ed405 },
++  /*  118 */ (__ev64_u64__) { 0xbb4a5da9848ec772 },
++  /*  119 */ (__ev64_u64__) { 0x28bc4da51a1d88f8 },
++  /*  120 */ (__ev64_u64__) { 0x648dccb1bb450d3b },
++  /*  121 */ (__ev64_u64__) { 0xaa6dc16d4fc49c63 },
++  /*  122 */ (__ev64_u64__) { 0x63a9d0c7f9eff3f3 },
++  /*  123 */ (__ev64_u64__) { 0x860c8fa919bfac4a },
++  /*  124 */ (__ev64_u64__) { 0x1669f443e5cce2f2 },
++  /*  125 */ (__ev64_u64__) { 0x0fcfb0ae145c4c22 },
++  /*  126 */ (__ev64_u64__) { 0xa03dca76d4a80a79 },
++  /*  127 */ (__ev64_u64__) { 0xc88cf1752ead6f22 },
++  /*  128 */ (__ev64_u64__) { 0x346c30da5350f4ba },
++  /*  129 */ (__ev64_u64__) { 0xde6fd8080eb009a9 },
++  /*  130 */ (__ev64_u64__) { 0x07f35be6f53b8085 },
++  /*  131 */ (__ev64_u64__) { 0xb2cfbe78ef7db6a0 },
++  /*  132 */ (__ev64_u64__) { 0x01587b9b6baeb3ba },
++  /*  133 */ (__ev64_u64__) { 0xc0701976c5ab7237 },
++  /*  134 */ (__ev64_u64__) { 0x435e82e2c3d4fe4c },
++  /*  135 */ (__ev64_u64__) { 0x655033753d79e1f6 },
++  /*  136 */ (__ev64_u64__) { 0x4d3bf70dd27acccc },
++  /*  137 */ (__ev64_u64__) { 0x507683c6ba972b51 },
++  /*  138 */ (__ev64_u64__) { 0x1cc5417a3bb3dae5 },
++  /*  139 */ (__ev64_u64__) { 0x7f7bbc7d8abc90b9 },
++  /*  140 */ (__ev64_u64__) { 0xbd7a6556990136c7 },
++  /*  141 */ (__ev64_u64__) { 0xb39a2b252082058e },
++  /*  142 */ (__ev64_u64__) { 0x50c5831101c1700d },
++  /*  143 */ (__ev64_u64__) { 0xa13138408d97a723 },
++  /*  144 */ (__ev64_u64__) { 0x000867f76763f3c1 },
++  /*  145 */ (__ev64_u64__) { 0xbf889b3ed1cbb764 },
++  /*  146 */ (__ev64_u64__) { 0x5984c898b773b39c },
++  /*  147 */ (__ev64_u64__) { 0x811de53f053ac0d6 },
++  /*  148 */ (__ev64_u64__) { 0x48d5d93f5d04d56e },
++  /*  149 */ (__ev64_u64__) { 0xcbace1e445c2978c },
++  /*  150 */ (__ev64_u64__) { 0x6a002ffe9ecfbb68 },
++  /*  151 */ (__ev64_u64__) { 0x521e3033d8c9c694 },
++  /*  152 */ (__ev64_u64__) { 0x30bf08b5fb74eca2 },
++  /*  153 */ (__ev64_u64__) { 0x56ee2e01d7777fe7 },
++  /*  154 */ (__ev64_u64__) { 0x26d01f87595ace2a },
++  /*  155 */ (__ev64_u64__) { 0x795476d102774cec },
++  /*  156 */ (__ev64_u64__) { 0xc5110f3f1f412477 },
++  /*  157 */ (__ev64_u64__) { 0x2527c27862c97f36 },
++  /*  158 */ (__ev64_u64__) { 0x56cd3f20dd367468 },
++  /*  159 */ (__ev64_u64__) { 0xf9e1475c7b9dcda1 },
++  /*  160 */ (__ev64_u64__) { 0xf74bee93477abbf3 },
++  /*  161 */ (__ev64_u64__) { 0xb12781b27c69a90c },
++  /*  162 */ (__ev64_u64__) { 0xa291a3fae6116469 },
++  /*  163 */ (__ev64_u64__) { 0x878562776acd7fa1 },
++  /*  164 */ (__ev64_u64__) { 0xe6e12bc294ceff7c },
++  /*  165 */ (__ev64_u64__) { 0x94b30df0220f6c7a },
++  /*  166 */ (__ev64_u64__) { 0xa90d7e448df63e0b },
++  /*  167 */ (__ev64_u64__) { 0x27ca66ecf356067d },
++  /*  168 */ (__ev64_u64__) { 0x3e9fed8e7733854d },
++  /*  169 */ (__ev64_u64__) { 0x71bd8d1c94c1a8ae },
++  /*  170 */ (__ev64_u64__) { 0xbf1611e6cedd1602 },
++  /*  171 */ (__ev64_u64__) { 0x9dc622bf9ce2cba9 },
++  /*  172 */ (__ev64_u64__) { 0x1b56724cd3d61cc6 },
++  /*  173 */ (__ev64_u64__) { 0x89345e00c6e161c6 },
++  /*  174 */ (__ev64_u64__) { 0x3f1f771cf00355f1 },
++  /*  175 */ (__ev64_u64__) { 0x63ea6374c556fecb },
++  /*  176 */ (__ev64_u64__) { 0xd1ac639ab22b4733 },
++  /*  177 */ (__ev64_u64__) { 0xbf49423981eb2672 },
++  /*  178 */ (__ev64_u64__) { 0x12d82291bee6320a },
++  /*  179 */ (__ev64_u64__) { 0x6cff35fd0d839af1 },
++  /*  180 */ (__ev64_u64__) { 0x159cddd645a14f96 },
++  /*  181 */ (__ev64_u64__) { 0xf260069cf5ba66b6 },
++  /*  182 */ (__ev64_u64__) { 0xf338fb08468d8f28 },
++  /*  183 */ (__ev64_u64__) { 0x3b4587560c7fe7ad },
++  /*  184 */ (__ev64_u64__) { 0xb38d7b9e59a65e18 },
++  /*  185 */ (__ev64_u64__) { 0x97ca3be6a00e66a7 },
++  /*  186 */ (__ev64_u64__) { 0x03c0fc75dca77b9d },
++  /*  187 */ (__ev64_u64__) { 0x13d83f44e444c60a },
++  /*  188 */ (__ev64_u64__) { 0x26c270d0df95119a },
++  /*  189 */ (__ev64_u64__) { 0x59efc2d12c259478 },
++  /*  190 */ (__ev64_u64__) { 0xea46fcdbdaa0c0cb },
++  /*  191 */ (__ev64_u64__) { 0x892ec0eb2748f10a },
++  /*  192 */ (__ev64_u64__) { 0x0147c83bc8a39f91 },
++  /*  193 */ (__ev64_u64__) { 0xd07f81607e630936 },
++  /*  194 */ (__ev64_u64__) { 0x14e70ed00b8c233a },
++  /*  195 */ (__ev64_u64__) { 0x1212a4c0ac7dd9df },
++  /*  196 */ (__ev64_u64__) { 0xadb439762c4e9405 },
++  /*  197 */ (__ev64_u64__) { 0xa5ac50b4bb6d643c },
++  /*  198 */ (__ev64_u64__) { 0xfe433701fcc36bce },
++  /*  199 */ (__ev64_u64__) { 0x2b81708c111231a7 },
++  /*  200 */ (__ev64_u64__) { 0x94486d0194bb6ee9 },
++  /*  201 */ (__ev64_u64__) { 0x21fb353e19da8704 },
++  /*  202 */ (__ev64_u64__) { 0xb04d760f074c2bc1 },
++  /*  203 */ (__ev64_u64__) { 0x099622fd708f85f9 },
++  /*  204 */ (__ev64_u64__) { 0xf3dc750a55fadf27 },
++  /*  205 */ (__ev64_u64__) { 0x85fc3b6b51dbdc0b },
++  /*  206 */ (__ev64_u64__) { 0x199d696da7d1fd3f },
++  /*  207 */ (__ev64_u64__) { 0x5e81279a672a3875 },
++  /*  208 */ (__ev64_u64__) { 0x29f340471e0336e1 },
++  /*  209 */ (__ev64_u64__) { 0x9eb4ece614d70750 },
++  /*  210 */ (__ev64_u64__) { 0xb2935935b68602b3 },
++  /*  211 */ (__ev64_u64__) { 0xd7f324169093280c },
++  /*  212 */ (__ev64_u64__) { 0xbaee35502444b4cc },
++  /*  213 */ (__ev64_u64__) { 0xac7fbbc24a209876 },
++  /*  214 */ (__ev64_u64__) { 0x1b8168faca45327e },
++  /*  215 */ (__ev64_u64__) { 0x756edece70724ccc },
++  /*  216 */ (__ev64_u64__) { 0xa39fa3ab1d6cccc6 },
++  /*  217 */ (__ev64_u64__) { 0x4627a90e4058cbae },
++  /*  218 */ (__ev64_u64__) { 0x89f83c738908ab44 },
++  /*  219 */ (__ev64_u64__) { 0x3688a8d337ed870d },
++  /*  220 */ (__ev64_u64__) { 0x4014a3ab54881016 },
++  /*  221 */ (__ev64_u64__) { 0x8a762a95ce46c811 },
++  /*  222 */ (__ev64_u64__) { 0xd3e11c52cd1e3427 },
++  /*  223 */ (__ev64_u64__) { 0x8077e10d7daf1dce },
++  /*  224 */ (__ev64_u64__) { 0xcee3212c145d2ea1 },
++  /*  225 */ (__ev64_u64__) { 0x28ab92077f3db700 },
++  /*  226 */ (__ev64_u64__) { 0x06699c4c592808ea },
++  /*  227 */ (__ev64_u64__) { 0x712cdb0776fb94dc },
++  /*  228 */ (__ev64_u64__) { 0x3550595dcd3bd4b7 },
++  /*  229 */ (__ev64_u64__) { 0x68aff610e83b7eed },
++  /*  230 */ (__ev64_u64__) { 0x82cb404a0a49d175 },
++  /*  231 */ (__ev64_u64__) { 0x07553f938a425586 },
++  /*  232 */ (__ev64_u64__) { 0x5dc87c285c6c4128 },
++  /*  233 */ (__ev64_u64__) { 0x9eb5dee56a692492 },
++  /*  234 */ (__ev64_u64__) { 0x6420410b08615139 },
++  /*  235 */ (__ev64_u64__) { 0xf7bd53c735061d2d },
++  /*  236 */ (__ev64_u64__) { 0xdfbaa3bb3735f831 },
++  /*  237 */ (__ev64_u64__) { 0x38800b52872d0db2 },
++  /*  238 */ (__ev64_u64__) { 0x7fc840aa91aef988 },
++  /*  239 */ (__ev64_u64__) { 0xbf330fb585073ac3 },
++  /*  240 */ (__ev64_u64__) { 0x3aed14139505bc16 },
++  /*  241 */ (__ev64_u64__) { 0x34cba8448d0e8825 },
++  /*  242 */ (__ev64_u64__) { 0x775d03fa46e62be1 },
++  /*  243 */ (__ev64_u64__) { 0x8656d9272f95974d },
++  /*  244 */ (__ev64_u64__) { 0xaed29a5b34d6279d },
++  /*  245 */ (__ev64_u64__) { 0xe6bae754030dc181 },
++  /*  246 */ (__ev64_u64__) { 0x7912f7b2c06c0fe6 },
++  /*  247 */ (__ev64_u64__) { 0x33e00cb603505102 },
++  /*  248 */ (__ev64_u64__) { 0x4258784b72a46339 },
++  /*  249 */ (__ev64_u64__) { 0x1258424e462397ca },
++  /*  250 */ (__ev64_u64__) { 0x3f163ba6ac7d7490 },
++  /*  251 */ (__ev64_u64__) { 0xc4c28983707a13f3 },
++  /*  252 */ (__ev64_u64__) { 0x2407333e403455d7 },
++  /*  253 */ (__ev64_u64__) { 0x8b2da8f72dee0225 },
++  /*  254 */ (__ev64_u64__) { 0x972364c46e1b15ff },
++  /*  255 */ (__ev64_u64__) { 0xd674b72fc1484c88 },
++
++};
++
++const __ev64_u64__ rB1u64[NELTS(rA1u64)] = {
++
++  /*    0 */ (__ev64_u64__) { 0x326065087f24b3c2 },
++  /*    1 */ (__ev64_u64__) { 0x499beb642cac0e55 },
++  /*    2 */ (__ev64_u64__) { 0x229fc36285ff76e8 },
++  /*    3 */ (__ev64_u64__) { 0x9cce417597533e98 },
++  /*    4 */ (__ev64_u64__) { 0x0829b2b4136f7b6d },
++  /*    5 */ (__ev64_u64__) { 0xfe2efe65e620f583 },
++  /*    6 */ (__ev64_u64__) { 0x58e4241e7d40f32a },
++  /*    7 */ (__ev64_u64__) { 0x30cd737658e101a3 },
++  /*    8 */ (__ev64_u64__) { 0x4a2aa712bf51194e },
++  /*    9 */ (__ev64_u64__) { 0xc194b29f15a20a32 },
++  /*   10 */ (__ev64_u64__) { 0x1496fdc8952763fa },
++  /*   11 */ (__ev64_u64__) { 0xb2deb11880b8bf82 },
++  /*   12 */ (__ev64_u64__) { 0x0a622d70f4fbbcda },
++  /*   13 */ (__ev64_u64__) { 0x2e0134e7c8b6c656 },
++  /*   14 */ (__ev64_u64__) { 0x7b8a02442fe3ef1b },
++  /*   15 */ (__ev64_u64__) { 0x51035ab7072a403a },
++  /*   16 */ (__ev64_u64__) { 0x382318dfd4ffbb0c },
++  /*   17 */ (__ev64_u64__) { 0x14cc18eea1738d0a },
++  /*   18 */ (__ev64_u64__) { 0x57f0e614d2deac0b },
++  /*   19 */ (__ev64_u64__) { 0x103ac4bca2ee6101 },
++  /*   20 */ (__ev64_u64__) { 0x4f53ddfe0dd6bf94 },
++  /*   21 */ (__ev64_u64__) { 0x6614403fd8e0691b },
++  /*   22 */ (__ev64_u64__) { 0xcefa5d88b02457c6 },
++  /*   23 */ (__ev64_u64__) { 0x3abec8a9f942ee0e },
++  /*   24 */ (__ev64_u64__) { 0x8ce4a4fd1f2556b1 },
++  /*   25 */ (__ev64_u64__) { 0xe369602084115c19 },
++  /*   26 */ (__ev64_u64__) { 0x32ed367cd5a18b12 },
++  /*   27 */ (__ev64_u64__) { 0x22fb9d9fbe6f94b7 },
++  /*   28 */ (__ev64_u64__) { 0x3e1cff3197cb12f9 },
++  /*   29 */ (__ev64_u64__) { 0xe0c4443f459d93d1 },
++  /*   30 */ (__ev64_u64__) { 0x1a588ed652e5d66f },
++  /*   31 */ (__ev64_u64__) { 0xb2ac9c770c992819 },
++  /*   32 */ (__ev64_u64__) { 0x0941ee8be1ba8614 },
++  /*   33 */ (__ev64_u64__) { 0x3c5667fb50bc1a41 },
++  /*   34 */ (__ev64_u64__) { 0xbe372e892e3b6ad2 },
++  /*   35 */ (__ev64_u64__) { 0x9a5f988c944af627 },
++  /*   36 */ (__ev64_u64__) { 0xb199e7fd5aca8c20 },
++  /*   37 */ (__ev64_u64__) { 0x65ec2e41e13e6f4e },
++  /*   38 */ (__ev64_u64__) { 0xa84d8ddc9fda26b9 },
++  /*   39 */ (__ev64_u64__) { 0x568a9828b7619d73 },
++  /*   40 */ (__ev64_u64__) { 0xfd7b3241e675c21f },
++  /*   41 */ (__ev64_u64__) { 0xf21da52360ca4248 },
++  /*   42 */ (__ev64_u64__) { 0xb4df35888d7aea39 },
++  /*   43 */ (__ev64_u64__) { 0x64ecabd1f5ae261e },
++  /*   44 */ (__ev64_u64__) { 0xd82c9dbab4fbd17c },
++  /*   45 */ (__ev64_u64__) { 0xbab773e4aeee68fc },
++  /*   46 */ (__ev64_u64__) { 0x6d55603879cf4273 },
++  /*   47 */ (__ev64_u64__) { 0xcb1aa4260c83708e },
++  /*   48 */ (__ev64_u64__) { 0x3956d0c681497048 },
++  /*   49 */ (__ev64_u64__) { 0x9dbca7acbd304340 },
++  /*   50 */ (__ev64_u64__) { 0xfba6d6502e075526 },
++  /*   51 */ (__ev64_u64__) { 0xacd8c3069ac9bb97 },
++  /*   52 */ (__ev64_u64__) { 0x83b5e4fbbe2278d8 },
++  /*   53 */ (__ev64_u64__) { 0x19beceb5f6a6af2d },
++  /*   54 */ (__ev64_u64__) { 0x3fcbe56eb5aa1eae },
++  /*   55 */ (__ev64_u64__) { 0x1bdbd1f8282d789e },
++  /*   56 */ (__ev64_u64__) { 0x7440d70fc0dd3df5 },
++  /*   57 */ (__ev64_u64__) { 0xc4e6b96c95bdfd16 },
++  /*   58 */ (__ev64_u64__) { 0x95bb6a4266ed4534 },
++  /*   59 */ (__ev64_u64__) { 0x82a7a68596642abb },
++  /*   60 */ (__ev64_u64__) { 0x37d9beb8220c582e },
++  /*   61 */ (__ev64_u64__) { 0xf85547446c0579ef },
++  /*   62 */ (__ev64_u64__) { 0xe760c02350de31e2 },
++  /*   63 */ (__ev64_u64__) { 0x2f7a88e9e0fd9421 },
++  /*   64 */ (__ev64_u64__) { 0xec4496605ef4a6b2 },
++  /*   65 */ (__ev64_u64__) { 0x97f9bc848259e39b },
++  /*   66 */ (__ev64_u64__) { 0x328fc7ef766d5586 },
++  /*   67 */ (__ev64_u64__) { 0x67a8bafea2fd8cac },
++  /*   68 */ (__ev64_u64__) { 0x17472164f0ce60de },
++  /*   69 */ (__ev64_u64__) { 0x3c5661f9135f265a },
++  /*   70 */ (__ev64_u64__) { 0x2d7bcdd8a76b38ca },
++  /*   71 */ (__ev64_u64__) { 0x57bf452df47e25c3 },
++  /*   72 */ (__ev64_u64__) { 0x6238d622753c012e },
++  /*   73 */ (__ev64_u64__) { 0x6c71771e86e2b747 },
++  /*   74 */ (__ev64_u64__) { 0x2ae8ab009e4e360c },
++  /*   75 */ (__ev64_u64__) { 0xdeb26a0dcccfe330 },
++  /*   76 */ (__ev64_u64__) { 0xe363340fac93bf5d },
++  /*   77 */ (__ev64_u64__) { 0x431e77999ef5711f },
++  /*   78 */ (__ev64_u64__) { 0xe650b40926b87561 },
++  /*   79 */ (__ev64_u64__) { 0xfe44e8cd805c2f7f },
++  /*   80 */ (__ev64_u64__) { 0xd7f54d41b96c963b },
++  /*   81 */ (__ev64_u64__) { 0xca3dcdc8f8647fee },
++  /*   82 */ (__ev64_u64__) { 0x302117c644ee6c5d },
++  /*   83 */ (__ev64_u64__) { 0x39b307ebf209bfed },
++  /*   84 */ (__ev64_u64__) { 0xe5de732a1d234093 },
++  /*   85 */ (__ev64_u64__) { 0x6d192b14dfd12c96 },
++  /*   86 */ (__ev64_u64__) { 0xf6a458040a21ca51 },
++  /*   87 */ (__ev64_u64__) { 0xeaab7fe8e6d64a71 },
++  /*   88 */ (__ev64_u64__) { 0x82caab3edc0682a5 },
++  /*   89 */ (__ev64_u64__) { 0x12d523b4d913c17f },
++  /*   90 */ (__ev64_u64__) { 0x16612d5413961a2e },
++  /*   91 */ (__ev64_u64__) { 0xb69f5eb6bd5139ab },
++  /*   92 */ (__ev64_u64__) { 0x1ae864e1906dadf0 },
++  /*   93 */ (__ev64_u64__) { 0xf6774f5a26288de9 },
++  /*   94 */ (__ev64_u64__) { 0xd9fca53f02830b05 },
++  /*   95 */ (__ev64_u64__) { 0x43774761bed1a95c },
++  /*   96 */ (__ev64_u64__) { 0xe1dd1050df3b0c3b },
++  /*   97 */ (__ev64_u64__) { 0xb7d8af6a6282c659 },
++  /*   98 */ (__ev64_u64__) { 0x7c5977f125d8eb15 },
++  /*   99 */ (__ev64_u64__) { 0x5447322f99b7846a },
++  /*  100 */ (__ev64_u64__) { 0x978c81563b43734b },
++  /*  101 */ (__ev64_u64__) { 0x0a781e2eeaf25527 },
++  /*  102 */ (__ev64_u64__) { 0x7bc414fb2ccad11e },
++  /*  103 */ (__ev64_u64__) { 0x8864516da5bcd091 },
++  /*  104 */ (__ev64_u64__) { 0x3f5fbc6848585d3a },
++  /*  105 */ (__ev64_u64__) { 0x151c30ee1991a8f1 },
++  /*  106 */ (__ev64_u64__) { 0x3ed6ca511bb70bdc },
++  /*  107 */ (__ev64_u64__) { 0xdde95cd554ed820d },
++  /*  108 */ (__ev64_u64__) { 0x86a3fdac12b0c2af },
++  /*  109 */ (__ev64_u64__) { 0x2a9d5329d9463f58 },
++  /*  110 */ (__ev64_u64__) { 0x7c8cb74e7bbb1d57 },
++  /*  111 */ (__ev64_u64__) { 0x3cc98cfd95d11233 },
++  /*  112 */ (__ev64_u64__) { 0xe23580de9c2d4e37 },
++  /*  113 */ (__ev64_u64__) { 0xda0c0215ddcebd7f },
++  /*  114 */ (__ev64_u64__) { 0xcbe3a6d1b9060973 },
++  /*  115 */ (__ev64_u64__) { 0x4b878874aa26f502 },
++  /*  116 */ (__ev64_u64__) { 0x574be7a8b2bc5a73 },
++  /*  117 */ (__ev64_u64__) { 0xd9a6b489b7785a7f },
++  /*  118 */ (__ev64_u64__) { 0xc79a67bde03d24f0 },
++  /*  119 */ (__ev64_u64__) { 0x9d6e37fe912ce169 },
++  /*  120 */ (__ev64_u64__) { 0x59872b0f1e6d3416 },
++  /*  121 */ (__ev64_u64__) { 0x571b295fc3c90f65 },
++  /*  122 */ (__ev64_u64__) { 0x55eb3b204c2cf19d },
++  /*  123 */ (__ev64_u64__) { 0x5d787889bc8fe444 },
++  /*  124 */ (__ev64_u64__) { 0xa9d8cd9220d7061f },
++  /*  125 */ (__ev64_u64__) { 0x6c448cb7f6c41587 },
++  /*  126 */ (__ev64_u64__) { 0x8e07d48ad0d42711 },
++  /*  127 */ (__ev64_u64__) { 0x4050c0c1e4eac964 },
++  /*  128 */ (__ev64_u64__) { 0xdb56004ce9eba3cf },
++  /*  129 */ (__ev64_u64__) { 0x64678edb585d056b },
++  /*  130 */ (__ev64_u64__) { 0xa082f145d31e8f7c },
++  /*  131 */ (__ev64_u64__) { 0x2f49842760124bf5 },
++  /*  132 */ (__ev64_u64__) { 0xce3b2f6b3708d422 },
++  /*  133 */ (__ev64_u64__) { 0xf2ae06d0ed711bf7 },
++  /*  134 */ (__ev64_u64__) { 0xee021303e8f05a52 },
++  /*  135 */ (__ev64_u64__) { 0xb98fc30c79b0e6bc },
++  /*  136 */ (__ev64_u64__) { 0xb8183cf8ce478e61 },
++  /*  137 */ (__ev64_u64__) { 0x3886ad8cadccb0cf },
++  /*  138 */ (__ev64_u64__) { 0xdc7e71b544dfa340 },
++  /*  139 */ (__ev64_u64__) { 0xd8fdd7693bb1d127 },
++  /*  140 */ (__ev64_u64__) { 0xf3ba1beb12cee0cf },
++  /*  141 */ (__ev64_u64__) { 0x0e30bdcdefcffe0d },
++  /*  142 */ (__ev64_u64__) { 0x90efa50d88d9a7e5 },
++  /*  143 */ (__ev64_u64__) { 0x679dee95d678b2e9 },
++  /*  144 */ (__ev64_u64__) { 0x2de5f649e5b29540 },
++  /*  145 */ (__ev64_u64__) { 0x71e62902fae6435b },
++  /*  146 */ (__ev64_u64__) { 0xd4fc2e186a37acc3 },
++  /*  147 */ (__ev64_u64__) { 0xd3c845d72f11e2d3 },
++  /*  148 */ (__ev64_u64__) { 0x541157a4575763c2 },
++  /*  149 */ (__ev64_u64__) { 0xadea385fb1efd90d },
++  /*  150 */ (__ev64_u64__) { 0xcd85f85ee8074632 },
++  /*  151 */ (__ev64_u64__) { 0x0347004db48925a8 },
++  /*  152 */ (__ev64_u64__) { 0x24ffaabfa46e4564 },
++  /*  153 */ (__ev64_u64__) { 0x95b4fdeacb61a270 },
++  /*  154 */ (__ev64_u64__) { 0x842497a60f447e69 },
++  /*  155 */ (__ev64_u64__) { 0xf4aa9c1f1e28c43d },
++  /*  156 */ (__ev64_u64__) { 0xebdf73f80454fd38 },
++  /*  157 */ (__ev64_u64__) { 0x2d697143d3e20c8c },
++  /*  158 */ (__ev64_u64__) { 0x410424940d7de1ea },
++  /*  159 */ (__ev64_u64__) { 0x1f617730910de343 },
++  /*  160 */ (__ev64_u64__) { 0xd680dd9677e5877c },
++  /*  161 */ (__ev64_u64__) { 0xfa964f301c2a76f7 },
++  /*  162 */ (__ev64_u64__) { 0xb8ec455b40998a75 },
++  /*  163 */ (__ev64_u64__) { 0xdf39de6e83a4c848 },
++  /*  164 */ (__ev64_u64__) { 0x20a2a98c05fa626e },
++  /*  165 */ (__ev64_u64__) { 0x88eb1e9d5795866e },
++  /*  166 */ (__ev64_u64__) { 0xb2c39302212e7960 },
++  /*  167 */ (__ev64_u64__) { 0xb26a9837beb74e63 },
++  /*  168 */ (__ev64_u64__) { 0x01af0716aceabb0d },
++  /*  169 */ (__ev64_u64__) { 0xf4a6ae7dbe6f977d },
++  /*  170 */ (__ev64_u64__) { 0x6a264a578ff95770 },
++  /*  171 */ (__ev64_u64__) { 0x0b74f843e99df86a },
++  /*  172 */ (__ev64_u64__) { 0x97bf1a9d7850e587 },
++  /*  173 */ (__ev64_u64__) { 0x9d04d45da20c6f6f },
++  /*  174 */ (__ev64_u64__) { 0x35992c436c654e76 },
++  /*  175 */ (__ev64_u64__) { 0x3b0b09f7995f2b7b },
++  /*  176 */ (__ev64_u64__) { 0x2dbd48bb96edf825 },
++  /*  177 */ (__ev64_u64__) { 0xffa935685068d18f },
++  /*  178 */ (__ev64_u64__) { 0x43d5a52d88a9b949 },
++  /*  179 */ (__ev64_u64__) { 0x1aadde32905525ae },
++  /*  180 */ (__ev64_u64__) { 0x72feb99f3d657381 },
++  /*  181 */ (__ev64_u64__) { 0x4b97171f1afbf9f5 },
++  /*  182 */ (__ev64_u64__) { 0x750d71ef35e5e2f5 },
++  /*  183 */ (__ev64_u64__) { 0x59854afee6706111 },
++  /*  184 */ (__ev64_u64__) { 0x63df663fa0e4ddbe },
++  /*  185 */ (__ev64_u64__) { 0xa98986226e861e58 },
++  /*  186 */ (__ev64_u64__) { 0x0fe7665ece643137 },
++  /*  187 */ (__ev64_u64__) { 0x502710babb536f6a },
++  /*  188 */ (__ev64_u64__) { 0xb1c363612a3ab081 },
++  /*  189 */ (__ev64_u64__) { 0x0c36a0c2585ae60b },
++  /*  190 */ (__ev64_u64__) { 0xa6551959e7e67213 },
++  /*  191 */ (__ev64_u64__) { 0xa750f6a511b92a26 },
++  /*  192 */ (__ev64_u64__) { 0x6f5a1b42a4132712 },
++  /*  193 */ (__ev64_u64__) { 0x26590711d6303386 },
++  /*  194 */ (__ev64_u64__) { 0xcbc86534acf1668c },
++  /*  195 */ (__ev64_u64__) { 0x7bb2bcc155b25259 },
++  /*  196 */ (__ev64_u64__) { 0x6b4b46f52c1d0794 },
++  /*  197 */ (__ev64_u64__) { 0xe8bd01eb474b3b3e },
++  /*  198 */ (__ev64_u64__) { 0xad0208a0ed5adb38 },
++  /*  199 */ (__ev64_u64__) { 0x5416c3726531ee84 },
++  /*  200 */ (__ev64_u64__) { 0x29979cae311cbc08 },
++  /*  201 */ (__ev64_u64__) { 0xce0a0d50e4807515 },
++  /*  202 */ (__ev64_u64__) { 0x64ad508e9179d950 },
++  /*  203 */ (__ev64_u64__) { 0xd100b5e9f851e18a },
++  /*  204 */ (__ev64_u64__) { 0xf1aee99cde253eed },
++  /*  205 */ (__ev64_u64__) { 0x23825f3703e8118b },
++  /*  206 */ (__ev64_u64__) { 0x210e5953266c4511 },
++  /*  207 */ (__ev64_u64__) { 0xadd4a75b5f788fcd },
++  /*  208 */ (__ev64_u64__) { 0x53b71140dbfb1212 },
++  /*  209 */ (__ev64_u64__) { 0x313975c872d9f683 },
++  /*  210 */ (__ev64_u64__) { 0x4db7e3533c3fdc6e },
++  /*  211 */ (__ev64_u64__) { 0x132fc1bcaefb3fa2 },
++  /*  212 */ (__ev64_u64__) { 0xa8429911e32a2809 },
++  /*  213 */ (__ev64_u64__) { 0x938588e3b29570d8 },
++  /*  214 */ (__ev64_u64__) { 0x25c3c583a461871e },
++  /*  215 */ (__ev64_u64__) { 0xf7767e0455169e12 },
++  /*  216 */ (__ev64_u64__) { 0xb5d1dafdd31b283d },
++  /*  217 */ (__ev64_u64__) { 0xe11078281ca196ca },
++  /*  218 */ (__ev64_u64__) { 0xcb90970004662541 },
++  /*  219 */ (__ev64_u64__) { 0xbb7c3d091fef0c9e },
++  /*  220 */ (__ev64_u64__) { 0xcae22aeaa179413e },
++  /*  221 */ (__ev64_u64__) { 0x4a9f9f9026314fca },
++  /*  222 */ (__ev64_u64__) { 0x4dce41794c0b3471 },
++  /*  223 */ (__ev64_u64__) { 0xc16e6c9b2313c9ec },
++  /*  224 */ (__ev64_u64__) { 0xf8ec2004843fe572 },
++  /*  225 */ (__ev64_u64__) { 0xd310c2be12368926 },
++  /*  226 */ (__ev64_u64__) { 0x71e6e4c7263de0e3 },
++  /*  227 */ (__ev64_u64__) { 0xf63d3f2e7c197675 },
++  /*  228 */ (__ev64_u64__) { 0xcc2ac790757cf012 },
++  /*  229 */ (__ev64_u64__) { 0x56773cf182a0ebfa },
++  /*  230 */ (__ev64_u64__) { 0x9633a75432db83f8 },
++  /*  231 */ (__ev64_u64__) { 0xee5bdcb3ed9aa295 },
++  /*  232 */ (__ev64_u64__) { 0x3abc04b412fdb353 },
++  /*  233 */ (__ev64_u64__) { 0xf1df9d3bce3919da },
++  /*  234 */ (__ev64_u64__) { 0xbff1bd939e3a65f4 },
++  /*  235 */ (__ev64_u64__) { 0x85fa26f643d51aec },
++  /*  236 */ (__ev64_u64__) { 0x0e10e6322274d084 },
++  /*  237 */ (__ev64_u64__) { 0x04cef4595e8d87c1 },
++  /*  238 */ (__ev64_u64__) { 0xfd0827b19b380f77 },
++  /*  239 */ (__ev64_u64__) { 0xcb77c12621583b6d },
++  /*  240 */ (__ev64_u64__) { 0x1b11694979938762 },
++  /*  241 */ (__ev64_u64__) { 0x5d5753b2268aeb28 },
++  /*  242 */ (__ev64_u64__) { 0x4ca8cfb3a8742346 },
++  /*  243 */ (__ev64_u64__) { 0xba209aa7928e871b },
++  /*  244 */ (__ev64_u64__) { 0x8048e3446ae7129a },
++  /*  245 */ (__ev64_u64__) { 0xe0acddd4259904a4 },
++  /*  246 */ (__ev64_u64__) { 0xa765193de8b40666 },
++  /*  247 */ (__ev64_u64__) { 0x966ffe1ef369eef1 },
++  /*  248 */ (__ev64_u64__) { 0xb54a4ef2f138d14e },
++  /*  249 */ (__ev64_u64__) { 0x5607ea4370206123 },
++  /*  250 */ (__ev64_u64__) { 0x80f5aa0c10e76061 },
++  /*  251 */ (__ev64_u64__) { 0x3f8ed2485d9445f2 },
++  /*  252 */ (__ev64_u64__) { 0x105adc8baa20c31b },
++  /*  253 */ (__ev64_u64__) { 0x9dacffcdf71cbe81 },
++  /*  254 */ (__ev64_u64__) { 0x6334adfbc6b8a4c9 },
++  /*  255 */ (__ev64_u64__) { 0xc16e5203fc9fec24 },
++
++};
++
++__ev64_u64__ rD1u64[NELTS(rA1u64)];
++
++const __ev64_s64__ rA1s64[] = {
++
++  /*    0 */ (__ev64_s64__) { 0xa2332e0b55d30225 },
++  /*    1 */ (__ev64_s64__) { 0x3cd7b9f95fb81eae },
++  /*    2 */ (__ev64_s64__) { 0xe1306dafcc4b022a },
++  /*    3 */ (__ev64_s64__) { 0xe4f970f2dfb59c9e },
++  /*    4 */ (__ev64_s64__) { 0xed14190a524cfe8d },
++  /*    5 */ (__ev64_s64__) { 0xc1b8fb951b55e42e },
++  /*    6 */ (__ev64_s64__) { 0x9cf255a6ab76a1c2 },
++  /*    7 */ (__ev64_s64__) { 0x5ee9c7e58fed83e9 },
++  /*    8 */ (__ev64_s64__) { 0x4124080b2a894e45 },
++  /*    9 */ (__ev64_s64__) { 0xdbce3a63fd722b6f },
++  /*   10 */ (__ev64_s64__) { 0xc3ea1c03234c920b },
++  /*   11 */ (__ev64_s64__) { 0x90135bb659e0a305 },
++  /*   12 */ (__ev64_s64__) { 0xe127d609b996255f },
++  /*   13 */ (__ev64_s64__) { 0x4c0b32780e89ae25 },
++  /*   14 */ (__ev64_s64__) { 0xa64fb6dd6f3740a5 },
++  /*   15 */ (__ev64_s64__) { 0x694aeb5ba7962810 },
++  /*   16 */ (__ev64_s64__) { 0x55da3cb659d194a0 },
++  /*   17 */ (__ev64_s64__) { 0x919afb8292d528ba },
++  /*   18 */ (__ev64_s64__) { 0x2272ee1d41681f52 },
++  /*   19 */ (__ev64_s64__) { 0x598d464cd8b21d0f },
++  /*   20 */ (__ev64_s64__) { 0x9322080850d3a1d5 },
++  /*   21 */ (__ev64_s64__) { 0xa87a91acf4262f85 },
++  /*   22 */ (__ev64_s64__) { 0x29e43dcdf7d2e40e },
++  /*   23 */ (__ev64_s64__) { 0x871a22bd06923e7a },
++  /*   24 */ (__ev64_s64__) { 0x4b1ff6d7b1ea6bb9 },
++  /*   25 */ (__ev64_s64__) { 0x71f108cbbb48bc74 },
++  /*   26 */ (__ev64_s64__) { 0x6e855006707b5160 },
++  /*   27 */ (__ev64_s64__) { 0x7b6adc422d5858c1 },
++  /*   28 */ (__ev64_s64__) { 0x5fbbcec48de220e8 },
++  /*   29 */ (__ev64_s64__) { 0x0588a323f219be28 },
++  /*   30 */ (__ev64_s64__) { 0x3c78967f749cd81f },
++  /*   31 */ (__ev64_s64__) { 0xd034b8bb31bfff9c },
++  /*   32 */ (__ev64_s64__) { 0xaf323069ff0c5482 },
++  /*   33 */ (__ev64_s64__) { 0xfc7cc556e0a50bf0 },
++  /*   34 */ (__ev64_s64__) { 0x4faa2a0620c6c9c7 },
++  /*   35 */ (__ev64_s64__) { 0xbcaf70ea244bd0f7 },
++  /*   36 */ (__ev64_s64__) { 0xf43a24970aa96b21 },
++  /*   37 */ (__ev64_s64__) { 0xb4747f6e9faf8a52 },
++  /*   38 */ (__ev64_s64__) { 0xaeafc95e4848b02a },
++  /*   39 */ (__ev64_s64__) { 0x6146958779348423 },
++  /*   40 */ (__ev64_s64__) { 0x539b4b169c97d645 },
++  /*   41 */ (__ev64_s64__) { 0x1ce28dcf98a8e8cc },
++  /*   42 */ (__ev64_s64__) { 0x5fbbb32483bd5134 },
++  /*   43 */ (__ev64_s64__) { 0x3c8a4556d2ca41cf },
++  /*   44 */ (__ev64_s64__) { 0x610c90da00beee54 },
++  /*   45 */ (__ev64_s64__) { 0xc857f6a12bd6c549 },
++  /*   46 */ (__ev64_s64__) { 0x7fb6e668780cba4e },
++  /*   47 */ (__ev64_s64__) { 0x6b29b5255c19984d },
++  /*   48 */ (__ev64_s64__) { 0x6aee73e9c18435f3 },
++  /*   49 */ (__ev64_s64__) { 0xf2daca16d0992b2d },
++  /*   50 */ (__ev64_s64__) { 0x3ce338f868f0587c },
++  /*   51 */ (__ev64_s64__) { 0xc6c9775971043486 },
++  /*   52 */ (__ev64_s64__) { 0x31002df8b6f3402c },
++  /*   53 */ (__ev64_s64__) { 0x69c3225d768f83f1 },
++  /*   54 */ (__ev64_s64__) { 0x8a8e8e67ed578e4a },
++  /*   55 */ (__ev64_s64__) { 0x538ec403642467bc },
++  /*   56 */ (__ev64_s64__) { 0x9af28191eec64d2c },
++  /*   57 */ (__ev64_s64__) { 0xd7feb44317c5b51c },
++  /*   58 */ (__ev64_s64__) { 0x38d86108b5ea346a },
++  /*   59 */ (__ev64_s64__) { 0x5096058604079dfe },
++  /*   60 */ (__ev64_s64__) { 0x36629551b5540f3f },
++  /*   61 */ (__ev64_s64__) { 0xdf25c9c8c8ca46f2 },
++  /*   62 */ (__ev64_s64__) { 0x0430bf23cfd7b5b1 },
++  /*   63 */ (__ev64_s64__) { 0xeaac39fbdff1af03 },
++  /*   64 */ (__ev64_s64__) { 0x20ec6a1309e42012 },
++  /*   65 */ (__ev64_s64__) { 0xcd0ffc07bce46ca0 },
++  /*   66 */ (__ev64_s64__) { 0xcdcfbe0ba3f6ee2d },
++  /*   67 */ (__ev64_s64__) { 0xe8eacdf95c6fe64b },
++  /*   68 */ (__ev64_s64__) { 0x0419b4157ff3ae1c },
++  /*   69 */ (__ev64_s64__) { 0x7de5b556dfd76128 },
++  /*   70 */ (__ev64_s64__) { 0xa5e44e9ace742ed0 },
++  /*   71 */ (__ev64_s64__) { 0x781c29cce7691bca },
++  /*   72 */ (__ev64_s64__) { 0x6ae26b58be515f7a },
++  /*   73 */ (__ev64_s64__) { 0x931050ee2b6224bd },
++  /*   74 */ (__ev64_s64__) { 0xa76fa80354111299 },
++  /*   75 */ (__ev64_s64__) { 0x9a50c9974b5493d6 },
++  /*   76 */ (__ev64_s64__) { 0xf5126e3b75065917 },
++  /*   77 */ (__ev64_s64__) { 0xadc332fb06fe8139 },
++  /*   78 */ (__ev64_s64__) { 0x1df2b0232875b594 },
++  /*   79 */ (__ev64_s64__) { 0x6fe034e6b1d8502e },
++  /*   80 */ (__ev64_s64__) { 0x32776b1a1322e35d },
++  /*   81 */ (__ev64_s64__) { 0xbffa83d4bbd96177 },
++  /*   82 */ (__ev64_s64__) { 0x73c2f7a0dc290255 },
++  /*   83 */ (__ev64_s64__) { 0x06d4fc597c7b56b3 },
++  /*   84 */ (__ev64_s64__) { 0x25b06e8eaaa7a00f },
++  /*   85 */ (__ev64_s64__) { 0xd23bef7cda747a23 },
++  /*   86 */ (__ev64_s64__) { 0xf837aea51e1c1eaa },
++  /*   87 */ (__ev64_s64__) { 0x8a9928201bdbaa47 },
++  /*   88 */ (__ev64_s64__) { 0x721bf453897ba943 },
++  /*   89 */ (__ev64_s64__) { 0x50fda49d8716685a },
++  /*   90 */ (__ev64_s64__) { 0xb90c01b482b9fa3f },
++  /*   91 */ (__ev64_s64__) { 0x0a7f6cf05275abc4 },
++  /*   92 */ (__ev64_s64__) { 0x91a02307cf135c9b },
++  /*   93 */ (__ev64_s64__) { 0x26fbb291c57302dc },
++  /*   94 */ (__ev64_s64__) { 0x83672615572fed6b },
++  /*   95 */ (__ev64_s64__) { 0xd675694168c23ac3 },
++  /*   96 */ (__ev64_s64__) { 0xb3853e24e187a3f3 },
++  /*   97 */ (__ev64_s64__) { 0xf4cf5f78dd9fb4df },
++  /*   98 */ (__ev64_s64__) { 0xc62eef679e81a450 },
++  /*   99 */ (__ev64_s64__) { 0x89aee81332e828d3 },
++  /*  100 */ (__ev64_s64__) { 0x6ec1ffb8dbad5dcc },
++  /*  101 */ (__ev64_s64__) { 0x620690b9a5b9c0f1 },
++  /*  102 */ (__ev64_s64__) { 0x9492902de72e9f5e },
++  /*  103 */ (__ev64_s64__) { 0x04d4bfb07154038c },
++  /*  104 */ (__ev64_s64__) { 0x609d74aaa83cd845 },
++  /*  105 */ (__ev64_s64__) { 0x60ef69ebb9c1348c },
++  /*  106 */ (__ev64_s64__) { 0xa7431a49c11489af },
++  /*  107 */ (__ev64_s64__) { 0xe8bce12bc793e424 },
++  /*  108 */ (__ev64_s64__) { 0xe1bb90e81e898eba },
++  /*  109 */ (__ev64_s64__) { 0x4d924262bf409b53 },
++  /*  110 */ (__ev64_s64__) { 0x226f97ec4e92743a },
++  /*  111 */ (__ev64_s64__) { 0x50979c8a6c205a37 },
++  /*  112 */ (__ev64_s64__) { 0xcababef4fcc7da95 },
++  /*  113 */ (__ev64_s64__) { 0x62054ba3464737cc },
++  /*  114 */ (__ev64_s64__) { 0x533a32bbc596e0e7 },
++  /*  115 */ (__ev64_s64__) { 0x5c7926a925b28137 },
++  /*  116 */ (__ev64_s64__) { 0xbbaeedf3be4e663f },
++  /*  117 */ (__ev64_s64__) { 0x831939a808bfeba9 },
++  /*  118 */ (__ev64_s64__) { 0x73be39752e35e14f },
++  /*  119 */ (__ev64_s64__) { 0xd37269e6a6e7518e },
++  /*  120 */ (__ev64_s64__) { 0xa6949a48278b04dc },
++  /*  121 */ (__ev64_s64__) { 0xf4a068895a2f45a9 },
++  /*  122 */ (__ev64_s64__) { 0x44478dc73b73b999 },
++  /*  123 */ (__ev64_s64__) { 0xaaf7a425496f5f0c },
++  /*  124 */ (__ev64_s64__) { 0x2aae480490340ad1 },
++  /*  125 */ (__ev64_s64__) { 0xfb147105245d4756 },
++  /*  126 */ (__ev64_s64__) { 0x363955d2207be5f5 },
++  /*  127 */ (__ev64_s64__) { 0x8f328568f227fc9c },
++  /*  128 */ (__ev64_s64__) { 0x0aa8f7540371301e },
++  /*  129 */ (__ev64_s64__) { 0x4be8a10b97b2e025 },
++  /*  130 */ (__ev64_s64__) { 0xd01efee32b69a655 },
++  /*  131 */ (__ev64_s64__) { 0x6523c45bf100e647 },
++  /*  132 */ (__ev64_s64__) { 0x0d163b0f365eaa78 },
++  /*  133 */ (__ev64_s64__) { 0x562411bcd82dba00 },
++  /*  134 */ (__ev64_s64__) { 0x0705b66b73a618d3 },
++  /*  135 */ (__ev64_s64__) { 0x93e6a9aa2501f38b },
++  /*  136 */ (__ev64_s64__) { 0x1e57324f8459c91d },
++  /*  137 */ (__ev64_s64__) { 0x244c388d53fdf820 },
++  /*  138 */ (__ev64_s64__) { 0x4cd1412f115a4d36 },
++  /*  139 */ (__ev64_s64__) { 0x73b60cf2889c8b2f },
++  /*  140 */ (__ev64_s64__) { 0x59ef29c8af923371 },
++  /*  141 */ (__ev64_s64__) { 0x377892011ca63971 },
++  /*  142 */ (__ev64_s64__) { 0x98b3f4e170130607 },
++  /*  143 */ (__ev64_s64__) { 0xa2c10683b887358a },
++  /*  144 */ (__ev64_s64__) { 0x58777a4ec0e9ee3c },
++  /*  145 */ (__ev64_s64__) { 0x59570b8631a0be7d },
++  /*  146 */ (__ev64_s64__) { 0x3a000e4bdf8718f9 },
++  /*  147 */ (__ev64_s64__) { 0x038a5a2cbef6d91d },
++  /*  148 */ (__ev64_s64__) { 0x395a5d23239f19c9 },
++  /*  149 */ (__ev64_s64__) { 0x7dae3ce33ac6a2cd },
++  /*  150 */ (__ev64_s64__) { 0xceac32a347bfbdb5 },
++  /*  151 */ (__ev64_s64__) { 0xc96a184f0e34278d },
++  /*  152 */ (__ev64_s64__) { 0xa0e5837ed4056714 },
++  /*  153 */ (__ev64_s64__) { 0xbc408380afca77c0 },
++  /*  154 */ (__ev64_s64__) { 0x739130daf4bd0029 },
++  /*  155 */ (__ev64_s64__) { 0x4b94a9cede38e1ee },
++  /*  156 */ (__ev64_s64__) { 0x2970b4daa80f0a56 },
++  /*  157 */ (__ev64_s64__) { 0x2a79885295bd6c2b },
++  /*  158 */ (__ev64_s64__) { 0x19f2985534abc43d },
++  /*  159 */ (__ev64_s64__) { 0x195f9258be55c1c1 },
++  /*  160 */ (__ev64_s64__) { 0xca50e127229cf92f },
++  /*  161 */ (__ev64_s64__) { 0x497043a56313e732 },
++  /*  162 */ (__ev64_s64__) { 0x85be9a9092452512 },
++  /*  163 */ (__ev64_s64__) { 0xc2db05e06e4fc91f },
++  /*  164 */ (__ev64_s64__) { 0xad815bb287695917 },
++  /*  165 */ (__ev64_s64__) { 0x4e1f5dbb21b6656f },
++  /*  166 */ (__ev64_s64__) { 0xe958734531510f65 },
++  /*  167 */ (__ev64_s64__) { 0x847fa06d1e443755 },
++  /*  168 */ (__ev64_s64__) { 0x25753c45e9f26988 },
++  /*  169 */ (__ev64_s64__) { 0xfd816db6c0983431 },
++  /*  170 */ (__ev64_s64__) { 0xb21e21eb955a2959 },
++  /*  171 */ (__ev64_s64__) { 0x207e5653f221113e },
++  /*  172 */ (__ev64_s64__) { 0x98e821fa189d9331 },
++  /*  173 */ (__ev64_s64__) { 0xc391ee1b1329d040 },
++  /*  174 */ (__ev64_s64__) { 0xa346e73651701970 },
++  /*  175 */ (__ev64_s64__) { 0x6e5781e1b3223206 },
++  /*  176 */ (__ev64_s64__) { 0x4059ce4cce8c0b72 },
++  /*  177 */ (__ev64_s64__) { 0x46c184c72e443a72 },
++  /*  178 */ (__ev64_s64__) { 0xbd192642b48655e6 },
++  /*  179 */ (__ev64_s64__) { 0x36faf3e871ee80e8 },
++  /*  180 */ (__ev64_s64__) { 0x8c31062955915a77 },
++  /*  181 */ (__ev64_s64__) { 0x1b56e686b226aeca },
++  /*  182 */ (__ev64_s64__) { 0x1454447946870cc9 },
++  /*  183 */ (__ev64_s64__) { 0xe176e75eb74f5e76 },
++  /*  184 */ (__ev64_s64__) { 0x89130f080a6f48d5 },
++  /*  185 */ (__ev64_s64__) { 0x63b3962e5e43176c },
++  /*  186 */ (__ev64_s64__) { 0x0f21a7c8461d8576 },
++  /*  187 */ (__ev64_s64__) { 0x29df18ab128280dd },
++  /*  188 */ (__ev64_s64__) { 0xfe89be175b650b37 },
++  /*  189 */ (__ev64_s64__) { 0x2b986137ef241384 },
++  /*  190 */ (__ev64_s64__) { 0xe7d92a6affabe113 },
++  /*  191 */ (__ev64_s64__) { 0x465260bfe5b532c9 },
++  /*  192 */ (__ev64_s64__) { 0x530a0787797f5ef1 },
++  /*  193 */ (__ev64_s64__) { 0x70cb02bd93fbe10a },
++  /*  194 */ (__ev64_s64__) { 0x73a2febe552d9cd9 },
++  /*  195 */ (__ev64_s64__) { 0x6e9035b300bbc91e },
++  /*  196 */ (__ev64_s64__) { 0x20ccc2b2a9deeee9 },
++  /*  197 */ (__ev64_s64__) { 0xf5246d3ae0520e52 },
++  /*  198 */ (__ev64_s64__) { 0xd5c92e0930cfaa5e },
++  /*  199 */ (__ev64_s64__) { 0x5b13bf908cb50046 },
++  /*  200 */ (__ev64_s64__) { 0x7b6b305b5adff285 },
++  /*  201 */ (__ev64_s64__) { 0xbca08be20c22fc2a },
++  /*  202 */ (__ev64_s64__) { 0xf9a208f4061f3b57 },
++  /*  203 */ (__ev64_s64__) { 0x237c64761d1ce310 },
++  /*  204 */ (__ev64_s64__) { 0x64c7b6ef8273b4ce },
++  /*  205 */ (__ev64_s64__) { 0x5de93162bcac6170 },
++  /*  206 */ (__ev64_s64__) { 0xc2d9ed1b4b8653b2 },
++  /*  207 */ (__ev64_s64__) { 0x572ed278f9197a4f },
++  /*  208 */ (__ev64_s64__) { 0x57537f4f10bfa9b2 },
++  /*  209 */ (__ev64_s64__) { 0x51733e1c1c22653c },
++  /*  210 */ (__ev64_s64__) { 0xe5f96def38593339 },
++  /*  211 */ (__ev64_s64__) { 0x996e9fd7212a09cb },
++  /*  212 */ (__ev64_s64__) { 0xad232dab9f2cd2e3 },
++  /*  213 */ (__ev64_s64__) { 0x64b4e50f913d0a51 },
++  /*  214 */ (__ev64_s64__) { 0xeecf952e28a3b4ad },
++  /*  215 */ (__ev64_s64__) { 0x2bdb5a13e693eed7 },
++  /*  216 */ (__ev64_s64__) { 0x2ac51afc45557bb2 },
++  /*  217 */ (__ev64_s64__) { 0x8f1ae7f2d38af2cf },
++  /*  218 */ (__ev64_s64__) { 0xbbae26161a2c18ad },
++  /*  219 */ (__ev64_s64__) { 0x8d4d1b397cffc81b },
++  /*  220 */ (__ev64_s64__) { 0xc92f466ddceb424b },
++  /*  221 */ (__ev64_s64__) { 0x1cd4ae4166cd0d73 },
++  /*  222 */ (__ev64_s64__) { 0x8ba19a8ed270d951 },
++  /*  223 */ (__ev64_s64__) { 0x7619022987528e46 },
++  /*  224 */ (__ev64_s64__) { 0x7e0d596f76f03008 },
++  /*  225 */ (__ev64_s64__) { 0x6e30d8e17a39e414 },
++  /*  226 */ (__ev64_s64__) { 0xef51bca4949dae2d },
++  /*  227 */ (__ev64_s64__) { 0x78743652808136ca },
++  /*  228 */ (__ev64_s64__) { 0x0a51258a47476758 },
++  /*  229 */ (__ev64_s64__) { 0x4ba293d0b36dda6b },
++  /*  230 */ (__ev64_s64__) { 0xf48604374c224711 },
++  /*  231 */ (__ev64_s64__) { 0x7b2961bb7c283d49 },
++  /*  232 */ (__ev64_s64__) { 0x6712a5802e804c0d },
++  /*  233 */ (__ev64_s64__) { 0x52209187370b7b65 },
++  /*  234 */ (__ev64_s64__) { 0xa33b185127527956 },
++  /*  235 */ (__ev64_s64__) { 0x202c58dbc64cb9c3 },
++  /*  236 */ (__ev64_s64__) { 0xafdd013b30ed058a },
++  /*  237 */ (__ev64_s64__) { 0x1172b9b9686d6a8d },
++  /*  238 */ (__ev64_s64__) { 0x75aabf0291993c44 },
++  /*  239 */ (__ev64_s64__) { 0x2ee565a675b56935 },
++  /*  240 */ (__ev64_s64__) { 0xdb1dfd1ab6863dc3 },
++  /*  241 */ (__ev64_s64__) { 0x1c0f2a5856f8dffe },
++  /*  242 */ (__ev64_s64__) { 0xf87a37341cd42f82 },
++  /*  243 */ (__ev64_s64__) { 0xe98ffde8e1bf4806 },
++  /*  244 */ (__ev64_s64__) { 0xed337143a4809742 },
++  /*  245 */ (__ev64_s64__) { 0xc5768f3030c0a09a },
++  /*  246 */ (__ev64_s64__) { 0x79509f9f58a05c7e },
++  /*  247 */ (__ev64_s64__) { 0xc808065014f5ff24 },
++  /*  248 */ (__ev64_s64__) { 0x07ff2e1bedbe9fc4 },
++  /*  249 */ (__ev64_s64__) { 0x16e36ffefc7526d0 },
++  /*  250 */ (__ev64_s64__) { 0x62df72fb2858c2e0 },
++  /*  251 */ (__ev64_s64__) { 0x6f9ace0ee0a1b59e },
++  /*  252 */ (__ev64_s64__) { 0xe878dba89507ac9b },
++  /*  253 */ (__ev64_s64__) { 0x6f087c5398779951 },
++  /*  254 */ (__ev64_s64__) { 0x83ca48452e101516 },
++  /*  255 */ (__ev64_s64__) { 0x82d0c5116529ab24 },
++
++};
++
++const __ev64_s64__ rB1s64[NELTS(rA1s64)] = {
++
++  /*    0 */ (__ev64_s64__) { 0x4f236a4febadab7f },
++  /*    1 */ (__ev64_s64__) { 0xc7695c6a837501d1 },
++  /*    2 */ (__ev64_s64__) { 0x453ca39626ceab9c },
++  /*    3 */ (__ev64_s64__) { 0xa5cf49add7d023a7 },
++  /*    4 */ (__ev64_s64__) { 0x14b555112f918421 },
++  /*    5 */ (__ev64_s64__) { 0x3836ebdaa90df442 },
++  /*    6 */ (__ev64_s64__) { 0x144e7fee71087886 },
++  /*    7 */ (__ev64_s64__) { 0x588c8b1646016ff2 },
++  /*    8 */ (__ev64_s64__) { 0xa0f37c9abbf401f2 },
++  /*    9 */ (__ev64_s64__) { 0x77589d1391b24394 },
++  /*   10 */ (__ev64_s64__) { 0xe9263a69001eaf55 },
++  /*   11 */ (__ev64_s64__) { 0x7021ea7636d282e2 },
++  /*   12 */ (__ev64_s64__) { 0xd09dc681086c6d46 },
++  /*   13 */ (__ev64_s64__) { 0x4f638601e69aad7a },
++  /*   14 */ (__ev64_s64__) { 0xe6fe6961829afbd7 },
++  /*   15 */ (__ev64_s64__) { 0x186b9d69c85eec19 },
++  /*   16 */ (__ev64_s64__) { 0x9fecee00d7f2f76e },
++  /*   17 */ (__ev64_s64__) { 0xcbca09921e8b1bec },
++  /*   18 */ (__ev64_s64__) { 0xf1b2efca7f45ff78 },
++  /*   19 */ (__ev64_s64__) { 0x72025fa5d942adb2 },
++  /*   20 */ (__ev64_s64__) { 0x758c454cae7b9f92 },
++  /*   21 */ (__ev64_s64__) { 0x619e7d72ca462bdc },
++  /*   22 */ (__ev64_s64__) { 0x42dc4914aa14c2ab },
++  /*   23 */ (__ev64_s64__) { 0x806aafc4aef40df8 },
++  /*   24 */ (__ev64_s64__) { 0xb714f12c5658c0a9 },
++  /*   25 */ (__ev64_s64__) { 0xe5a504efd90a61fb },
++  /*   26 */ (__ev64_s64__) { 0x421ad5dd738af132 },
++  /*   27 */ (__ev64_s64__) { 0xecf1ef453933d40f },
++  /*   28 */ (__ev64_s64__) { 0x837c340d5b3de360 },
++  /*   29 */ (__ev64_s64__) { 0x8d763e451b7996c8 },
++  /*   30 */ (__ev64_s64__) { 0xec84553b82b9dc55 },
++  /*   31 */ (__ev64_s64__) { 0x74e421c9a1e117f0 },
++  /*   32 */ (__ev64_s64__) { 0xc5044c88b894c062 },
++  /*   33 */ (__ev64_s64__) { 0x1df07ab083af5df3 },
++  /*   34 */ (__ev64_s64__) { 0x15639120088797c5 },
++  /*   35 */ (__ev64_s64__) { 0x69a613ac53608433 },
++  /*   36 */ (__ev64_s64__) { 0xb96a34570692feec },
++  /*   37 */ (__ev64_s64__) { 0x734192ca282d1349 },
++  /*   38 */ (__ev64_s64__) { 0xe73257883eec24a5 },
++  /*   39 */ (__ev64_s64__) { 0xba0e385516354948 },
++  /*   40 */ (__ev64_s64__) { 0xad4affd39562fd7e },
++  /*   41 */ (__ev64_s64__) { 0xf142bc7407fcbd4c },
++  /*   42 */ (__ev64_s64__) { 0x6c6cf69d139b425b },
++  /*   43 */ (__ev64_s64__) { 0x7a3aaaa8d46e298a },
++  /*   44 */ (__ev64_s64__) { 0xae20fd9cf98a4a8a },
++  /*   45 */ (__ev64_s64__) { 0xe78f59c1b3d0955f },
++  /*   46 */ (__ev64_s64__) { 0xe5fcfba65c280279 },
++  /*   47 */ (__ev64_s64__) { 0xa68df32d22a2b2e2 },
++  /*   48 */ (__ev64_s64__) { 0xc53b8d7fa077e086 },
++  /*   49 */ (__ev64_s64__) { 0xc4863f9b568a1ad3 },
++  /*   50 */ (__ev64_s64__) { 0xa558d9166cb7272a },
++  /*   51 */ (__ev64_s64__) { 0xdb05343df0f50853 },
++  /*   52 */ (__ev64_s64__) { 0x4ca307a8e53bac9b },
++  /*   53 */ (__ev64_s64__) { 0x0970a7c5422a764b },
++  /*   54 */ (__ev64_s64__) { 0xe7acda45d793d17e },
++  /*   55 */ (__ev64_s64__) { 0x897c8f79d4bdb9d1 },
++  /*   56 */ (__ev64_s64__) { 0x61cc4c619e98ba71 },
++  /*   57 */ (__ev64_s64__) { 0x3378adf385dab835 },
++  /*   58 */ (__ev64_s64__) { 0xc1d4db4220c9218c },
++  /*   59 */ (__ev64_s64__) { 0x8149c819e5ff3ae3 },
++  /*   60 */ (__ev64_s64__) { 0x68f07ed63a6b6cc2 },
++  /*   61 */ (__ev64_s64__) { 0x1a004a92c1899609 },
++  /*   62 */ (__ev64_s64__) { 0xbb818375508d0917 },
++  /*   63 */ (__ev64_s64__) { 0x6fd38c35119aecd4 },
++  /*   64 */ (__ev64_s64__) { 0x22b903948d2254a3 },
++  /*   65 */ (__ev64_s64__) { 0x83de55017b5be95e },
++  /*   66 */ (__ev64_s64__) { 0xdb02c7188f31e522 },
++  /*   67 */ (__ev64_s64__) { 0x29850fa9892280b8 },
++  /*   68 */ (__ev64_s64__) { 0x4cda8b1559375fdb },
++  /*   69 */ (__ev64_s64__) { 0x49f83566e7ff8539 },
++  /*   70 */ (__ev64_s64__) { 0xbfed049123392626 },
++  /*   71 */ (__ev64_s64__) { 0x5efccaa2e2734c3d },
++  /*   72 */ (__ev64_s64__) { 0x0ab7318391245f0b },
++  /*   73 */ (__ev64_s64__) { 0x7f2914ba77240761 },
++  /*   74 */ (__ev64_s64__) { 0x1683dd6aae4f8ec8 },
++  /*   75 */ (__ev64_s64__) { 0xa0edd0e47413899e },
++  /*   76 */ (__ev64_s64__) { 0xdbacb4dfbd6e8989 },
++  /*   77 */ (__ev64_s64__) { 0x388a76fe71d1bf6b },
++  /*   78 */ (__ev64_s64__) { 0x8f88606e6f8b94a4 },
++  /*   79 */ (__ev64_s64__) { 0xb09bab567ee29a05 },
++  /*   80 */ (__ev64_s64__) { 0xd6719745a5fecfdb },
++  /*   81 */ (__ev64_s64__) { 0x255641962a8b99fd },
++  /*   82 */ (__ev64_s64__) { 0x3f7b8a1e0b0e0204 },
++  /*   83 */ (__ev64_s64__) { 0xd9bb73a4de75f7cb },
++  /*   84 */ (__ev64_s64__) { 0xa64023b1fddfc06c },
++  /*   85 */ (__ev64_s64__) { 0x60bd199d48275327 },
++  /*   86 */ (__ev64_s64__) { 0x060f98cc811f6053 },
++  /*   87 */ (__ev64_s64__) { 0x824a04a6cc8d5a74 },
++  /*   88 */ (__ev64_s64__) { 0x04515059f625e286 },
++  /*   89 */ (__ev64_s64__) { 0x5496a76f7c2852d7 },
++  /*   90 */ (__ev64_s64__) { 0x5082c202cecbe290 },
++  /*   91 */ (__ev64_s64__) { 0x4a238ea2ad576c9b },
++  /*   92 */ (__ev64_s64__) { 0x2bcc80fdf0158a4a },
++  /*   93 */ (__ev64_s64__) { 0xfd0633ea8f4e8ca6 },
++  /*   94 */ (__ev64_s64__) { 0x55d3da769c681094 },
++  /*   95 */ (__ev64_s64__) { 0xa58b72b642eaf26d },
++  /*   96 */ (__ev64_s64__) { 0x5569d4899f355625 },
++  /*   97 */ (__ev64_s64__) { 0x104e25194a9b0092 },
++  /*   98 */ (__ev64_s64__) { 0x2f15dc35478ce914 },
++  /*   99 */ (__ev64_s64__) { 0x64e4e64a35861c70 },
++  /*  100 */ (__ev64_s64__) { 0x513b913f97aa83f2 },
++  /*  101 */ (__ev64_s64__) { 0x3de1365accfa2dc9 },
++  /*  102 */ (__ev64_s64__) { 0x2e79449b6d3e6307 },
++  /*  103 */ (__ev64_s64__) { 0xeeb8833ca0d440d5 },
++  /*  104 */ (__ev64_s64__) { 0xbe509f7328ae6052 },
++  /*  105 */ (__ev64_s64__) { 0x13325d1a243bd70e },
++  /*  106 */ (__ev64_s64__) { 0x5396773903514397 },
++  /*  107 */ (__ev64_s64__) { 0xd271f62f070ef23a },
++  /*  108 */ (__ev64_s64__) { 0x2f691a777963cf24 },
++  /*  109 */ (__ev64_s64__) { 0xd057d30391036dd6 },
++  /*  110 */ (__ev64_s64__) { 0x58f51d5be634a130 },
++  /*  111 */ (__ev64_s64__) { 0x19743637b1433401 },
++  /*  112 */ (__ev64_s64__) { 0x7e7ca716451f45c2 },
++  /*  113 */ (__ev64_s64__) { 0x7bfb5d192438d717 },
++  /*  114 */ (__ev64_s64__) { 0xbfe74c478b1f0934 },
++  /*  115 */ (__ev64_s64__) { 0x90dc58b7f27fe9a5 },
++  /*  116 */ (__ev64_s64__) { 0x295f31863b9bddd0 },
++  /*  117 */ (__ev64_s64__) { 0x09198518011c0a24 },
++  /*  118 */ (__ev64_s64__) { 0xc075ed1a97f1b004 },
++  /*  119 */ (__ev64_s64__) { 0x5e91243577f09354 },
++  /*  120 */ (__ev64_s64__) { 0x3cc710ef648e364d },
++  /*  121 */ (__ev64_s64__) { 0xfcdc1a7ff8f85292 },
++  /*  122 */ (__ev64_s64__) { 0xb040ee3732877029 },
++  /*  123 */ (__ev64_s64__) { 0x0fbda51342c5b720 },
++  /*  124 */ (__ev64_s64__) { 0x4ba0858744d5b851 },
++  /*  125 */ (__ev64_s64__) { 0x0d23e23b18d068e6 },
++  /*  126 */ (__ev64_s64__) { 0x7b43eb081b08f4b2 },
++  /*  127 */ (__ev64_s64__) { 0x0a5738faf542a84e },
++  /*  128 */ (__ev64_s64__) { 0x19cae67f0da2850d },
++  /*  129 */ (__ev64_s64__) { 0xf0cc70326a593504 },
++  /*  130 */ (__ev64_s64__) { 0x7dd1f88ba4590365 },
++  /*  131 */ (__ev64_s64__) { 0x33806577f5226dbf },
++  /*  132 */ (__ev64_s64__) { 0x494058453ec81d12 },
++  /*  133 */ (__ev64_s64__) { 0xb9d8c21a50baff69 },
++  /*  134 */ (__ev64_s64__) { 0x9d55a232a6e4a0e0 },
++  /*  135 */ (__ev64_s64__) { 0x6e3fe7a04272323f },
++  /*  136 */ (__ev64_s64__) { 0x2cf3424d423c9790 },
++  /*  137 */ (__ev64_s64__) { 0xbb1f84511b437bec },
++  /*  138 */ (__ev64_s64__) { 0x0f01c4ce6981cc9f },
++  /*  139 */ (__ev64_s64__) { 0x4160823bc9b40207 },
++  /*  140 */ (__ev64_s64__) { 0x2bea92f32efcea4c },
++  /*  141 */ (__ev64_s64__) { 0xeee040bac5933627 },
++  /*  142 */ (__ev64_s64__) { 0x9b45f8644b227c19 },
++  /*  143 */ (__ev64_s64__) { 0xc130d77d65a858a9 },
++  /*  144 */ (__ev64_s64__) { 0x0cfa20e59d096eef },
++  /*  145 */ (__ev64_s64__) { 0x06f6c484a735f15b },
++  /*  146 */ (__ev64_s64__) { 0xce380aa791eb332a },
++  /*  147 */ (__ev64_s64__) { 0x4d3f8de8e809b35f },
++  /*  148 */ (__ev64_s64__) { 0x587fd6c5cb0788bc },
++  /*  149 */ (__ev64_s64__) { 0xc024946a3172cfec },
++  /*  150 */ (__ev64_s64__) { 0xb81cc7e745aa78f1 },
++  /*  151 */ (__ev64_s64__) { 0x4209e57de3fe8222 },
++  /*  152 */ (__ev64_s64__) { 0xe35fb2001e1f653c },
++  /*  153 */ (__ev64_s64__) { 0x90e5eaf8855e0bd7 },
++  /*  154 */ (__ev64_s64__) { 0x78b95f008e83fff9 },
++  /*  155 */ (__ev64_s64__) { 0x2aa6d00a83cd42fb },
++  /*  156 */ (__ev64_s64__) { 0xb6a2adb04d4dfe96 },
++  /*  157 */ (__ev64_s64__) { 0x09107dd260750f88 },
++  /*  158 */ (__ev64_s64__) { 0x9c273cb24665994f },
++  /*  159 */ (__ev64_s64__) { 0x191476d4c5823167 },
++  /*  160 */ (__ev64_s64__) { 0x7a284c9bb816d0ca },
++  /*  161 */ (__ev64_s64__) { 0xa8adb218b408b6a3 },
++  /*  162 */ (__ev64_s64__) { 0x4990ade1550da2d4 },
++  /*  163 */ (__ev64_s64__) { 0x3f53721772a4adb2 },
++  /*  164 */ (__ev64_s64__) { 0x14a7cac3e76b8340 },
++  /*  165 */ (__ev64_s64__) { 0xf64e3bb2362c8862 },
++  /*  166 */ (__ev64_s64__) { 0x1e07f16f6e15978b },
++  /*  167 */ (__ev64_s64__) { 0xc164525c5dcb3e33 },
++  /*  168 */ (__ev64_s64__) { 0xaecd947a6f0f5acf },
++  /*  169 */ (__ev64_s64__) { 0x9420b4de4ab695ef },
++  /*  170 */ (__ev64_s64__) { 0x8c7a0fc767e40f5b },
++  /*  171 */ (__ev64_s64__) { 0x8ec983b56146982b },
++  /*  172 */ (__ev64_s64__) { 0xb92032f4811bbb21 },
++  /*  173 */ (__ev64_s64__) { 0xe563ff6c40bbef53 },
++  /*  174 */ (__ev64_s64__) { 0x41fd798e224186d5 },
++  /*  175 */ (__ev64_s64__) { 0x57129396220e7e3d },
++  /*  176 */ (__ev64_s64__) { 0x5a7b91ebcab5e2e7 },
++  /*  177 */ (__ev64_s64__) { 0x4e5ded453443150e },
++  /*  178 */ (__ev64_s64__) { 0x6ed37dd5e1a27c59 },
++  /*  179 */ (__ev64_s64__) { 0xc743411f392b3514 },
++  /*  180 */ (__ev64_s64__) { 0x7cc55ffb79eeb832 },
++  /*  181 */ (__ev64_s64__) { 0x4e2e3b0a94d6967f },
++  /*  182 */ (__ev64_s64__) { 0xbdba7a559d23c930 },
++  /*  183 */ (__ev64_s64__) { 0xc96ddbfe42c66472 },
++  /*  184 */ (__ev64_s64__) { 0x37163788da4b944d },
++  /*  185 */ (__ev64_s64__) { 0xc6507f31e917cd47 },
++  /*  186 */ (__ev64_s64__) { 0x9c84f657e11889f6 },
++  /*  187 */ (__ev64_s64__) { 0xbc1263736f6f9797 },
++  /*  188 */ (__ev64_s64__) { 0xb1564324114e0076 },
++  /*  189 */ (__ev64_s64__) { 0xc81813d4dfca7d86 },
++  /*  190 */ (__ev64_s64__) { 0x154843c3fe45ff99 },
++  /*  191 */ (__ev64_s64__) { 0xdca744905834290b },
++  /*  192 */ (__ev64_s64__) { 0xfeea20cae7288bd2 },
++  /*  193 */ (__ev64_s64__) { 0xff1828cb8ea81b9d },
++  /*  194 */ (__ev64_s64__) { 0x2df73b05a72950b7 },
++  /*  195 */ (__ev64_s64__) { 0x2b3edba45b529b5e },
++  /*  196 */ (__ev64_s64__) { 0x9b03a76b6611fe0c },
++  /*  197 */ (__ev64_s64__) { 0xf63858fe9f675e2b },
++  /*  198 */ (__ev64_s64__) { 0x148222a4fab16c5e },
++  /*  199 */ (__ev64_s64__) { 0xf0107626883a6779 },
++  /*  200 */ (__ev64_s64__) { 0x6b2f16175f705c01 },
++  /*  201 */ (__ev64_s64__) { 0x73fe1d1d2c027504 },
++  /*  202 */ (__ev64_s64__) { 0x8c32ee1d465d2b89 },
++  /*  203 */ (__ev64_s64__) { 0xb865eb03732eafa4 },
++  /*  204 */ (__ev64_s64__) { 0x74787fccbe952512 },
++  /*  205 */ (__ev64_s64__) { 0x8ef2953a4bdeeaf4 },
++  /*  206 */ (__ev64_s64__) { 0xafaaa48e210b1d66 },
++  /*  207 */ (__ev64_s64__) { 0x6a98d6257e3f1748 },
++  /*  208 */ (__ev64_s64__) { 0x5f97f785a489f496 },
++  /*  209 */ (__ev64_s64__) { 0x7191ed081d7b12c6 },
++  /*  210 */ (__ev64_s64__) { 0xe8dd9fd239cf34e2 },
++  /*  211 */ (__ev64_s64__) { 0xe21fde320c4bcf6a },
++  /*  212 */ (__ev64_s64__) { 0xdf3540c676e52bb1 },
++  /*  213 */ (__ev64_s64__) { 0xb15670c7da5eaee3 },
++  /*  214 */ (__ev64_s64__) { 0xd73b3236c614a2e3 },
++  /*  215 */ (__ev64_s64__) { 0x55a87a248d28d6a0 },
++  /*  216 */ (__ev64_s64__) { 0x2b57980a837b1f82 },
++  /*  217 */ (__ev64_s64__) { 0x25305acd6e7cfc6c },
++  /*  218 */ (__ev64_s64__) { 0x5e67ebcf9c38ddc3 },
++  /*  219 */ (__ev64_s64__) { 0xd1c1fbba2fa53c4c },
++  /*  220 */ (__ev64_s64__) { 0xadaf6d6cd45d9dac },
++  /*  221 */ (__ev64_s64__) { 0x31eaf430b72c3a05 },
++  /*  222 */ (__ev64_s64__) { 0x32913175d1a4f05d },
++  /*  223 */ (__ev64_s64__) { 0x229d202cf5742cf0 },
++  /*  224 */ (__ev64_s64__) { 0x4e182a7605f651c2 },
++  /*  225 */ (__ev64_s64__) { 0x620702a32c54461e },
++  /*  226 */ (__ev64_s64__) { 0xe82040ce49de708e },
++  /*  227 */ (__ev64_s64__) { 0x36ace9f45f3cafb3 },
++  /*  228 */ (__ev64_s64__) { 0x42e99c7493db5d93 },
++  /*  229 */ (__ev64_s64__) { 0x7840abe8ca519b47 },
++  /*  230 */ (__ev64_s64__) { 0xdbbb756db0ca1bd0 },
++  /*  231 */ (__ev64_s64__) { 0x121e2988e27936f7 },
++  /*  232 */ (__ev64_s64__) { 0x12c4faf979a3294e },
++  /*  233 */ (__ev64_s64__) { 0x4da16caf6f38a6bb },
++  /*  234 */ (__ev64_s64__) { 0x46f5fbdf193d6362 },
++  /*  235 */ (__ev64_s64__) { 0x0306d6d0a281599f },
++  /*  236 */ (__ev64_s64__) { 0x0af0e1e41d22a09d },
++  /*  237 */ (__ev64_s64__) { 0x9dc4df644e9e8777 },
++  /*  238 */ (__ev64_s64__) { 0x5972c4cf6c45c8e2 },
++  /*  239 */ (__ev64_s64__) { 0xb921de7fcde50eb6 },
++  /*  240 */ (__ev64_s64__) { 0xea9fb39c60c2cb18 },
++  /*  241 */ (__ev64_s64__) { 0xee1852e0fc247b60 },
++  /*  242 */ (__ev64_s64__) { 0x4c0166310c8cd901 },
++  /*  243 */ (__ev64_s64__) { 0x43463bb807fb8113 },
++  /*  244 */ (__ev64_s64__) { 0x641d412db8b63474 },
++  /*  245 */ (__ev64_s64__) { 0x442010ead3b5333e },
++  /*  246 */ (__ev64_s64__) { 0xd167f3ef7bafbe42 },
++  /*  247 */ (__ev64_s64__) { 0x1a3cfc2c3c7b2e01 },
++  /*  248 */ (__ev64_s64__) { 0x053bada0462b19f1 },
++  /*  249 */ (__ev64_s64__) { 0x478c2d0e30ba2675 },
++  /*  250 */ (__ev64_s64__) { 0x09c5a6940b832ea6 },
++  /*  251 */ (__ev64_s64__) { 0x32a40b59a95a607d },
++  /*  252 */ (__ev64_s64__) { 0x97f1cc5e0ac6b23d },
++  /*  253 */ (__ev64_s64__) { 0x199754cb7b98a557 },
++  /*  254 */ (__ev64_s64__) { 0x09b5c14664ac5979 },
++  /*  255 */ (__ev64_s64__) { 0xcd1d46ab1431f363 },
++
++};
++
++__ev64_s64__ rD1s64[NELTS(rA1s64)];
++
++void u16_dump (__ev64_u16__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_u16__) { 0x%hx, 0x%hx, 0x%hx, 0x%hx },\n", a[i][0], a[i][1], a[i][2], a[i][3]);
++
++}
++
++void s16_dump (__ev64_s16__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_s16__) { 0x%hx, 0x%hx, 0x%hx, 0x%hx },\n", a[i][0], a[i][1], a[i][2], a[i][3]);
++
++}
++
++void u32_dump (__ev64_u32__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", a[i][0], a[i][1]);
++
++}
++
++void s32_dump (__ev64_s32__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", a[i][0], a[i][1]);
++
++}
++
++void u64_dump (__ev64_u64__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_u64__) { 0x%llx },\n", a[i][0]);
++
++}
++
++void s64_dump (__ev64_s64__ a[], unsigned nelts)
++{
++  int i;
++
++  for (i = 0; i < nelts; i++)
++    printf ("  (__ev64_s64__) { 0x%llx },\n", a[i][0]);
++
++}
++#endif
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 07fbb6a..e6029ca 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1278)
++   by 0x........: main (test_spe.c:1684)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1278)
++   by 0x........: main (test_spe.c:1684)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1278)
++   by 0x........: main (test_spe.c:1684)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 3a9baaf..d7f4f5f 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -23,3 +23,10 @@ SPE Regression Tests: PASS
+ ....Unit test for evxor using asm: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
++...Value pool demo: PASS
++....Using __ev64_u16__ pool: PASS
++....Using __ev64_s16__ pool: PASS
++....Using __ev64_u32__ pool: PASS
++....Using __ev64_s32__ pool: PASS
++....Using __ev64_u64__ pool: PASS
++....Using __ev64_s64__ pool: PASS
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0010-Implement-SPE-Instructions-evor-evmr.patch b/recipes-devtools/valgrind/files/0010-Implement-SPE-Instructions-evor-evmr.patch
new file mode 100644
index 0000000..0140bca
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0010-Implement-SPE-Instructions-evor-evmr.patch
@@ -0,0 +1,502 @@
+From 4eb71e09bc80b04749b0b21874e5c260dab212d7 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 29 Jan 2013 18:24:40 -0800
+Subject: [PATCH 10/65] Implement SPE Instructions: { evor, evmr }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   25 ++++-
+ memcheck/tests/ppc32/test_spe.c          |  142 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    3 +
+ regtest-power7-64.log                    |   46 +++++-----
+ 5 files changed, 191 insertions(+), 31 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 1170363..622c022 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11840,20 +11840,34 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+       return False;
+    }
+    switch (opc2) {
+-   case 0x216:
+-      // evxor (Vector XOR, SPEPEM p5-248)
+-      DIP( "evxor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+ 
++   case 0x216:
++   case 0x217:
++      if (opc2 == 0x216) {
++        // evxor (Vector XOR, SPEPEM p5-248)
++        DIP( "evxor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x217) {
++        // evor (Vector OR, SPEPEM p5-214)
++        DIP( "evor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
+       assign ( rA, getSPEReg( rA_addr ) );
+       assign ( rB, getSPEReg( rB_addr ) );
+       assign ( rAL, unop( Iop_64to32, mkexpr ( rA ) ) );
+       assign ( rAU, unop( Iop_64HIto32, mkexpr ( rA ) ) );
+       assign ( rBL, unop( Iop_64to32, mkexpr ( rB ) ) );
+       assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
+-      assign ( rDL, binop( Iop_Xor32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
+-      assign ( rDU, binop( Iop_Xor32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      if (opc2 == 0x216) { // evxor
++        assign ( rDL, binop( Iop_Xor32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rDU, binop( Iop_Xor32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      }
++      if (opc2 == 0x217) { // evor
++        assign ( rDL, binop( Iop_Or32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rDU, binop( Iop_Or32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      }
+       assign ( rD,  binop( Iop_32HLto64, mkexpr ( rDU ), mkexpr ( rDL ) ) );
+       putSPEReg( rD_addr, mkexpr ( rD ) );
++      break;
+    }
+    return True;
+ }
+@@ -17852,6 +17866,7 @@ DisResult disInstr_PPC_WRK (
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
+       case 0x216: // evxor
++      case 0x217: // evor
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_bitwise( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index ffc1a7c..d76f1b9 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -1553,6 +1553,143 @@ int pool_demo_1s64 (void)
+   return failures;
+ }
+ TEST_SPE_DECL(pool_demo_1s64, "Using __ev64_s64__ pool");
++
++int sample (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  int i;
++
++  for (i = 0; i < 64; i++) {
++
++    regA = rA4u16 [i]; // evor gnerated (actually evmr)
++    regB = rB4u16 [i]; // evor gnerated (actually evmr)
++    asm volatile ("evxor   %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    rD4u16 [i] = regD;
++#ifdef GEN_BASELINE
++    u16_dump(&rD4u16[i], 1);
++#else
++    VERIFY (rD4u16[i][0] == (rA4u16[i][0] ^ rB4u16[i][0]));
++    VERIFY (rD4u16[i][1] == (rA4u16[i][1] ^ rB4u16[i][1]));
++    VERIFY (rD4u16[i][2] == (rA4u16[i][2] ^ rB4u16[i][2]));
++    VERIFY (rD4u16[i][3] == (rA4u16[i][3] ^ rB4u16[i][3]));
++#endif
++  }
++  memset (rD4u16, 0x0, 64 * sizeof (__ev64_u16__));
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(sample, "A sample test that actually needs evor");
++
++#ifdef __SPE__
++__ev64_s64__ evor_asm_mst[4] = {
++
++  (__ev64_s64__) { 0xef336e4fffffab7f },
++  (__ev64_s64__) { 0xfffffdfbdffd1fff },
++  (__ev64_s64__) { 0xe53cefbfeecfabbe },
++  (__ev64_s64__) { 0xe5ff79ffdff5bfbf },
++
++};
++#endif // __SPE__
++
++int evor_asm (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rB_base asm ("26");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA1s64 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA1s64 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA1s64);
++
++  asm volatile ("lis %[b], rB1s64 at ha" : [b] "=r" (rB_base));
++  asm volatile ("addic %[bd], %[bs], rB1s64 at l" : [bd] "=r" (rB_base) : [bs] "r" (rB_base));
++  VERIFY (rB_base == rB1s64);
++
++  asm volatile ("lis %[b], rD1s64 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD1s64 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD1s64);
++
++  for (i = 0; i < 4; i++) {
++
++    idx = i * sizeof (__ev64_s64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regB) : [b] "r" (rB_base), [i] "r" (idx));
++    asm volatile ("evor    %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA),    [b] "r" (regB));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++
++#ifdef GEN_BASELINE
++    s64_dump(&rD1s64[i], 1);
++#else
++    VERIFY(rD1s64[i][0] == evor_asm_mst[i][0]);
++#endif
++  }
++  memset (rD1s64, 0x0, 4 * sizeof (__ev64_s64__));
++  for (i = 0; i < 4; i++) {
++    VERIFY(rD1s64[i][0] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evor_asm, "Unit test for evor using asm");
++
++int evmr_asm (void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regD asm ("28");
++
++  register void *rA_base asm ("27");
++  register void *rD_base asm ("25");
++
++  register int idx asm ("24");
++  register int i   asm ("23");
++
++  asm volatile ("lis %[b], rA1s64 at ha" : [b] "=r" (rA_base));
++  asm volatile ("addic %[bd], %[bs], rA1s64 at l" : [bd] "=r" (rA_base) : [bs] "r" (rA_base));
++  VERIFY (rA_base == rA1s64);
++
++  asm volatile ("lis %[b], rD1s64 at ha" : [b] "=r" (rD_base));
++  asm volatile ("addic %[bd], %[bs], rD1s64 at l" : [bd] "=r" (rD_base) : [bs] "r" (rD_base));
++  VERIFY (rD_base == rD1s64);
++
++  for (i = 0; i < 64; i++) {
++
++    idx = i * sizeof (__ev64_s64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (regA) : [b] "r" (rA_base), [i] "r" (idx));
++    asm volatile ("evmr    %[d], %[a]"       : [d] "=r" (regD) : [a] "r" (regA));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (regD) : [b] "r" (rD_base), [i] "r" (idx));
++    VERIFY(regD[0] == regA[0]);
++    VERIFY(rD1s64[i][0] == rA1s64[i][0]);
++  }
++  memset (rD1s64, 0x0, 64 * sizeof (__ev64_s64__));
++  for (i = 0; i < 64; i++) {
++    VERIFY(rD1s64[i][0] == 0x0);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmr_asm, "Unit test for evmr using asm");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -1586,6 +1723,7 @@ test_t misc_test_table = {
+     F(simple_array),
+     F(ptr_to_function),
+     F(evxor_generic),
++    F(sample),
+     NULL
+   }
+ };
+@@ -1610,6 +1748,8 @@ test_t spe_isa_bitwise_operators_test_table = {
+   .type = table,
+   .description = "SPE ISA Bitwise Operators Tests",
+   .table = {
++    F(evmr_asm),
++    F(evor_asm),
+     F(evxor_asm),
+     NULL
+   }
+@@ -1691,3 +1831,5 @@ int main(void)
+ // 1. Make VERIFY() a variadic function, parametrized with the local paramters in addition to __LINE__.
+ // 2. Make a data header file per test and include those throughout the code where you have those blobs of 0x's.
+ // 3. Cleanup evstdd_asm (); like macroise like evstdh_asm ()
++// 4. Add support to measure time (add clock per test) - standalone and under valgrind.
++// 5. The memset(a) and VERIFY(a == {0x0}) pattern ought to be abstracted into it's own function.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index e6029ca..d1e4c8b 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1684)
++   by 0x........: main (test_spe.c:1824)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1684)
++   by 0x........: main (test_spe.c:1824)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1684)
++   by 0x........: main (test_spe.c:1824)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index d7f4f5f..bd2fe4d 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -10,6 +10,7 @@ SPE Regression Tests: PASS
+ ..Simple array: PASS
+ ..Pointer to function: PASS
+ ..Algorithm in C for evxor: PASS
++..A sample test that actually needs evor: PASS
+ .SPE ISA Tests: PASS
+ ..SPE ISA Standalone Instruction Tests: PASS
+ ...SPE ISA Load Store Tests: PASS
+@@ -20,6 +21,8 @@ SPE Regression Tests: PASS
+ ....Unit test for evldh using asm: PASS
+ ....Unit test for evstdh using asm: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
++....Unit test for evmr using asm: PASS
++....Unit test for evor using asm: PASS
+ ....Unit test for evxor using asm: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 80959da..2ba2345 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 66 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 64 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 65 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 70 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 70 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 70 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 16421 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  4600 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 16980 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  5168 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 21683 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  9877 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 26156 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 14394 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 11310 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 31837 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 16648 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  4848 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0011-Implement-SPE-Instructions-evldhx-evstdhx-evldw-evst.patch b/recipes-devtools/valgrind/files/0011-Implement-SPE-Instructions-evldhx-evstdhx-evldw-evst.patch
new file mode 100644
index 0000000..712fccf
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0011-Implement-SPE-Instructions-evldhx-evstdhx-evldw-evst.patch
@@ -0,0 +1,602 @@
+From ecc940c5663650bc807fddfb308343551456f785 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 31 Jan 2013 07:40:22 -0800
+Subject: [PATCH 11/65] Implement SPE Instructions: { evldhx, evstdhx, evldw, evstdw, evldwx, evstdwx }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  142 +++++++++++++----
+ memcheck/tests/ppc32/test_spe.c          |  246 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    6 +
+ regtest-power7-64.log                    |   14 +-
+ 5 files changed, 372 insertions(+), 42 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 622c022..453ef4d 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11676,6 +11676,8 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    IRTemp wu  = newTemp( Ity_I32 );
+    IRTemp wl  = newTemp( Ity_I32 );
+ 
++   char *insn;
++
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_load(ppc)(opc1 != 0x4)\n" );
+       return False;
+@@ -11695,32 +11697,66 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+       assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+       putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
+       break;
+-   case 0x305:
+-      // evldh (Vector Load Double into Four Half Words, SPEPEM p5-114)
+-      disp = 8 * uimm;
+-      DIP( "evldh r%d, %u(r%u)\n", rD_addr, disp, rA_addr );
+-
+-      assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++   case 0x302 ... 0x305:
++      if (opc2 == 0x302 || opc2 == 0x304) {
++        switch (opc2) {
++        case 0x302:
++           // evldwx (Vector Load Double into Two Words Indexed, SPEPEM p5-117)
++           insn = "evldwx";
++           break;
++        case 0x304:
++           // evldhx (Vector Load Double into Four Half Words Indexed, SPEPEM p5-115)
++           insn = "evldhx";
++           break;
++        }
++        DIP( "%s r%d, r%d, r%d\n", insn, rD_addr, rA_addr, rB_addr );
++        assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), 8 ) );
++      }
++      if (opc2 == 0x303 || opc2 == 0x305) {
++        disp = 8 * uimm;
++        switch (opc2) {
++        case 0x303:
++           // evldw (Vector Load Double into Two Words, SPEPEM p5-116)
++           insn = "evldw";
++           break;
++        case 0x305:
++           // evldh (Vector Load Double into Four Half Words, SPEPEM p5-114)
++           insn = "evldh";
++           break;
++        }
++        DIP( "%s r%d, %u(r%u)\n", insn, rD_addr, disp, rA_addr );
++        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++      }
+ 
+       assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
+       assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
+       assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
+       assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
+ 
+-      assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
+-      assign( ohwu, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
+-      assign( ehwl, loadBE( Ity_I16, mkexpr ( ea4 ) ) );
+-      assign( ohwl, loadBE( Ity_I16, mkexpr ( ea6 ) ) );
++      if (opc2 == 0x304 /* evldhx */ ||
++          opc2 == 0x305 /* evldh  */) {
++
++        assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++        assign( ohwu, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++        assign( ehwl, loadBE( Ity_I16, mkexpr ( ea4 ) ) );
++        assign( ohwl, loadBE( Ity_I16, mkexpr ( ea6 ) ) );
++
++        assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++        assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++        assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++        assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
+ 
+-      assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
+-      assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
+-      assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
+-      assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++        assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++        assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++        assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++        assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
+ 
+-      assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
+-      assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
+-      assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
+-      assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++      }
++      if (opc2 == 0x302 /* evldwx */ ||
++          opc2 == 0x303 /* evldw */) {
++        assign( wu, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
++        assign( wl, loadBE( Ity_I32, mkexpr ( ea4 ) ) );
++      }
+ 
+       assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
+ 
+@@ -11761,6 +11797,8 @@ static Bool dis_spe_store ( UInt theInstr )
+    IRTemp rSLU = newTemp( Ity_I16 );
+    IRTemp rSLL = newTemp( Ity_I16 );
+ 
++   char *insn;
++
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_store(ppc)(opc1 != 0x4)\n" );
+       return False;
+@@ -11782,12 +11820,36 @@ static Bool dis_spe_store ( UInt theInstr )
+       assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+       storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
+       break;
+-   case 0x325:
+-      // evstdh (Vector Store Double of Four Half Words, SPEPEM p5-230)
+-      disp = 8 * uimm;
+-      DIP( "evstdh r%d, %u(r%u)\n", rS_addr, disp, rA_addr );
+-
+-      assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++   case 0x322 ... 0x325:
++      if (opc2 == 0x322 || opc2 == 0x324) {
++        switch (opc2) {
++        case 0x322:
++           // evstdwx (Vector Store Double of Two Words Indexed, SPEPEM p5-233)
++           insn = "evstdwx";
++           break;
++        case 0x324:
++           // evstdhx (Vector Store Double of Four Half Words Indexed, SPEPEM p5-231)
++           insn = "evstdhx";
++           break;
++        }
++        DIP( "%s r%d, r%d, r%d\n", insn, rS_addr, rA_addr, rB_addr );
++        assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
++      }
++      if (opc2 == 0x323 || opc2 == 0x325) {
++        disp = 8 * uimm;
++        switch (opc2) {
++        case 0x323:
++           // evstdw (Vector Store Double of Two Words, SPEPEM p5-232)
++           insn = "evstdw";
++           break;
++        case 0x325:
++           // evstdh (Vector Store Double of Four Half Words, SPEPEM p5-230)
++           insn = "evstdh";
++           break;
++        }
++        DIP( "%s r%d, %u(r%u)\n", insn, rS_addr, disp, rA_addr );
++        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++      }
+ 
+       assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
+       assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
+@@ -11797,15 +11859,25 @@ static Bool dis_spe_store ( UInt theInstr )
+       assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
+       assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
+ 
+-      assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
+-      assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
+-      assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
+-      assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
++      if (opc2 == 0x324 /* evstdhx */ ||
++          opc2 == 0x325 /* evstdh  */) {
++
++        assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
++        assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
++        assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
++        assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
+ 
+-      storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
+-      storeBE( mkexpr( ea2 ), mkexpr( rSUL ) );
+-      storeBE( mkexpr( ea4 ), mkexpr( rSLU ) );
+-      storeBE( mkexpr( ea6 ), mkexpr( rSLL ) );
++        storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
++        storeBE( mkexpr( ea2 ), mkexpr( rSUL ) );
++        storeBE( mkexpr( ea4 ), mkexpr( rSLU ) );
++        storeBE( mkexpr( ea6 ), mkexpr( rSLL ) );
++      }
++      if (opc2 == 0x322 /* evstdwx */ ||
++          opc2 == 0x323 /* evstdw  */) {
++        storeBE( mkexpr( ea0 ), mkexpr( rSU ) );
++        storeBE( mkexpr( ea4 ), mkexpr( rSL ) );
++      }
++      break;
+    }
+ 
+    return True;
+@@ -17855,12 +17927,18 @@ DisResult disInstr_PPC_WRK (
+       switch (opc2) {
+       case 0x300: // evlddx
+       case 0x301: // evldd
++      case 0x302: // evldwx
++      case 0x303: // evldw
++      case 0x304: // evldhx
+       case 0x305: // evldh
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
+       case 0x320: // evstddx
+       case 0x321: // evstdd
++      case 0x322: // evstdwx
++      case 0x323: // evstdw
++      case 0x324: // evstdhx
+       case 0x325: // evstdh
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index d76f1b9..bd5470b 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -1690,6 +1690,242 @@ int evmr_asm (void)
+ }
+ TEST_SPE_DECL(evmr_asm, "Unit test for evmr using asm");
+ 
++int evldhx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA4u16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA4u16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA4u16);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u16__);
++    asm volatile ("evldhx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY (vec[0] == rA4u16[i][0]);
++    VERIFY (vec[1] == rA4u16[i][1]);
++    VERIFY (vec[2] == rA4u16[i][2]);
++    VERIFY (vec[3] == rA4u16[i][3]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldhx_asm, "Unit test for evldhx using asm");
++
++int evstdhx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u16__ vec asm ("28");
++  register int idx          asm ("27");
++  register int i            asm ("26");
++
++  asm volatile ("lis %[b], rA4u16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA4u16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA4u16);
++
++  asm volatile ("lis %[b], rD4u16 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD4u16 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD4u16);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u16__);
++    asm volatile ("evldhx  %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    asm volatile ("evstdhx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx));
++    VERIFY (rA4u16[i][0] == rD4u16[i][0]);
++    VERIFY (rA4u16[i][1] == rD4u16[i][1]);
++    VERIFY (rA4u16[i][2] == rD4u16[i][2]);
++    VERIFY (rA4u16[i][3] == rD4u16[i][3]);
++  }
++  memset (rD4u16, 0x0, 64 * sizeof (__ev64_u16__));
++  for (i = 0; i < 64; i++) {
++    VERIFY(rD4u16[i][0] == 0x0);
++    VERIFY(rD4u16[i][1] == 0x0);
++    VERIFY(rD4u16[i][2] == 0x0);
++    VERIFY(rD4u16[i][3] == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstdhx_asm, "Unit test for evstdhx using asm");
++
++int evldw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA2u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA2u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA2u32);
++
++#define EVLDW(index)                                                                      \
++  asm volatile ("evldw %[v], " #index " *8(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY (vec[0] == rA2u32[index][0] && vec[1] == rA2u32[index][1]);
++
++  EVLDW(0);
++  EVLDW(1);
++  EVLDW(2);
++  EVLDW(3);
++  EVLDW(4);
++  EVLDW(5);
++  EVLDW(6);
++  EVLDW(7);
++  EVLDW(8);
++  EVLDW(9);
++  EVLDW(10);
++  EVLDW(11);
++  EVLDW(12);
++  EVLDW(13);
++  EVLDW(14);
++  EVLDW(15);
++  EVLDW(16);
++  EVLDW(17);
++  EVLDW(18);
++  EVLDW(19);
++  EVLDW(20);
++  EVLDW(21);
++  EVLDW(22);
++  EVLDW(23);
++  EVLDW(24);
++  EVLDW(25);
++  EVLDW(26);
++  EVLDW(27);
++  EVLDW(28);
++  EVLDW(29);
++  EVLDW(30);
++  EVLDW(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldw_asm, "Unit test for evldw using asm");
++
++int evstdw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *dst_base   asm ("29");
++  register __ev64_u32__ vec asm ("30");
++  int i;
++
++  asm volatile ("lis %[b], rD2u32 at ha" : [b] "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD2u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD2u32);
++
++#define EVSTDW(index, w0, w1)                                                             \
++  vec = (__ev64_u32__) { (w0), (w1) };                                                    \
++  asm volatile ("evstdw %[v], " #index "*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY (rD2u32[index][0] == (w0) && rD2u32[index][1] == (w1));
++
++  EVSTDW(0,  0xed315b67, 0xf11d7c37);
++  EVSTDW(1,  0xdb92dabe, 0xb73022a5);
++  EVSTDW(2,  0xdbcc1354, 0x9427bd15);
++  EVSTDW(3,  0x817f8315, 0xa00b9178);
++  EVSTDW(4,  0xc91c6e4b, 0x3d7c6cd2);
++  EVSTDW(5,  0x9eeb53f2, 0x2ba4e8a2);
++  EVSTDW(6,  0x7a8d6f64, 0x0699048d);
++  EVSTDW(7,  0x6402a7b5, 0x2ae4ca7f);
++  EVSTDW(8,  0x497b18ba, 0x6a9890db);
++  EVSTDW(9,  0x42792fd9, 0xd22c5d27);
++  EVSTDW(10, 0xc6ce9b35, 0x43590179);
++  EVSTDW(11, 0xa9338a06, 0x805807ad);
++  EVSTDW(12, 0xa7ec44b5, 0xb35a73a4);
++  EVSTDW(13, 0x54931fce, 0xb71d632d);
++  EVSTDW(14, 0x900406fd, 0xf4afcf6a);
++  EVSTDW(15, 0x45ef6d64, 0x935a6007);
++  EVSTDW(16, 0x8e5f3230, 0x341756a0);
++  EVSTDW(17, 0xd84eeeaa, 0x55e3fb0b);
++  EVSTDW(18, 0xbd3262cd, 0x95785f9a);
++  EVSTDW(19, 0x612fba8d, 0xccd2c103);
++  EVSTDW(20, 0x054a478f, 0x2a00279a);
++  EVSTDW(21, 0xdcd4a835, 0xb2d2a4cb);
++  EVSTDW(22, 0x86b6ccab, 0x0280b33d);
++  EVSTDW(23, 0x45e70c01, 0x22f26f20);
++  EVSTDW(24, 0x9c3700c6, 0x8ae309a5);
++  EVSTDW(25, 0xfae2225d, 0xde030f49);
++  EVSTDW(26, 0xf0e74a80, 0xafcfe7c2);
++  EVSTDW(27, 0x3dd3c804, 0xa7e4ae0f);
++  EVSTDW(28, 0xa8746236, 0x15b96138);
++  EVSTDW(29, 0x6bd81a4c, 0x81cd046e);
++  EVSTDW(30, 0x06aacb3f, 0xbcd00960);
++  EVSTDW(31, 0xbbbb34f4, 0x06a941c7);
++  memset (rD2u32, 0x0, 32 * sizeof (__ev64_u32__));
++  for (i = 0; i < 32; i++) {
++    VERIFY(rD2u32[i][0] == 0x0);
++    VERIFY(rD2u32[i][1] == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstdw_asm, "Unit test for evstdw using asm");
++
++int evldwx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA2u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA2u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA2u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u32__);
++    asm volatile ("evldwx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY (vec[0] == rA2u32[i][0]);
++    VERIFY (vec[1] == rA2u32[i][1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evldwx_asm, "Unit test for evldwx using asm");
++
++int evstdwx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u32__ vec asm ("28");
++  register int idx          asm ("27");
++  register int i            asm ("26");
++
++  asm volatile ("lis %[b], rA2u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA2u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA2u32);
++
++  asm volatile ("lis %[b], rD2u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD2u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD2u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (__ev64_u32__);
++    asm volatile ("evldwx  %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    asm volatile ("evstdwx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx));
++    VERIFY (rA2u32[i][0] == rD2u32[i][0]);
++    VERIFY (rA2u32[i][1] == rD2u32[i][1]);
++  }
++  memset (rD2u32, 0x0, 64 * sizeof (__ev64_u32__));
++  for (i = 0; i < 64; i++) {
++    VERIFY(rD2u32[i][0] == 0x0);
++    VERIFY(rD2u32[i][1] == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstdwx_asm, "Unit test for evstdwx using asm");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -1739,6 +1975,12 @@ test_t spe_isa_load_store_test_table = {
+     F(evstddx_asm),
+     F(evldh_asm),
+     F(evstdh_asm),
++    F(evldhx_asm),
++    F(evstdhx_asm),
++    F(evldw_asm),
++    F(evstdw_asm),
++    F(evldwx_asm),
++    F(evstdwx_asm),
+     NULL
+   }
+ };
+@@ -1833,3 +2075,7 @@ int main(void)
+ // 3. Cleanup evstdd_asm (); like macroise like evstdh_asm ()
+ // 4. Add support to measure time (add clock per test) - standalone and under valgrind.
+ // 5. The memset(a) and VERIFY(a == {0x0}) pattern ought to be abstracted into it's own function.
++// 6. Add intrinsic based tests.
++// 7. Code entire algorithms using SPE insns.
++// 8. Convert all tests to using the data pools.
++// 9. Make all format uniform. Esp, where you have asm ()'s.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index d1e4c8b..f035ea3 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1824)
++   by 0x........: main (test_spe.c:2066)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1824)
++   by 0x........: main (test_spe.c:2066)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:1824)
++   by 0x........: main (test_spe.c:2066)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index bd2fe4d..6eff92f 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -20,6 +20,12 @@ SPE Regression Tests: PASS
+ ....Unit test for evstddx using asm: PASS
+ ....Unit test for evldh using asm: PASS
+ ....Unit test for evstdh using asm: PASS
++....Unit test for evldhx using asm: PASS
++....Unit test for evstdhx using asm: PASS
++....Unit test for evldw using asm: PASS
++....Unit test for evstdw using asm: PASS
++....Unit test for evldwx using asm: PASS
++....Unit test for evstdwx using asm: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....Unit test for evmr using asm: PASS
+ ....Unit test for evor using asm: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 2ba2345..6ac9209 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 66 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  4600 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  1717 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  5168 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  2276 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  9877 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  6982 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 14394 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 11520 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 31837 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 28955 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  4848 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  1963 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0012-Re-Implement-SPE-Instructions-evldd-evstdd-evlddx-ev.patch b/recipes-devtools/valgrind/files/0012-Re-Implement-SPE-Instructions-evldd-evstdd-evlddx-ev.patch
new file mode 100644
index 0000000..3f4e0ab
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0012-Re-Implement-SPE-Instructions-evldd-evstdd-evlddx-ev.patch
@@ -0,0 +1,130 @@
+From 54fc6ae6e012920dd389190ba08591c26c63d799 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 31 Jan 2013 09:37:39 -0800
+Subject: [PATCH 12/65] Re-Implement SPE Instructions: { evldd, evstdd, evlddx, evstddx } for uniformity.
+
+---
+ VEX/priv/guest_ppc_toIR.c |   66 +++++++++++++++++++++-----------------------
+ 1 files changed, 32 insertions(+), 34 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 453ef4d..86e1961 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11684,22 +11684,13 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    }
+ 
+    switch (opc2) {
+-   case 0x300:
+-      // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
+-      DIP( "evlddx r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-      assign( EA, ea_rAor0_idxd ( rA_addr, rB_addr ) );
+-      putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
+-      break;
+-   case 0x301:
+-      // evldd (Vector Load Double of Double, SPEPEM p5-112)
+-      disp = 8 * uimm;
+-      DIP( "evldd r%d, %u(r%u)\n", rD_addr, disp, rA_addr );
+-      assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+-      putSPEReg( rD_addr, loadBE( Ity_I64, addr_align( mkexpr( EA ), 8 ) ) );
+-      break;
+-   case 0x302 ... 0x305:
+-      if (opc2 == 0x302 || opc2 == 0x304) {
++   case 0x300 ... 0x305:
++      if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304) {
+         switch (opc2) {
++        case 0x300:
++           // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
++           insn = "evlddx";
++           break;
+         case 0x302:
+            // evldwx (Vector Load Double into Two Words Indexed, SPEPEM p5-117)
+            insn = "evldwx";
+@@ -11712,9 +11703,13 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+         DIP( "%s r%d, r%d, r%d\n", insn, rD_addr, rA_addr, rB_addr );
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), 8 ) );
+       }
+-      if (opc2 == 0x303 || opc2 == 0x305) {
++      if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305) {
+         disp = 8 * uimm;
+         switch (opc2) {
++        case 0x301:
++           // evldd (Vector Load Double of Double, SPEPEM p5-112)
++           insn = "evldd";
++           break;
+         case 0x303:
+            // evldw (Vector Load Double into Two Words, SPEPEM p5-116)
+            insn = "evldw";
+@@ -11757,8 +11752,12 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+         assign( wu, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
+         assign( wl, loadBE( Ity_I32, mkexpr ( ea4 ) ) );
+       }
+-
+-      assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++      if (opc2 == 0x300 /* evlddx */ ||
++          opc2 == 0x301 /* evldd  */) {
++        assign (rD, loadBE( Ity_I64, mkexpr ( ea0 ) ) );
++      } else {
++        assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++      }
+ 
+       putSPEReg( rD_addr, mkexpr ( rD ) );
+       break;
+@@ -11807,22 +11806,13 @@ static Bool dis_spe_store ( UInt theInstr )
+    assign( rS, getSPEReg( rS_addr ) );
+ 
+    switch (opc2) {
+-   case 0x320:
+-      // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
+-      DIP( "evstddx r%d, r%d, r%d\n", rS_addr, rA_addr, rB_addr );
+-      assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
+-      storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
+-      break;
+-   case 0x321:
+-      // evstdd (Vector Store Double of Double, SPEPEM p5-228)
+-      disp = 8 * uimm;
+-      DIP( "evstdd r%d, %u(r%u)\n", rS_addr, disp, rA_addr );
+-      assign( EA, ea_rAor0_disp( rA_addr, disp ) );
+-      storeBE( addr_align( mkexpr( EA ), 8 ), mkexpr( rS ) );
+-      break;
+-   case 0x322 ... 0x325:
+-      if (opc2 == 0x322 || opc2 == 0x324) {
++   case 0x320 ... 0x325:
++      if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324) {
+         switch (opc2) {
++        case 0x320:
++           // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
++           insn = "evstddx";
++           break;
+         case 0x322:
+            // evstdwx (Vector Store Double of Two Words Indexed, SPEPEM p5-233)
+            insn = "evstdwx";
+@@ -11835,9 +11825,13 @@ static Bool dis_spe_store ( UInt theInstr )
+         DIP( "%s r%d, r%d, r%d\n", insn, rS_addr, rA_addr, rB_addr );
+         assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
+       }
+-      if (opc2 == 0x323 || opc2 == 0x325) {
++      if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325) {
+         disp = 8 * uimm;
+         switch (opc2) {
++        case 0x321:
++           // evstdd (Vector Store Double of Double, SPEPEM p5-228)
++           insn = "evstdd";
++           break;
+         case 0x323:
+            // evstdw (Vector Store Double of Two Words, SPEPEM p5-232)
+            insn = "evstdw";
+@@ -11877,6 +11871,10 @@ static Bool dis_spe_store ( UInt theInstr )
+         storeBE( mkexpr( ea0 ), mkexpr( rSU ) );
+         storeBE( mkexpr( ea4 ), mkexpr( rSL ) );
+       }
++      if (opc2 == 0x320 /* evstddx */ ||
++          opc2 == 0x321 /* evstdd  */) {
++        storeBE( mkexpr( ea0 ), mkexpr( rS ) );
++      }
+       break;
+    }
+ 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0013-Remove-some-of-the-verbosity-in-the-test-reporting.patch b/recipes-devtools/valgrind/files/0013-Remove-some-of-the-verbosity-in-the-test-reporting.patch
new file mode 100644
index 0000000..da5623c
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0013-Remove-some-of-the-verbosity-in-the-test-reporting.patch
@@ -0,0 +1,206 @@
+From 6706e3a23ebea56067445e9e8bcd07c97049f523 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 31 Jan 2013 10:03:19 -0800
+Subject: [PATCH 13/65] Remove some of the verbosity in the test reporting.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |   32 +++++++++++++++---------------
+ memcheck/tests/ppc32/test_spe.stdout.exp |   32 +++++++++++++++---------------
+ 2 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index bd5470b..8b86951 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -126,7 +126,7 @@ int evldd_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evldd_asm, "Unit test for evldd using asm");
++TEST_SPE_DECL(evldd_asm, "evldd");
+ 
+ #ifdef __SPE__
+ __ev64_u32__ evstdd_asm_dst[32];
+@@ -272,7 +272,7 @@ int evstdd_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstdd_asm, "Unit test for evstdd using asm");
++TEST_SPE_DECL(evstdd_asm, "evstdd");
+ 
+ #ifdef __SPE__
+ __ev64_u32__ evldd_evstdd_mem_xfer_src[32] = {
+@@ -678,7 +678,7 @@ int evxor_asm (void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evxor_asm, "Unit test for evxor using asm");
++TEST_SPE_DECL(evxor_asm, "evxor");
+ 
+ long long evxor_algo(long long rA, long long rB)
+ {
+@@ -911,7 +911,7 @@ int evlddx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evlddx_asm, "Unit test for evlddx using asm");
++TEST_SPE_DECL(evlddx_asm, "evlddx");
+ 
+ #ifdef __SPE__
+ __ev64_u64__ evstddx_asm_src[64] = {
+@@ -1011,7 +1011,7 @@ int evstddx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstddx_asm, "Unit test for evstddx using asm");
++TEST_SPE_DECL(evstddx_asm, "evstddx");
+ 
+ #ifdef __SPE__
+ __ev64_u16__ evldh_asm_src[32] = {
+@@ -1104,7 +1104,7 @@ int evldh_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evldh_asm, "Unit test for evldh using asm");
++TEST_SPE_DECL(evldh_asm, "evldh");
+ 
+ #ifdef __SPE__
+ __ev64_u16__ evstdh_asm_dst[32];
+@@ -1161,7 +1161,7 @@ int evstdh_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstdh_asm, "Unit test for evstdh using asm");
++TEST_SPE_DECL(evstdh_asm, "evstdh");
+ 
+ #ifdef __SPE__
+ __ev64_u16__ pool_demo_4u16_mst[4] = {
+@@ -1647,7 +1647,7 @@ int evor_asm (void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evor_asm, "Unit test for evor using asm");
++TEST_SPE_DECL(evor_asm, "evor");
+ 
+ int evmr_asm (void)
+ {
+@@ -1688,7 +1688,7 @@ int evmr_asm (void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evmr_asm, "Unit test for evmr using asm");
++TEST_SPE_DECL(evmr_asm, "evmr");
+ 
+ int evldhx_asm(void)
+ {
+@@ -1714,7 +1714,7 @@ int evldhx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evldhx_asm, "Unit test for evldhx using asm");
++TEST_SPE_DECL(evldhx_asm, "evldhx");
+ 
+ int evstdhx_asm(void)
+ {
+@@ -1753,7 +1753,7 @@ int evstdhx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstdhx_asm, "Unit test for evstdhx using asm");
++TEST_SPE_DECL(evstdhx_asm, "evstdhx");
+ 
+ int evldw_asm(void)
+ {
+@@ -1806,7 +1806,7 @@ int evldw_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evldw_asm, "Unit test for evldw using asm");
++TEST_SPE_DECL(evldw_asm, "evldw");
+ 
+ int evstdw_asm(void)
+ {
+@@ -1865,7 +1865,7 @@ int evstdw_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstdw_asm, "Unit test for evstdw using asm");
++TEST_SPE_DECL(evstdw_asm, "evstdw");
+ 
+ int evldwx_asm(void)
+ {
+@@ -1889,7 +1889,7 @@ int evldwx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evldwx_asm, "Unit test for evldwx using asm");
++TEST_SPE_DECL(evldwx_asm, "evldwx");
+ 
+ int evstdwx_asm(void)
+ {
+@@ -1924,7 +1924,7 @@ int evstdwx_asm(void)
+ #endif // __SPE__
+   return failures;
+ }
+-TEST_SPE_DECL(evstdwx_asm, "Unit test for evstdwx using asm");
++TEST_SPE_DECL(evstdwx_asm, "evstdwx");
+ 
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+@@ -2000,7 +2000,7 @@ test_t spe_isa_bitwise_operators_test_table = {
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+-  .description = "SPE ISA Standalone Instruction Tests",
++  .description = "SPE ISA Unit Tests",
+   .table = {
+     &spe_isa_load_store_test_table,
+     &spe_isa_bitwise_operators_test_table,
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 6eff92f..7dab515 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -12,24 +12,24 @@ SPE Regression Tests: PASS
+ ..Algorithm in C for evxor: PASS
+ ..A sample test that actually needs evor: PASS
+ .SPE ISA Tests: PASS
+-..SPE ISA Standalone Instruction Tests: PASS
++..SPE ISA Unit Tests: PASS
+ ...SPE ISA Load Store Tests: PASS
+-....Unit test for evldd using asm: PASS
+-....Unit test for evstdd using asm: PASS
+-....Unit test for evlddx using asm: PASS
+-....Unit test for evstddx using asm: PASS
+-....Unit test for evldh using asm: PASS
+-....Unit test for evstdh using asm: PASS
+-....Unit test for evldhx using asm: PASS
+-....Unit test for evstdhx using asm: PASS
+-....Unit test for evldw using asm: PASS
+-....Unit test for evstdw using asm: PASS
+-....Unit test for evldwx using asm: PASS
+-....Unit test for evstdwx using asm: PASS
++....evldd: PASS
++....evstdd: PASS
++....evlddx: PASS
++....evstddx: PASS
++....evldh: PASS
++....evstdh: PASS
++....evldhx: PASS
++....evstdhx: PASS
++....evldw: PASS
++....evstdw: PASS
++....evldwx: PASS
++....evstdwx: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+-....Unit test for evmr using asm: PASS
+-....Unit test for evor using asm: PASS
+-....Unit test for evxor using asm: PASS
++....evmr: PASS
++....evor: PASS
++....evxor: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0014-Create-a-data-pool-of-word-values-and-macros-for-get.patch b/recipes-devtools/valgrind/files/0014-Create-a-data-pool-of-word-values-and-macros-for-get.patch
new file mode 100644
index 0000000..df03a8d
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0014-Create-a-data-pool-of-word-values-and-macros-for-get.patch
@@ -0,0 +1,289 @@
+From 30215820461f343915f1bf611fc3ab40d67970d5 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 31 Jan 2013 11:33:32 -0800
+Subject: [PATCH 14/65] Create a data pool of word values and macros for getting the odd and even half-words of a word.
+
+---
+ memcheck/tests/ppc32/test_spe.h |  269 +++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 269 insertions(+), 0 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 83ffd41..8bbfa35 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4354,3 +4354,272 @@ void s64_dump (__ev64_s64__ a[], unsigned nelts)
+ 
+ }
+ #endif
++
++const unsigned int rA1u32[] = {
++
++  /*   0 */ 0xd7dc9d53,
++  /*   1 */ 0xe9286525,
++  /*   2 */ 0xd7ad79bc,
++  /*   3 */ 0xbd5cb193,
++  /*   4 */ 0xc3ef61a4,
++  /*   5 */ 0x87be035c,
++  /*   6 */ 0xbfe09d67,
++  /*   7 */ 0x2b2c115f,
++  /*   8 */ 0xa981fb9a,
++  /*   9 */ 0x1468bee5,
++  /*  10 */ 0x0a3ba9c7,
++  /*  11 */ 0x35c79673,
++  /*  12 */ 0x1cf061d2,
++  /*  13 */ 0x26b7e3ee,
++  /*  14 */ 0x8d214dd7,
++  /*  15 */ 0xa313260b,
++  /*  16 */ 0xe923965e,
++  /*  17 */ 0xb57ba4da,
++  /*  18 */ 0x9035a7ca,
++  /*  19 */ 0x7cb6eed3,
++  /*  20 */ 0xf082c408,
++  /*  21 */ 0xd31feb9f,
++  /*  22 */ 0xab7b3609,
++  /*  23 */ 0x76d1f98f,
++  /*  24 */ 0x513f4e42,
++  /*  25 */ 0x96850517,
++  /*  26 */ 0x55e2d57a,
++  /*  27 */ 0xe7d0424e,
++  /*  28 */ 0x2af9300c,
++  /*  29 */ 0x063b2e14,
++  /*  30 */ 0x5ed84f4e,
++  /*  31 */ 0xbd2c5cf7,
++  /*  32 */ 0x6865f94b,
++  /*  33 */ 0xedd89e76,
++  /*  34 */ 0xa1dacf66,
++  /*  35 */ 0x1a6cd954,
++  /*  36 */ 0x3160a98c,
++  /*  37 */ 0x022a9943,
++  /*  38 */ 0xe2a111f0,
++  /*  39 */ 0xbbb5d662,
++  /*  40 */ 0xec7de6d8,
++  /*  41 */ 0xb99353f5,
++  /*  42 */ 0x9c3484d8,
++  /*  43 */ 0x350ef183,
++  /*  44 */ 0xeb365d52,
++  /*  45 */ 0xe30dbc96,
++  /*  46 */ 0x97c2cca4,
++  /*  47 */ 0xcc45f4ca,
++  /*  48 */ 0x113d89f6,
++  /*  49 */ 0x4eb2d154,
++  /*  50 */ 0xc260550b,
++  /*  51 */ 0x23a637dd,
++  /*  52 */ 0xdb924e14,
++  /*  53 */ 0x07be0cdb,
++  /*  54 */ 0xf7df7d14,
++  /*  55 */ 0x8d38c22b,
++  /*  56 */ 0xb1572383,
++  /*  57 */ 0x3656b4b5,
++  /*  58 */ 0x8d171d50,
++  /*  59 */ 0xf945e82b,
++  /*  60 */ 0x50450dbf,
++  /*  61 */ 0xec8b5fd3,
++  /*  62 */ 0x2c672f0f,
++  /*  63 */ 0x339d2e2c,
++  /*  64 */ 0xeebb9d4c,
++  /*  65 */ 0xe8c0afbe,
++  /*  66 */ 0x2e5e05f6,
++  /*  67 */ 0x5ff00e2f,
++  /*  68 */ 0x143eff58,
++  /*  69 */ 0xf1749a7e,
++  /*  70 */ 0x6398c31a,
++  /*  71 */ 0x51a92cc5,
++  /*  72 */ 0xff3825e7,
++  /*  73 */ 0x4d470361,
++  /*  74 */ 0x0af3709a,
++  /*  75 */ 0x726ba507,
++  /*  76 */ 0xd567715b,
++  /*  77 */ 0x25e9432b,
++  /*  78 */ 0xd909d068,
++  /*  79 */ 0x0e083c74,
++  /*  80 */ 0x99526c5f,
++  /*  81 */ 0x0f8b5c80,
++  /*  82 */ 0x8fd72666,
++  /*  83 */ 0x1731abf2,
++  /*  84 */ 0x14d7e993,
++  /*  85 */ 0x8b401f81,
++  /*  86 */ 0x2554dcc7,
++  /*  87 */ 0xbbfc7788,
++  /*  88 */ 0xfb5e5787,
++  /*  89 */ 0x1089bb82,
++  /*  90 */ 0x60462797,
++  /*  91 */ 0x32f8d552,
++  /*  92 */ 0x0d0b110f,
++  /*  93 */ 0x797d16b6,
++  /*  94 */ 0x8ec37b02,
++  /*  95 */ 0x2ea9e697,
++  /*  96 */ 0x7c8bbe2e,
++  /*  97 */ 0x1ef77101,
++  /*  98 */ 0xda61727c,
++  /*  99 */ 0xbb19146c,
++  /* 100 */ 0xe4529d2f,
++  /* 101 */ 0xc26fef18,
++  /* 102 */ 0xca5e0280,
++  /* 103 */ 0xd0f85c6b,
++  /* 104 */ 0x24f3bf81,
++  /* 105 */ 0x201fbe94,
++  /* 106 */ 0x43f7726d,
++  /* 107 */ 0xbe14ab3b,
++  /* 108 */ 0x460a0044,
++  /* 109 */ 0x25ebe6de,
++  /* 110 */ 0x6d02c164,
++  /* 111 */ 0x20cdb93b,
++  /* 112 */ 0xce38e0f2,
++  /* 113 */ 0xf6066940,
++  /* 114 */ 0x9cb02509,
++  /* 115 */ 0xde07f6f5,
++  /* 116 */ 0x55621108,
++  /* 117 */ 0x61203d50,
++  /* 118 */ 0x63202709,
++  /* 119 */ 0x78d5fcff,
++  /* 120 */ 0x604bc364,
++  /* 121 */ 0x819913a3,
++  /* 122 */ 0xb007bba8,
++  /* 123 */ 0x0f0dc8f5,
++  /* 124 */ 0x6aeaae29,
++  /* 125 */ 0xe4624136,
++  /* 126 */ 0x49506de1,
++  /* 127 */ 0x9c62ff85,
++  /* 128 */ 0x2c8b0072,
++  /* 129 */ 0x72f856d3,
++  /* 130 */ 0xd667b64f,
++  /* 131 */ 0x0f3395f2,
++  /* 132 */ 0x5c180859,
++  /* 133 */ 0x8583c84b,
++  /* 134 */ 0xe23853e6,
++  /* 135 */ 0x00a8dc6f,
++  /* 136 */ 0xe40e9e8a,
++  /* 137 */ 0xb7c132f8,
++  /* 138 */ 0x72112e05,
++  /* 139 */ 0xde90c25a,
++  /* 140 */ 0x4435e7eb,
++  /* 141 */ 0xd9478b8a,
++  /* 142 */ 0x1ec72c38,
++  /* 143 */ 0xb255970d,
++  /* 144 */ 0xe3046e19,
++  /* 145 */ 0x0d79e147,
++  /* 146 */ 0x53700846,
++  /* 147 */ 0xa4d5307f,
++  /* 148 */ 0x46f8bdb5,
++  /* 149 */ 0xa65678a9,
++  /* 150 */ 0x7349840d,
++  /* 151 */ 0x87688491,
++  /* 152 */ 0x62d35d84,
++  /* 153 */ 0x8b894ebe,
++  /* 154 */ 0xff1bf7e9,
++  /* 155 */ 0x8aea14bb,
++  /* 156 */ 0x271e977e,
++  /* 157 */ 0xdc07cd35,
++  /* 158 */ 0x279b89a7,
++  /* 159 */ 0x9c90c7e0,
++  /* 160 */ 0x060f908f,
++  /* 161 */ 0x014f8d09,
++  /* 162 */ 0x876b3389,
++  /* 163 */ 0x885c1a38,
++  /* 164 */ 0x6d8fa6c0,
++  /* 165 */ 0xcbe8dc69,
++  /* 166 */ 0xda52a8b4,
++  /* 167 */ 0x59945cc4,
++  /* 168 */ 0xd7ac827f,
++  /* 169 */ 0x408fcc98,
++  /* 170 */ 0x7335946b,
++  /* 171 */ 0x21c7bd84,
++  /* 172 */ 0xf845901e,
++  /* 173 */ 0x09f00bd2,
++  /* 174 */ 0x1aacf28b,
++  /* 175 */ 0x8fd9d7d7,
++  /* 176 */ 0x3e6d4243,
++  /* 177 */ 0x70621a8f,
++  /* 178 */ 0xd1104427,
++  /* 179 */ 0x41447431,
++  /* 180 */ 0x97e55ab8,
++  /* 181 */ 0x9df8ceb8,
++  /* 182 */ 0x6c77ef85,
++  /* 183 */ 0x028aaaf7,
++  /* 184 */ 0xca0ee386,
++  /* 185 */ 0x4028edaa,
++  /* 186 */ 0xf137d16c,
++  /* 187 */ 0xe164ed18,
++  /* 188 */ 0xbb28340d,
++  /* 189 */ 0x530fd353,
++  /* 190 */ 0xfc38dfa2,
++  /* 191 */ 0x13ec7c4f,
++  /* 192 */ 0x5fa5c533,
++  /* 193 */ 0x8267b921,
++  /* 194 */ 0x0abfdebc,
++  /* 195 */ 0x7d72f545,
++  /* 196 */ 0x2b6734ad,
++  /* 197 */ 0xecddaa8f,
++  /* 198 */ 0x21d68a36,
++  /* 199 */ 0xd99f3e5f,
++  /* 200 */ 0x6d16c87e,
++  /* 201 */ 0xa0d5898f,
++  /* 202 */ 0x4ac5c270,
++  /* 203 */ 0x43f7970b,
++  /* 204 */ 0x8c7b11ef,
++  /* 205 */ 0xf261fe46,
++  /* 206 */ 0xde44ed44,
++  /* 207 */ 0x711acebb,
++  /* 208 */ 0xa242fe91,
++  /* 209 */ 0x7c37817e,
++  /* 210 */ 0xcd66b91e,
++  /* 211 */ 0x57984d8d,
++  /* 212 */ 0xefda6f40,
++  /* 213 */ 0xc9671d7b,
++  /* 214 */ 0xecb005bb,
++  /* 215 */ 0x89dea613,
++  /* 216 */ 0xf7080c06,
++  /* 217 */ 0x1fd44f93,
++  /* 218 */ 0xf6046a7b,
++  /* 219 */ 0x13c3350c,
++  /* 220 */ 0xc126fadd,
++  /* 221 */ 0x48050054,
++  /* 222 */ 0x3695541e,
++  /* 223 */ 0x2b8e33fe,
++  /* 224 */ 0x15bd1a96,
++  /* 225 */ 0x93c2e541,
++  /* 226 */ 0x8616e8d7,
++  /* 227 */ 0xea25ebe8,
++  /* 228 */ 0xe6ca74eb,
++  /* 229 */ 0x4a0f3d8d,
++  /* 230 */ 0x18921c12,
++  /* 231 */ 0x296abeb4,
++  /* 232 */ 0xba742d0b,
++  /* 233 */ 0xeb039041,
++  /* 234 */ 0x4e2c8458,
++  /* 235 */ 0xb18b29ab,
++  /* 236 */ 0xcae9c154,
++  /* 237 */ 0x6ac4f46f,
++  /* 238 */ 0x7f97633b,
++  /* 239 */ 0x5e41162a,
++  /* 240 */ 0xec2be5d4,
++  /* 241 */ 0x77ae488f,
++  /* 242 */ 0xd87ec870,
++  /* 243 */ 0x9ebd259e,
++  /* 244 */ 0xd984cb6d,
++  /* 245 */ 0xbf6515cc,
++  /* 246 */ 0x076a6ef2,
++  /* 247 */ 0xa9b1aa4e,
++  /* 248 */ 0x247161b3,
++  /* 249 */ 0x13ad37fd,
++  /* 250 */ 0x5a03eb92,
++  /* 251 */ 0xbcab5677,
++  /* 252 */ 0x034ff8e5,
++  /* 253 */ 0x0c55c4a1,
++  /* 254 */ 0x883b27a2,
++  /* 255 */ 0x07068489,
++
++};
++
++unsigned int rD1u32[NELTS(rA1u32)];
++
++// Even Half Word
++#define EHW(n) ((n) >> 16)
++
++// Odd Half Word
++#define OHW(n) ((n) & 0xffff)
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0015-Implement-SPE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch b/recipes-devtools/valgrind/files/0015-Implement-SPE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch
new file mode 100644
index 0000000..674db40
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0015-Implement-SPE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch
@@ -0,0 +1,699 @@
+From 958c0a1f751290c431aa7a385c9f12cdec6e32bf Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 1 Feb 2013 08:26:15 -0800
+Subject: [PATCH 15/65] Implement SPE Instructions: { evlwhe, evstwhe, evlwhex, evstwhex }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  219 +++++++++++++++++++++---------
+ memcheck/tests/ppc32/test_spe.c          |  184 +++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   18 ++--
+ 5 files changed, 357 insertions(+), 74 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 86e1961..a7942f3 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11677,6 +11677,7 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    IRTemp wl  = newTemp( Ity_I32 );
+ 
+    char *insn;
++   UChar alignment = 0;
+ 
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_load(ppc)(opc1 != 0x4)\n" );
+@@ -11685,42 +11686,62 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+ 
+    switch (opc2) {
+    case 0x300 ... 0x305:
+-      if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304) {
++   case 0x310 ... 0x311:
++      if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304 || opc2 == 0x310) {
+         switch (opc2) {
+         case 0x300:
+            // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
++           alignment = 8;
+            insn = "evlddx";
+            break;
+         case 0x302:
+            // evldwx (Vector Load Double into Two Words Indexed, SPEPEM p5-117)
++           alignment = 8;
+            insn = "evldwx";
+            break;
+         case 0x304:
+            // evldhx (Vector Load Double into Four Half Words Indexed, SPEPEM p5-115)
++           alignment = 8;
+            insn = "evldhx";
+            break;
++        case 0x310:
++           // evlwhex (Vector Load Word into Two Half Words Even Indexed, SPEPEM p5-125)
++           alignment = 4;
++           insn = "evlwhex";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rD_addr, rA_addr, rB_addr );
+-        assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), 8 ) );
++        assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+-      if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305) {
+-        disp = 8 * uimm;
++      if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305 || opc2 == 0x311) {
+         switch (opc2) {
+         case 0x301:
+            // evldd (Vector Load Double of Double, SPEPEM p5-112)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evldd";
+            break;
+         case 0x303:
+            // evldw (Vector Load Double into Two Words, SPEPEM p5-116)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evldw";
+            break;
+         case 0x305:
+            // evldh (Vector Load Double into Four Half Words, SPEPEM p5-114)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evldh";
+            break;
++        case 0x311:
++           // evlwhe (Vector Load Word into Two Half Words Even, SPEPEM p5-124)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evlwhe";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rD_addr, disp, rA_addr );
+-        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+       }
+ 
+       assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
+@@ -11728,35 +11749,57 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+       assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
+       assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
+ 
+-      if (opc2 == 0x304 /* evldhx */ ||
+-          opc2 == 0x305 /* evldh  */) {
++      switch (opc2) {
++      case 0x300: /* evlddx */
++      case 0x301: /* evldd  */
++         assign (rD, loadBE( Ity_I64, mkexpr ( ea0 ) ) );
++         break;
++      case 0x302: /* evldwx */
++      case 0x303: /* evldw */
++         assign( wu, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
++         assign( wl, loadBE( Ity_I32, mkexpr ( ea4 ) ) );
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
++      case 0x304: /* evldhx */
++      case 0x305: /* evldh  */
++
++         assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++         assign( ehwl, loadBE( Ity_I16, mkexpr ( ea4 ) ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea6 ) ) );
+ 
+-        assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
+-        assign( ohwu, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
+-        assign( ehwl, loadBE( Ity_I16, mkexpr ( ea4 ) ) );
+-        assign( ohwl, loadBE( Ity_I16, mkexpr ( ea6 ) ) );
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
+ 
+-        assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
+-        assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
+-        assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
+-        assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
+ 
+-        assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
+-        assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
+-        assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
+-        assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
++       case 0x310: /* evlwhex */
++       case 0x311: /* evlwhe */
+ 
+-      }
+-      if (opc2 == 0x302 /* evldwx */ ||
+-          opc2 == 0x303 /* evldw */) {
+-        assign( wu, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
+-        assign( wl, loadBE( Ity_I32, mkexpr ( ea4 ) ) );
+-      }
+-      if (opc2 == 0x300 /* evlddx */ ||
+-          opc2 == 0x301 /* evldd  */) {
+-        assign (rD, loadBE( Ity_I64, mkexpr ( ea0 ) ) );
+-      } else {
+-        assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwu, mkU16( 0x0 ) );
++         assign( ehwl, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++         assign( ohwl, mkU16( 0x0 ) );
++
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
+       }
+ 
+       putSPEReg( rD_addr, mkexpr ( rD ) );
+@@ -11797,6 +11840,7 @@ static Bool dis_spe_store ( UInt theInstr )
+    IRTemp rSLL = newTemp( Ity_I16 );
+ 
+    char *insn;
++   UChar alignment = 0;
+ 
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_store(ppc)(opc1 != 0x4)\n" );
+@@ -11807,77 +11851,124 @@ static Bool dis_spe_store ( UInt theInstr )
+ 
+    switch (opc2) {
+    case 0x320 ... 0x325:
+-      if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324) {
++   case 0x330 ... 0x331:
++      if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324 || opc2 == 0x330) {
+         switch (opc2) {
+         case 0x320:
+            // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
++           alignment = 8;
+            insn = "evstddx";
+            break;
+         case 0x322:
+            // evstdwx (Vector Store Double of Two Words Indexed, SPEPEM p5-233)
++           alignment = 8;
+            insn = "evstdwx";
+            break;
+         case 0x324:
+            // evstdhx (Vector Store Double of Four Half Words Indexed, SPEPEM p5-231)
++           alignment = 8;
+            insn = "evstdhx";
+            break;
++        case 0x330:
++           // evstwhex (Vector Store Word of Two Half Words from Even Indexed, SPEPEM p5-235)
++           alignment = 4;
++           insn = "evstwhex";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rS_addr, rA_addr, rB_addr );
+-        assign( EA, ea_rAor0_idxd( rA_addr, rB_addr ) );
++        assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+-      if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325) {
+-        disp = 8 * uimm;
++      if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325 || opc2 == 0x331) {
+         switch (opc2) {
+         case 0x321:
+            // evstdd (Vector Store Double of Double, SPEPEM p5-228)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evstdd";
+            break;
+         case 0x323:
+            // evstdw (Vector Store Double of Two Words, SPEPEM p5-232)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evstdw";
+            break;
+         case 0x325:
+            // evstdh (Vector Store Double of Four Half Words, SPEPEM p5-230)
++           disp = 8 * uimm;
++           alignment = 8;
+            insn = "evstdh";
+            break;
++        case 0x331:
++           // evstwhe (Vector Store Word of Two Half Words from Even, SPEPEM p5-234)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evstwhe";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rS_addr, disp, rA_addr );
+-        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), 8 ) );
++        assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+       }
+ 
+-      assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
+-      assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
+-      assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
+-      assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
++      switch (opc2) {
++      case 0x320: /* evstddx */
++      case 0x321: /* evstdd  */
+ 
+-      assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
+-      assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         storeBE( mkexpr( ea0 ), mkexpr( rS ) );
++         break;
+ 
+-      if (opc2 == 0x324 /* evstdhx */ ||
+-          opc2 == 0x325 /* evstdh  */) {
++      case 0x322: /* evstdwx */
++      case 0x323: /* evstdw  */
+ 
+-        assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
+-        assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
+-        assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
+-        assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
+ 
+-        storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
+-        storeBE( mkexpr( ea2 ), mkexpr( rSUL ) );
+-        storeBE( mkexpr( ea4 ), mkexpr( rSLU ) );
+-        storeBE( mkexpr( ea6 ), mkexpr( rSLL ) );
+-      }
+-      if (opc2 == 0x322 /* evstdwx */ ||
+-          opc2 == 0x323 /* evstdw  */) {
+-        storeBE( mkexpr( ea0 ), mkexpr( rSU ) );
+-        storeBE( mkexpr( ea4 ), mkexpr( rSL ) );
+-      }
+-      if (opc2 == 0x320 /* evstddx */ ||
+-          opc2 == 0x321 /* evstdd  */) {
+-        storeBE( mkexpr( ea0 ), mkexpr( rS ) );
++         assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++         assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++
++         storeBE( mkexpr( ea0 ), mkexpr( rSU ) );
++         storeBE( mkexpr( ea4 ), mkexpr( rSL ) );
++         break;
++
++      case 0x324: /* evstdhx */
++      case 0x325: /* evstdh  */
++
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
++         assign( ea4, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 4 ) ) ) );
++         assign( ea6, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 6 ) ) ) );
++
++         assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++         assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++
++         assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
++         assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
++         assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
++         assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
++
++         storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
++         storeBE( mkexpr( ea2 ), mkexpr( rSUL ) );
++         storeBE( mkexpr( ea4 ), mkexpr( rSLU ) );
++         storeBE( mkexpr( ea6 ), mkexpr( rSLL ) );
++         break;
++
++      case 0x330: /* evstwhex */
++      case 0x331: /* evstwhe */
++
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
++
++         assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++         assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++
++         assign ( rSUU, unop( Iop_32HIto16, mkexpr ( rSU ) ) );
++         assign ( rSLU, unop( Iop_32HIto16, mkexpr ( rSL ) ) );
++
++         storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
++         storeBE( mkexpr( ea2 ), mkexpr( rSLU ) );
++         break;
+       }
+-      break;
+    }
+-
+    return True;
+ }
+ 
+@@ -17929,6 +18020,8 @@ DisResult disInstr_PPC_WRK (
+       case 0x303: // evldw
+       case 0x304: // evldhx
+       case 0x305: // evldh
++      case 0x310: // evlwhex
++      case 0x311: // evlwhe
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
+@@ -17938,6 +18031,8 @@ DisResult disInstr_PPC_WRK (
+       case 0x323: // evstdw
+       case 0x324: // evstdhx
+       case 0x325: // evstdh
++      case 0x330: // evstwhex
++      case 0x331: // evstwhe
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 8b86951..537f47e 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -1926,6 +1926,185 @@ int evstdwx_asm(void)
+ }
+ TEST_SPE_DECL(evstdwx_asm, "evstdwx");
+ 
++int evlwhe_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1u32);
++
++#define EVLWHE(index)                                                                      \
++  asm volatile ("evlwhe %[v], " #index " *4(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == EHW(rA1u32[index]));                                                    \
++  VERIFY(vec[1] == 0x0);                                                                   \
++  VERIFY(vec[2] == OHW(rA1u32[index]));                                                    \
++  VERIFY(vec[3] == 0x0);
++
++  EVLWHE(0);
++  EVLWHE(1);
++  EVLWHE(2);
++  EVLWHE(3);
++  EVLWHE(4);
++  EVLWHE(5);
++  EVLWHE(6);
++  EVLWHE(7);
++  EVLWHE(8);
++  EVLWHE(9);
++  EVLWHE(10);
++  EVLWHE(11);
++  EVLWHE(12);
++  EVLWHE(13);
++  EVLWHE(14);
++  EVLWHE(15);
++  EVLWHE(16);
++  EVLWHE(17);
++  EVLWHE(18);
++  EVLWHE(19);
++  EVLWHE(20);
++  EVLWHE(21);
++  EVLWHE(22);
++  EVLWHE(23);
++  EVLWHE(24);
++  EVLWHE(25);
++  EVLWHE(26);
++  EVLWHE(27);
++  EVLWHE(28);
++  EVLWHE(29);
++  EVLWHE(30);
++  EVLWHE(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhe_asm, "evlwhe");
++
++int evstwhe_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register void *dst_base   asm ("29");
++  register __ev64_u16__ vec asm ("30");
++
++  int i;
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY(dst_base == rD1u32);
++
++#define EVSTWHE(index, hw0, hw1, hw2, hw3)                                                 \
++  vec = (__ev64_u16__) { (hw0), (hw1), (hw2), (hw3) };                                     \
++  asm volatile ("evstwhe %[v], " #index "*4(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY(vec[0] == EHW(rD1u32[index]));                                                     \
++  VERIFY(vec[2] == OHW(rD1u32[index]));
++
++  EVSTWHE(0,  0x3692, 0x6563, 0xad67, 0x6afe);
++  EVSTWHE(1,  0x5d8a, 0xccc1, 0xf781, 0x0917);
++  EVSTWHE(2,  0x3876, 0x5237, 0x6cc8, 0xbf80);
++  EVSTWHE(3,  0x6b15, 0x70dd, 0x7a01, 0x77a9);
++  EVSTWHE(4,  0xb60d, 0x2246, 0xe3aa, 0xa25d);
++  EVSTWHE(5,  0x972e, 0x2fbe, 0xafb0, 0x92bc);
++  EVSTWHE(6,  0xc1d0, 0x36ed, 0x7aa2, 0xf138);
++  EVSTWHE(7,  0x224d, 0xa786, 0x4235, 0x2245);
++  EVSTWHE(8,  0x124a, 0x7cac, 0x2c93, 0x557d);
++  EVSTWHE(9,  0x1bf2, 0x16ac, 0xf2d7, 0x767e);
++  EVSTWHE(10, 0x46af, 0xfb4c, 0x9cc7, 0x5953);
++  EVSTWHE(11, 0xa929, 0xf136, 0x6d4f, 0x2418);
++  EVSTWHE(12, 0x15bf, 0x1b92, 0xfd43, 0xcfa2);
++  EVSTWHE(13, 0x91df, 0xdbf8, 0x05fb, 0x8ca1);
++  EVSTWHE(14, 0x16ff, 0x716e, 0xbf32, 0x836a);
++  EVSTWHE(15, 0x4383, 0x54b4, 0x3a6f, 0x6bf1);
++  EVSTWHE(16, 0xee79, 0x798c, 0x62a8, 0xaf96);
++  EVSTWHE(17, 0x061b, 0x5b9a, 0x7082, 0x4a1a);
++  EVSTWHE(18, 0x2cb5, 0x753f, 0x923a, 0x18ec);
++  EVSTWHE(19, 0xd8b2, 0xf1f4, 0x8228, 0x45fb);
++  EVSTWHE(20, 0x9ad2, 0x6ca5, 0x495a, 0x51fe);
++  EVSTWHE(21, 0x5e8c, 0xde1f, 0xcb0d, 0x326d);
++  EVSTWHE(22, 0xf141, 0x4d2e, 0x4df6, 0x17db);
++  EVSTWHE(23, 0xb4e7, 0x7fda, 0xfad9, 0x943a);
++  EVSTWHE(24, 0x1f50, 0xf115, 0x049c, 0xee4c);
++  EVSTWHE(25, 0x7416, 0x6f0e, 0x6dbf, 0xdca7);
++  EVSTWHE(26, 0x9ba0, 0x983c, 0x27a7, 0xb4a4);
++  EVSTWHE(27, 0x2d60, 0x532e, 0x1a82, 0xd6c9);
++  EVSTWHE(28, 0x049c, 0x6b9e, 0xad8d, 0x2a67);
++  EVSTWHE(29, 0x6651, 0x624d, 0xbad5, 0xb223);
++  EVSTWHE(30, 0xd66f, 0x735a, 0x44f8, 0xeb48);
++  EVSTWHE(31, 0xb684, 0x56d2, 0x792d, 0x8048);
++  memset (rD1u32, 0x0, 32 * sizeof (unsigned int));
++  for (i = 0; i < 32; i++)
++    VERIFY(rD1u32[i] == 0x0);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwhe_asm, "evstwhe");
++
++int evlwhex_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1u32[0]));
++    asm volatile ("evlwhex %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == EHW(rA1u32[i]));
++    VERIFY(vec[1] == 0x0);
++    VERIFY(vec[2] == OHW(rA1u32[i]));
++    VERIFY(vec[3] == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhex_asm, "evlwhex");
++
++int evstwhex_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u16__ vec asm ("28");
++  register int idx_src      asm ("27");
++  register int idx_dst      asm ("26");
++  register int i            asm ("25");
++
++  asm volatile ("lis %[b], rA4u16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA4u16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA4u16);
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx_src = i * sizeof (typeof(rA4u16[0]));
++    idx_dst = i * sizeof (typeof(rD1u32[0]));
++    asm volatile ("evldhx   %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx_src));
++    asm volatile ("evstwhex %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx_dst));
++    VERIFY(rA4u16[i][0] == EHW(rD1u32[i]));
++    VERIFY(rA4u16[i][2] == OHW(rD1u32[i]));
++  }
++  memset (rD1u32, 0x0, 64 * sizeof (typeof(rD1u32[0])));
++  for (i = 0; i < 64; i++)
++    VERIFY(rD1u32[i] == 0x0);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwhex_asm, "evstwhex");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -1981,6 +2160,10 @@ test_t spe_isa_load_store_test_table = {
+     F(evstdw_asm),
+     F(evldwx_asm),
+     F(evstdwx_asm),
++    F(evlwhe_asm),
++    F(evstwhe_asm),
++    F(evlwhex_asm),
++    F(evstwhex_asm),
+     NULL
+   }
+ };
+@@ -2079,3 +2262,4 @@ int main(void)
+ // 7. Code entire algorithms using SPE insns.
+ // 8. Convert all tests to using the data pools.
+ // 9. Make all format uniform. Esp, where you have asm ()'s.
++// 10. The VERIFY()'s after memset () are redundant.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index f035ea3..f292ca9 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2066)
++   by 0x........: main (test_spe.c:2249)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2066)
++   by 0x........: main (test_spe.c:2249)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2066)
++   by 0x........: main (test_spe.c:2249)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 7dab515..a9da258 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -26,6 +26,10 @@ SPE Regression Tests: PASS
+ ....evstdw: PASS
+ ....evldwx: PASS
+ ....evstdwx: PASS
++....evlwhe: PASS
++....evstwhe: PASS
++....evlwhex: PASS
++....evstwhex: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 6ac9209..282ab77 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 66 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  1717 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  8421 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  2276 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  8979 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  6982 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 13711 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 11520 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 18187 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 28955 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  3287 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  1963 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  8650 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0016-Implement-SPE-Instructions-evlwhos-evlwhosx-evlwhou-.patch b/recipes-devtools/valgrind/files/0016-Implement-SPE-Instructions-evlwhos-evlwhosx-evlwhou-.patch
new file mode 100644
index 0000000..715922d
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0016-Implement-SPE-Instructions-evlwhos-evlwhosx-evlwhou-.patch
@@ -0,0 +1,618 @@
+From 63cc3e422e880b0844494e78e97be3a6cb046600 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 1 Feb 2013 14:50:25 -0800
+Subject: [PATCH 16/65] Implement SPE Instructions: { evlwhos, evlwhosx, evlwhou, evlwhoux, evstwho, evstwhox }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   99 +++++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  267 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    3 +
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    6 +
+ regtest-power7-64.log                    |   16 +-
+ 6 files changed, 382 insertions(+), 15 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index a7942f3..e5532fa 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11687,7 +11687,9 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    switch (opc2) {
+    case 0x300 ... 0x305:
+    case 0x310 ... 0x311:
+-      if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304 || opc2 == 0x310) {
++   case 0x314 ... 0x317:
++      if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304 ||
++          opc2 == 0x310 || opc2 == 0x314 || opc2 == 0x316) {
+         switch (opc2) {
+         case 0x300:
+            // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
+@@ -11709,11 +11711,22 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 4;
+            insn = "evlwhex";
+            break;
++        case 0x314:
++           // evlwhoux (Vector Load Word into Two Half Words Odd Unsigned Indexed (zero-extended), SPEPEM p5-129)
++           alignment = 4;
++           insn = "evlwhoux";
++           break;
++        case 0x316:
++           // evlwhosx (Vector Load Word into Two Half Words Odd Signed Indexed (with sign extension), SPEPEM p5-127)
++           alignment = 4;
++           insn = "evlwhosx";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rD_addr, rA_addr, rB_addr );
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+-      if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305 || opc2 == 0x311) {
++      if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305 ||
++          opc2 == 0x311 || opc2 == 0x315 || opc2 == 0x317) {
+         switch (opc2) {
+         case 0x301:
+            // evldd (Vector Load Double of Double, SPEPEM p5-112)
+@@ -11739,6 +11752,18 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 4;
+            insn = "evlwhe";
+            break;
++        case 0x315:
++           // evlwhou (Vector Load Word into Two Half Words Off Unsigned (zero-extended), p5-128)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evlwhou";
++           break;
++        case 0x317:
++           // evlwhos (Vector Load Word into Two Half Words Odd Signed (with sign-extension), p5-126)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evlwhos";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rD_addr, disp, rA_addr );
+         assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+@@ -11800,6 +11825,37 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+ 
+          assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
+          break;
++      case 0x315: /* evlwhou  */
++      case 0x314: /* evlwhoux */
++
++         assign( ehwu, mkU16( 0x0 ) );
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ehwl, mkU16( 0x0 ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
++      case 0x317: // evlwhos  */
++      case 0x316: /* evlwhosx */
++
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++
++         assign( wu, unop ( Iop_16Sto32, mkexpr ( ohwu ) ) );
++         assign( wl, unop ( Iop_16Sto32, mkexpr ( ohwl ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
+       }
+ 
+       putSPEReg( rD_addr, mkexpr ( rD ) );
+@@ -11852,7 +11908,9 @@ static Bool dis_spe_store ( UInt theInstr )
+    switch (opc2) {
+    case 0x320 ... 0x325:
+    case 0x330 ... 0x331:
+-      if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324 || opc2 == 0x330) {
++   case 0x334 ... 0x335:
++      if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324 ||
++          opc2 == 0x330 || opc2 == 0x334) {
+         switch (opc2) {
+         case 0x320:
+            // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
+@@ -11874,11 +11932,17 @@ static Bool dis_spe_store ( UInt theInstr )
+            alignment = 4;
+            insn = "evstwhex";
+            break;
++        case 0x334:
++           // evstwhox (Vector Store Word of Two Half Words from Odd Indexed, SPEPEM p5-237)
++           alignment = 4;
++           insn = "evstwhox";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rS_addr, rA_addr, rB_addr );
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+-      if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325 || opc2 == 0x331) {
++      if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325 ||
++          opc2 == 0x331 || opc2 == 0x335) {
+         switch (opc2) {
+         case 0x321:
+            // evstdd (Vector Store Double of Double, SPEPEM p5-228)
+@@ -11904,6 +11968,12 @@ static Bool dis_spe_store ( UInt theInstr )
+            alignment = 4;
+            insn = "evstwhe";
+            break;
++        case 0x335:
++           // evstwho (Vector Store Word of Two Half Words from Odd, SPEPEM 5-236)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evstwho";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rS_addr, disp, rA_addr );
+         assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+@@ -11967,6 +12037,21 @@ static Bool dis_spe_store ( UInt theInstr )
+          storeBE( mkexpr( ea0 ), mkexpr( rSUU ) );
+          storeBE( mkexpr( ea2 ), mkexpr( rSLU ) );
+          break;
++      case 0x334: /* evstwhox */
++      case 0x335: /* evstwho  */
++
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign( ea2, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 2 ) ) ) );
++
++         assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++         assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++
++         assign ( rSUL, unop( Iop_32to16,   mkexpr ( rSU ) ) );
++         assign ( rSLL, unop( Iop_32to16,   mkexpr ( rSL ) ) );
++
++         storeBE( mkexpr( ea0 ), mkexpr( rSUL ) );
++         storeBE( mkexpr( ea2 ), mkexpr( rSLL ) );
++         break;
+       }
+    }
+    return True;
+@@ -18022,6 +18107,10 @@ DisResult disInstr_PPC_WRK (
+       case 0x305: // evldh
+       case 0x310: // evlwhex
+       case 0x311: // evlwhe
++      case 0x314: // evlwhoux
++      case 0x315: // evlwhou
++      case 0x316: // evlwhosx
++      case 0x317: // evlwhos
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
+@@ -18033,6 +18122,8 @@ DisResult disInstr_PPC_WRK (
+       case 0x325: // evstdh
+       case 0x330: // evstwhex
+       case 0x331: // evstwhe
++      case 0x334: // evstwhox
++      case 0x335: // evstwho
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 537f47e..430d82a 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2105,6 +2105,267 @@ int evstwhex_asm(void)
+ }
+ TEST_SPE_DECL(evstwhex_asm, "evstwhex");
+ 
++int evlwhos_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29"); // Why does this test fail if we use __ev64_s16__?
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1u32);
++
++#define EVLWHOS(index)                                                                      \
++  asm volatile ("evlwhos %[v], " #index " *4(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == ((MSB_HW(EHW(rA1u32[index])) == 0x1) ? 0xffff : 0x0000));                \
++  VERIFY(vec[1] == EHW(rA1u32[index]));                                                     \
++  VERIFY(vec[2] == ((MSB_HW(OHW(rA1u32[index])) == 0x1) ? 0xffff : 0x0000));                \
++  VERIFY(vec[3] == OHW(rA1u32[index]));
++
++  EVLWHOS(0);
++  EVLWHOS(1);
++  EVLWHOS(2);
++  EVLWHOS(3);
++  EVLWHOS(4);
++  EVLWHOS(5);
++  EVLWHOS(6);
++  EVLWHOS(7);
++  EVLWHOS(8);
++  EVLWHOS(9);
++  EVLWHOS(10);
++  EVLWHOS(11);
++  EVLWHOS(12);
++  EVLWHOS(13);
++  EVLWHOS(14);
++  EVLWHOS(15);
++  EVLWHOS(16);
++  EVLWHOS(17);
++  EVLWHOS(18);
++  EVLWHOS(19);
++  EVLWHOS(20);
++  EVLWHOS(21);
++  EVLWHOS(22);
++  EVLWHOS(23);
++  EVLWHOS(24);
++  EVLWHOS(25);
++  EVLWHOS(26);
++  EVLWHOS(27);
++  EVLWHOS(28);
++  EVLWHOS(29);
++  EVLWHOS(30);
++  EVLWHOS(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhos_asm, "evlwhos");
++
++int evlwhosx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29"); // Why does this test fail if we use __ev64_s16__?
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1u32[0]));
++    asm volatile ("evlwhosx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == ((MSB_HW(EHW(rA1u32[i])) == 0x1) ? 0xffff : 0x0000));
++    VERIFY(vec[1] == EHW(rA1u32[i]));
++    VERIFY(vec[2] == ((MSB_HW(OHW(rA1u32[i])) == 0x1) ? 0xffff : 0x0000));
++    VERIFY(vec[3] == OHW(rA1u32[i]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhosx_asm, "evlwhosx");
++
++int evlwhou_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1u32);
++
++#define EVLWHOU(index)                                                                      \
++  asm volatile ("evlwhou %[v], " #index " *4(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == 0x0000);                                                                 \
++  VERIFY(vec[1] == EHW(rA1u32[index]));                                                     \
++  VERIFY(vec[2] == 0x0000);                                                                 \
++  VERIFY(vec[3] == OHW(rA1u32[index]));
++
++  EVLWHOU(0);
++  EVLWHOU(1);
++  EVLWHOU(2);
++  EVLWHOU(3);
++  EVLWHOU(4);
++  EVLWHOU(5);
++  EVLWHOU(6);
++  EVLWHOU(7);
++  EVLWHOU(8);
++  EVLWHOU(9);
++  EVLWHOU(10);
++  EVLWHOU(11);
++  EVLWHOU(12);
++  EVLWHOU(13);
++  EVLWHOU(14);
++  EVLWHOU(15);
++  EVLWHOU(16);
++  EVLWHOU(17);
++  EVLWHOU(18);
++  EVLWHOU(19);
++  EVLWHOU(20);
++  EVLWHOU(21);
++  EVLWHOU(22);
++  EVLWHOU(23);
++  EVLWHOU(24);
++  EVLWHOU(25);
++  EVLWHOU(26);
++  EVLWHOU(27);
++  EVLWHOU(28);
++  EVLWHOU(29);
++  EVLWHOU(30);
++  EVLWHOU(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhou_asm, "evlwhou");
++
++int evlwhoux_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1u32[0]));
++    asm volatile ("evlwhoux %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == 0x0000);
++    VERIFY(vec[1] == EHW(rA1u32[i]));
++    VERIFY(vec[2] == 0x0000);
++    VERIFY(vec[3] == OHW(rA1u32[i]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhoux_asm, "evlwhoux");
++
++int evstwho_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  register void *dst_base   asm ("29");
++  register __ev64_u16__ vec asm ("30");
++
++  int i;
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY(dst_base == rD1u32);
++
++#define EVSTWHO(index, hw0, hw1, hw2, hw3)                                                 \
++  vec = (__ev64_u16__) { (hw0), (hw1), (hw2), (hw3) };                                     \
++  asm volatile ("evstwho %[v], " #index "*4(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY(vec[1] == EHW(rD1u32[index]));                                                     \
++  VERIFY(vec[3] == OHW(rD1u32[index]));
++
++  EVSTWHO(0,  0x3692, 0x6563, 0xad67, 0x6afe);
++  EVSTWHO(1,  0x5d8a, 0xccc1, 0xf781, 0x0917);
++  EVSTWHO(2,  0x3876, 0x5237, 0x6cc8, 0xbf80);
++  EVSTWHO(3,  0x6b15, 0x70dd, 0x7a01, 0x77a9);
++  EVSTWHO(4,  0xb60d, 0x2246, 0xe3aa, 0xa25d);
++  EVSTWHO(5,  0x972e, 0x2fbe, 0xafb0, 0x92bc);
++  EVSTWHO(6,  0xc1d0, 0x36ed, 0x7aa2, 0xf138);
++  EVSTWHO(7,  0x224d, 0xa786, 0x4235, 0x2245);
++  EVSTWHO(8,  0x124a, 0x7cac, 0x2c93, 0x557d);
++  EVSTWHO(9,  0x1bf2, 0x16ac, 0xf2d7, 0x767e);
++  EVSTWHO(10, 0x46af, 0xfb4c, 0x9cc7, 0x5953);
++  EVSTWHO(11, 0xa929, 0xf136, 0x6d4f, 0x2418);
++  EVSTWHO(12, 0x15bf, 0x1b92, 0xfd43, 0xcfa2);
++  EVSTWHO(13, 0x91df, 0xdbf8, 0x05fb, 0x8ca1);
++  EVSTWHO(14, 0x16ff, 0x716e, 0xbf32, 0x836a);
++  EVSTWHO(15, 0x4383, 0x54b4, 0x3a6f, 0x6bf1);
++  EVSTWHO(16, 0xee79, 0x798c, 0x62a8, 0xaf96);
++  EVSTWHO(17, 0x061b, 0x5b9a, 0x7082, 0x4a1a);
++  EVSTWHO(18, 0x2cb5, 0x753f, 0x923a, 0x18ec);
++  EVSTWHO(19, 0xd8b2, 0xf1f4, 0x8228, 0x45fb);
++  EVSTWHO(20, 0x9ad2, 0x6ca5, 0x495a, 0x51fe);
++  EVSTWHO(21, 0x5e8c, 0xde1f, 0xcb0d, 0x326d);
++  EVSTWHO(22, 0xf141, 0x4d2e, 0x4df6, 0x17db);
++  EVSTWHO(23, 0xb4e7, 0x7fda, 0xfad9, 0x943a);
++  EVSTWHO(24, 0x1f50, 0xf115, 0x049c, 0xee4c);
++  EVSTWHO(25, 0x7416, 0x6f0e, 0x6dbf, 0xdca7);
++  EVSTWHO(26, 0x9ba0, 0x983c, 0x27a7, 0xb4a4);
++  EVSTWHO(27, 0x2d60, 0x532e, 0x1a82, 0xd6c9);
++  EVSTWHO(28, 0x049c, 0x6b9e, 0xad8d, 0x2a67);
++  EVSTWHO(29, 0x6651, 0x624d, 0xbad5, 0xb223);
++  EVSTWHO(30, 0xd66f, 0x735a, 0x44f8, 0xeb48);
++  EVSTWHO(31, 0xb684, 0x56d2, 0x792d, 0x8048);
++  memset (rD1u32, 0x0, 32 * sizeof (unsigned int));
++  for (i = 0; i < 32; i++)
++    VERIFY(rD1u32[i] == 0x0);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwho_asm, "evstwho");
++
++int evstwhox_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u16__ vec asm ("28");
++  register int idx_src      asm ("27");
++  register int idx_dst      asm ("26");
++  register int i            asm ("25");
++
++  asm volatile ("lis %[b], rA4u16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA4u16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA4u16);
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx_src = i * sizeof (typeof(rA4u16[0]));
++    idx_dst = i * sizeof (typeof(rD1u32[0]));
++    asm volatile ("evldhx   %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx_src));
++    asm volatile ("evstwhox %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx_dst));
++    VERIFY(rA4u16[i][1] == EHW(rD1u32[i]));
++    VERIFY(rA4u16[i][3] == OHW(rD1u32[i]));
++  }
++  memset (rD1u32, 0x0, 64 * sizeof (typeof(rD1u32[0])));
++  for (i = 0; i < 64; i++)
++    VERIFY(rD1u32[i] == 0x0);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwhox_asm, "evstwhox");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -2164,6 +2425,12 @@ test_t spe_isa_load_store_test_table = {
+     F(evstwhe_asm),
+     F(evlwhex_asm),
+     F(evstwhex_asm),
++    F(evlwhos_asm),
++    F(evlwhosx_asm),
++    F(evlwhou_asm),
++    F(evlwhoux_asm),
++    F(evstwho_asm),
++    F(evstwhox_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 8bbfa35..89134bd 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4623,3 +4623,6 @@ unsigned int rD1u32[NELTS(rA1u32)];
+ 
+ // Odd Half Word
+ #define OHW(n) ((n) & 0xffff)
++
++// Most Significant Bit of Half Word
++#define MSB_HW(n) (((n) & 0x8000) >> 15)
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index f292ca9..aa07c0c 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2249)
++   by 0x........: main (test_spe.c:2516)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2249)
++   by 0x........: main (test_spe.c:2516)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2249)
++   by 0x........: main (test_spe.c:2516)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index a9da258..0741a40 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -30,6 +30,12 @@ SPE Regression Tests: PASS
+ ....evstwhe: PASS
+ ....evlwhex: PASS
+ ....evstwhex: PASS
++....evlwhos: PASS
++....evlwhosx: PASS
++....evlwhou: PASS
++....evlwhoux: PASS
++....evstwho: PASS
++....evstwhox: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 282ab77..a285fb4 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  8421 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  6251 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  8979 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  6811 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 13711 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 11552 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 18187 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 16025 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  3287 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  1044 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  8650 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  6521 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0017-Cleanup-evstdd_asm.patch b/recipes-devtools/valgrind/files/0017-Cleanup-evstdd_asm.patch
new file mode 100644
index 0000000..0cb20ef
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0017-Cleanup-evstdd_asm.patch
@@ -0,0 +1,305 @@
+From d3a1ebdb57c88006653592f4109fc0a19afdcd1b Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 1 Feb 2013 18:27:32 -0800
+Subject: [PATCH 17/65] Cleanup evstdd_asm ().
+
+---
+ memcheck/tests/ppc32/test_spe.c          |  166 +++++++-----------------------
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ regtest-power7-64.log                    |   16 ++--
+ 3 files changed, 49 insertions(+), 139 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 430d82a..4030241 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -142,133 +142,43 @@ int evstdd_asm(void)
+   asm volatile ("lis %[b], evstdd_asm_dst at ha" : [b] "=r" (dst_base));
+   asm volatile ("addic %[bd], %[bs], evstdd_asm_dst at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
+ 
+-  vec = (__ev64_u32__) { 0xd5e80d24, 0xcd019f8f };
+-  asm volatile ("evstdd %[v], 0*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[0][0] == 0xd5e80d24 && evstdd_asm_dst[0][1] == 0xcd019f8f);
+-
+-  vec = (__ev64_u32__) { 0xa2710780, 0x3e50576e };
+-  asm volatile ("evstdd %[v], 1*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[1][0] == 0xa2710780 && evstdd_asm_dst[1][1] == 0x3e50576e);
+-
+-  vec = (__ev64_u32__) { 0x9fc90cb6, 0xa784453e };
+-  asm volatile ("evstdd %[v], 2*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[2][0] == 0x9fc90cb6 && evstdd_asm_dst[2][1] == 0xa784453e);
+-
+-  vec = (__ev64_u32__) { 0xe71596a2, 0x573a90f3 };
+-  asm volatile ("evstdd %[v], 3*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[3][0] == 0xe71596a2 && evstdd_asm_dst[3][1] == 0x573a90f3);
+-
+-  vec = (__ev64_u32__) { 0xafe1fca6, 0x2625d451 };
+-  asm volatile ("evstdd %[v], 4*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[4][0] == 0xafe1fca6 && evstdd_asm_dst[4][1] == 0x2625d451);
+-
+-  vec = (__ev64_u32__) { 0xd2b9f988, 0x2b819222 };
+-  asm volatile ("evstdd %[v], 5*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[5][0] == 0xd2b9f988 && evstdd_asm_dst[5][1] == 0x2b819222);
+-
+-  vec = (__ev64_u32__) { 0x309c9019, 0x38e11c55 };
+-  asm volatile ("evstdd %[v], 6*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[6][0] == 0x309c9019 && evstdd_asm_dst[6][1] == 0x38e11c55);
+-
+-  vec = (__ev64_u32__) { 0xf8cd97ec, 0xf4c3a9fb };
+-  asm volatile ("evstdd %[v], 7*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[7][0] == 0xf8cd97ec && evstdd_asm_dst[7][1] == 0xf4c3a9fb);
+-
+-  vec = (__ev64_u32__) { 0xee7c08d6, 0x7ed67555 };
+-  asm volatile ("evstdd %[v], 8*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[8][0] == 0xee7c08d6 && evstdd_asm_dst[8][1] == 0x7ed67555);
+-
+-  vec = (__ev64_u32__) { 0xb81617a4, 0xed28fe61 };
+-  asm volatile ("evstdd %[v], 9*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[9][0] == 0xb81617a4 && evstdd_asm_dst[9][1] == 0xed28fe61);
+-
+-  vec = (__ev64_u32__) { 0xe6e838d8, 0xe798ed70 };
+-  asm volatile ("evstdd %[v], 10*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[10][0] == 0xe6e838d8 && evstdd_asm_dst[10][1] == 0xe798ed70);
+-
+-  vec = (__ev64_u32__) { 0xb462fcf2, 0xeb2280b5 };
+-  asm volatile ("evstdd %[v], 11*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[11][0] == 0xb462fcf2 && evstdd_asm_dst[11][1] == 0xeb2280b5);
+-
+-  vec = (__ev64_u32__) { 0x9278e4a8, 0x9c4cd3b7 };
+-  asm volatile ("evstdd %[v], 12*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[12][0] == 0x9278e4a8 && evstdd_asm_dst[12][1] == 0x9c4cd3b7);
+-
+-  vec = (__ev64_u32__) { 0xdf804478, 0x5c77d6bc };
+-  asm volatile ("evstdd %[v], 13*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[13][0] == 0xdf804478 && evstdd_asm_dst[13][1] == 0x5c77d6bc);
+-
+-  vec = (__ev64_u32__) { 0x2f2899f9, 0x39a4c433 };
+-  asm volatile ("evstdd %[v], 14*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[14][0] == 0x2f2899f9 && evstdd_asm_dst[14][1] == 0x39a4c433);
+-
+-  vec = (__ev64_u32__) { 0xf3c64145, 0xa9e111d4 };
+-  asm volatile ("evstdd %[v], 15*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[15][0] == 0xf3c64145 && evstdd_asm_dst[15][1] == 0xa9e111d4);
+-
+-  vec = (__ev64_u32__) { 0xfa6c19f8, 0xea17d96f };
+-  asm volatile ("evstdd %[v], 16*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[16][0] == 0xfa6c19f8 && evstdd_asm_dst[16][1] == 0xea17d96f);
+-
+-  vec = (__ev64_u32__) { 0x9ecc98f6, 0x8e7a368a };
+-  asm volatile ("evstdd %[v], 17*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[17][0] == 0x9ecc98f6 && evstdd_asm_dst[17][1] == 0x8e7a368a);
+-
+-  vec = (__ev64_u32__) { 0x0cc06b83, 0x4108be2f };
+-  asm volatile ("evstdd %[v], 18*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[18][0] == 0x0cc06b83 && evstdd_asm_dst[18][1] == 0x4108be2f);
+-
+-  vec = (__ev64_u32__) { 0x6fa49893, 0xe7f9a50d };
+-  asm volatile ("evstdd %[v], 19*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[19][0] == 0x6fa49893 && evstdd_asm_dst[19][1] == 0xe7f9a50d);
+-
+-  vec = (__ev64_u32__) { 0xb9e590af, 0x54c3f09e };
+-  asm volatile ("evstdd %[v], 20*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[20][0] == 0xb9e590af && evstdd_asm_dst[20][1] == 0x54c3f09e);
+-
+-  vec = (__ev64_u32__) { 0xc0f9f024, 0x175c9d12 };
+-  asm volatile ("evstdd %[v], 21*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[21][0] == 0xc0f9f024 && evstdd_asm_dst[21][1] == 0x175c9d12);
+-
+-  vec = (__ev64_u32__) { 0x28d55d51, 0xa5ba8569 };
+-  asm volatile ("evstdd %[v], 22*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[22][0] == 0x28d55d51 && evstdd_asm_dst[22][1] == 0xa5ba8569);
+-
+-  vec = (__ev64_u32__) { 0x68b2f5d6, 0x6f6db375 };
+-  asm volatile ("evstdd %[v], 23*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[23][0] == 0x68b2f5d6 && evstdd_asm_dst[23][1] == 0x6f6db375);
+-
+-  vec = (__ev64_u32__) { 0xe21eada1, 0xca51865f };
+-  asm volatile ("evstdd %[v], 24*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[24][0] == 0xe21eada1 && evstdd_asm_dst[24][1] == 0xca51865f);
+-
+-  vec = (__ev64_u32__) { 0xfc2a4ff3, 0x5a4d04ab };
+-  asm volatile ("evstdd %[v], 25*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[25][0] == 0xfc2a4ff3 && evstdd_asm_dst[25][1] == 0x5a4d04ab);
+-
+-  vec = (__ev64_u32__) { 0xaa41414a, 0x00a546e5 };
+-  asm volatile ("evstdd %[v], 26*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[26][0] == 0xaa41414a && evstdd_asm_dst[26][1] == 0x00a546e5);
+-
+-  vec = (__ev64_u32__) { 0x5da31deb, 0x9508aada };
+-  asm volatile ("evstdd %[v], 27*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[27][0] == 0x5da31deb && evstdd_asm_dst[27][1] == 0x9508aada);
+-
+-  vec = (__ev64_u32__) { 0x9bc2f7f5, 0x69ae0cc8 };
+-  asm volatile ("evstdd %[v], 28*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[28][0] == 0x9bc2f7f5 && evstdd_asm_dst[28][1] == 0x69ae0cc8);
+-
+-  vec = (__ev64_u32__) { 0xa2037d9f, 0x1a57cd53 };
+-  asm volatile ("evstdd %[v], 29*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[29][0] == 0xa2037d9f && evstdd_asm_dst[29][1] == 0x1a57cd53);
+-
+-  vec = (__ev64_u32__) { 0x15db13bb, 0x64dc655a };
+-  asm volatile ("evstdd %[v], 30*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[30][0] == 0x15db13bb && evstdd_asm_dst[30][1] == 0x64dc655a);
+-
+-  vec = (__ev64_u32__) { 0x98d2685f, 0x1a6f9ad8 };
+-  asm volatile ("evstdd %[v], 31*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base));
+-  VERIFY (evstdd_asm_dst[31][0] == 0x98d2685f && evstdd_asm_dst[31][1] == 0x1a6f9ad8);
++#define EVSTDD(index, hw, lw)                                                             \
++  vec = (__ev64_u32__) { (hw), (lw) };                                                    \
++  asm volatile ("evstdd %[v], " #index "*8(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY (evstdd_asm_dst[index][0] == (hw) && evstdd_asm_dst[index][1] == (lw));
++
++  EVSTDD(0,  0xd5e80d24, 0xcd019f8f);
++  EVSTDD(1,  0xa2710780, 0x3e50576e);
++  EVSTDD(2,  0x9fc90cb6, 0xa784453e);
++  EVSTDD(3,  0xe71596a2, 0x573a90f3);
++  EVSTDD(4,  0xafe1fca6, 0x2625d451);
++  EVSTDD(5,  0xd2b9f988, 0x2b819222);
++  EVSTDD(6,  0x309c9019, 0x38e11c55);
++  EVSTDD(7,  0xf8cd97ec, 0xf4c3a9fb);
++  EVSTDD(8,  0xee7c08d6, 0x7ed67555);
++  EVSTDD(9,  0xb81617a4, 0xed28fe61);
++  EVSTDD(10, 0xe6e838d8, 0xe798ed70);
++  EVSTDD(11, 0xb462fcf2, 0xeb2280b5);
++  EVSTDD(12, 0x9278e4a8, 0x9c4cd3b7);
++  EVSTDD(13, 0xdf804478, 0x5c77d6bc);
++  EVSTDD(14, 0x2f2899f9, 0x39a4c433);
++  EVSTDD(15, 0xf3c64145, 0xa9e111d4);
++  EVSTDD(16, 0xfa6c19f8, 0xea17d96f);
++  EVSTDD(17, 0x9ecc98f6, 0x8e7a368a);
++  EVSTDD(18, 0x0cc06b83, 0x4108be2f);
++  EVSTDD(19, 0x6fa49893, 0xe7f9a50d);
++  EVSTDD(10, 0xb9e590af, 0x54c3f09e);
++  EVSTDD(21, 0xc0f9f024, 0x175c9d12);
++  EVSTDD(22, 0x28d55d51, 0xa5ba8569);
++  EVSTDD(23, 0x68b2f5d6, 0x6f6db375);
++  EVSTDD(24, 0xe21eada1, 0xca51865f);
++  EVSTDD(25, 0xfc2a4ff3, 0x5a4d04ab);
++  EVSTDD(26, 0xaa41414a, 0x00a546e5);
++  EVSTDD(27, 0x5da31deb, 0x9508aada);
++  EVSTDD(28, 0x9bc2f7f5, 0x69ae0cc8);
++  EVSTDD(29, 0xa2037d9f, 0x1a57cd53);
++  EVSTDD(30, 0x15db13bb, 0x64dc655a);
++  EVSTDD(31, 0x98d2685f, 0x1a6f9ad8);
+ #endif // __SPE__
+   return failures;
+ }
+@@ -2522,7 +2432,7 @@ int main(void)
+ // 0. Add extensive tests for printf ()-family functions with varied format.
+ // 1. Make VERIFY() a variadic function, parametrized with the local paramters in addition to __LINE__.
+ // 2. Make a data header file per test and include those throughout the code where you have those blobs of 0x's.
+-// 3. Cleanup evstdd_asm (); like macroise like evstdh_asm ()
++// 3. (Done) Cleanup evstdd_asm (); macro-ise like evstdh_asm ()
+ // 4. Add support to measure time (add clock per test) - standalone and under valgrind.
+ // 5. The memset(a) and VERIFY(a == {0x0}) pattern ought to be abstracted into it's own function.
+ // 6. Add intrinsic based tests.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index aa07c0c..bff9fae 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2516)
++   by 0x........: main (test_spe.c:2426)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2516)
++   by 0x........: main (test_spe.c:2426)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2516)
++   by 0x........: main (test_spe.c:2426)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index a285fb4..cc5d5ca 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  6251 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 23456 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  6811 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 24015 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 11552 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 28723 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16025 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:   751 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  1044 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18356 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  6521 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 23704 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0018-Implement-SPE-Instructions-evstwwe-evstwwex-evstwwo-.patch b/recipes-devtools/valgrind/files/0018-Implement-SPE-Instructions-evstwwe-evstwwex-evstwwo-.patch
new file mode 100644
index 0000000..c979d41
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0018-Implement-SPE-Instructions-evstwwe-evstwwex-evstwwo-.patch
@@ -0,0 +1,421 @@
+From 42ca8467a3c4274a45a13425f868c28feb8b1a2b Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Sat, 2 Feb 2013 12:28:47 -0800
+Subject: [PATCH 18/65] Implement SPE Instructions: { evstwwe, evstwwex, evstwwo, evstwwox }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   48 ++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  173 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   14 ++--
+ 5 files changed, 232 insertions(+), 13 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index e5532fa..f87acae 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11909,8 +11909,11 @@ static Bool dis_spe_store ( UInt theInstr )
+    case 0x320 ... 0x325:
+    case 0x330 ... 0x331:
+    case 0x334 ... 0x335:
++   case 0x338 ... 0x339:
++   case 0x33c ... 0x33d:
+       if (opc2 == 0x320 || opc2 == 0x322 || opc2 == 0x324 ||
+-          opc2 == 0x330 || opc2 == 0x334) {
++          opc2 == 0x330 || opc2 == 0x334 || opc2 == 0x338 ||
++          opc2 == 0x33c) {
+         switch (opc2) {
+         case 0x320:
+            // evstddx (Vector Store Double of Double Indexed, SPEPEM p5-229)
+@@ -11937,12 +11940,23 @@ static Bool dis_spe_store ( UInt theInstr )
+            alignment = 4;
+            insn = "evstwhox";
+            break;
++        case 0x338:
++           // evstwwex (Vector Store Word of Word from Even Indexed, SPEPEM p5-239)
++           alignment = 4;
++           insn = "evstwwex";
++           break;
++        case 0x33c:
++           // evstwwox (Vector Store Word of Word from Odd Indexed, SPEPEM p5-241)
++           alignment = 4;
++           insn = "evstwwox";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rS_addr, rA_addr, rB_addr );
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+       if (opc2 == 0x321 || opc2 == 0x323 || opc2 == 0x325 ||
+-          opc2 == 0x331 || opc2 == 0x335) {
++          opc2 == 0x331 || opc2 == 0x335 || opc2 == 0x339 ||
++          opc2 == 0x33d) {
+         switch (opc2) {
+         case 0x321:
+            // evstdd (Vector Store Double of Double, SPEPEM p5-228)
+@@ -11969,11 +11983,23 @@ static Bool dis_spe_store ( UInt theInstr )
+            insn = "evstwhe";
+            break;
+         case 0x335:
+-           // evstwho (Vector Store Word of Two Half Words from Odd, SPEPEM 5-236)
++           // evstwho (Vector Store Word of Two Half Words from Odd, SPEPEM p5-236)
+            disp = 4 * uimm;
+            alignment = 4;
+            insn = "evstwho";
+            break;
++        case 0x339:
++           // evstwwe (Vector Store Word of Two Half Words from Even, SPEPEM p5-238)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evstwwe";
++           break;
++        case 0x33d:
++           // evstwwo (Vector Store Word of Two Half Words from Odd, SPEPEM p5-240)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evstwwo";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rS_addr, disp, rA_addr );
+         assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+@@ -12052,6 +12078,18 @@ static Bool dis_spe_store ( UInt theInstr )
+          storeBE( mkexpr( ea0 ), mkexpr( rSUL ) );
+          storeBE( mkexpr( ea2 ), mkexpr( rSLL ) );
+          break;
++      case 0x338: /* evstwwex */
++      case 0x339: /* evstwwe  */
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign ( rSU, unop( Iop_64HIto32, mkexpr ( rS ) ) );
++         storeBE( mkexpr( ea0 ), mkexpr( rSU ) );
++         break;
++      case 0x33c: /* evstwwox */
++      case 0x33d: /* evstwwo  */
++         assign( ea0, (binop( mkSzOp( Ity_I32, Iop_Add8 ), mkexpr( EA ), mkU32 ( 0 ) ) ) );
++         assign ( rSL, unop( Iop_64to32,   mkexpr ( rS ) ) );
++         storeBE( mkexpr( ea0 ), mkexpr( rSL ) );
++         break;
+       }
+    }
+    return True;
+@@ -18124,6 +18162,10 @@ DisResult disInstr_PPC_WRK (
+       case 0x331: // evstwhe
+       case 0x334: // evstwhox
+       case 0x335: // evstwho
++      case 0x338: // evstwwex
++      case 0x339: // evstwwe
++      case 0x33c: // evstwwox
++      case 0x33d: // evstwwox
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 4030241..4584d46 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2276,6 +2276,173 @@ int evstwhox_asm(void)
+ }
+ TEST_SPE_DECL(evstwhox_asm, "evstwhox");
+ 
++int evstwwe_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *dst_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++
++#define EVSTWWE(index, ew, ow)                                                             \
++  vec = (__ev64_u32__) { (ew), (ow) };                                                     \
++  asm volatile ("evstwwe %[v], " #index "*4(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY (rD1u32[index] == (ew));
++
++  EVSTWWE(0,  0xd5e80d24, 0xcd019f8f);
++  EVSTWWE(1,  0xa2710780, 0x3e50576e);
++  EVSTWWE(2,  0x9fc90cb6, 0xa784453e);
++  EVSTWWE(3,  0xe71596a2, 0x573a90f3);
++  EVSTWWE(4,  0xafe1fca6, 0x2625d451);
++  EVSTWWE(5,  0xd2b9f988, 0x2b819222);
++  EVSTWWE(6,  0x309c9019, 0x38e11c55);
++  EVSTWWE(7,  0xf8cd97ec, 0xf4c3a9fb);
++  EVSTWWE(8,  0xee7c08d6, 0x7ed67555);
++  EVSTWWE(9,  0xb81617a4, 0xed28fe61);
++  EVSTWWE(10, 0xe6e838d8, 0xe798ed70);
++  EVSTWWE(11, 0xb462fcf2, 0xeb2280b5);
++  EVSTWWE(12, 0x9278e4a8, 0x9c4cd3b7);
++  EVSTWWE(13, 0xdf804478, 0x5c77d6bc);
++  EVSTWWE(14, 0x2f2899f9, 0x39a4c433);
++  EVSTWWE(15, 0xf3c64145, 0xa9e111d4);
++  EVSTWWE(16, 0xfa6c19f8, 0xea17d96f);
++  EVSTWWE(17, 0x9ecc98f6, 0x8e7a368a);
++  EVSTWWE(18, 0x0cc06b83, 0x4108be2f);
++  EVSTWWE(19, 0x6fa49893, 0xe7f9a50d);
++  EVSTWWE(10, 0xb9e590af, 0x54c3f09e);
++  EVSTWWE(21, 0xc0f9f024, 0x175c9d12);
++  EVSTWWE(22, 0x28d55d51, 0xa5ba8569);
++  EVSTWWE(23, 0x68b2f5d6, 0x6f6db375);
++  EVSTWWE(24, 0xe21eada1, 0xca51865f);
++  EVSTWWE(25, 0xfc2a4ff3, 0x5a4d04ab);
++  EVSTWWE(26, 0xaa41414a, 0x00a546e5);
++  EVSTWWE(27, 0x5da31deb, 0x9508aada);
++  EVSTWWE(28, 0x9bc2f7f5, 0x69ae0cc8);
++  EVSTWWE(29, 0xa2037d9f, 0x1a57cd53);
++  EVSTWWE(30, 0x15db13bb, 0x64dc655a);
++  EVSTWWE(31, 0x98d2685f, 0x1a6f9ad8);
++  memset (rD1u32, 0x0, 32 * sizeof (typeof (rD1u32[0])));
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwwe_asm, "evstwwe");
++
++int evstwwex_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u64__ vec asm ("28");
++  register int idx_src      asm ("27");
++  register int idx_dst      asm ("26");
++  register int i            asm ("25");
++
++  asm volatile ("lis %[b], rB2u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rB2u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rB2u32);
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx_src = i * sizeof (typeof(rB2u32[0]));
++    idx_dst = i * sizeof (typeof(rD1u32[0]));
++    asm volatile ("evlddx   %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx_src));
++    asm volatile ("evstwwex %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx_dst));
++    VERIFY (rB2u32[i][0] == rD1u32[i]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwwex_asm, "evstwwex");
++
++int evstwwo_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *dst_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++
++#define EVSTWWO(index, ew, ow)                                                             \
++  vec = (__ev64_u32__) { (ew), (ow) };                                                     \
++  asm volatile ("evstwwo %[v], " #index "*4(%[b])" : [v] "=r" (vec) : [b] "r" (dst_base)); \
++  VERIFY (rD1u32[index] == (ow));
++
++  EVSTWWO(0,  0xd5e80d24, 0xcd019f8f);
++  EVSTWWO(1,  0xa2710780, 0x3e50576e);
++  EVSTWWO(2,  0x9fc90cb6, 0xa784453e);
++  EVSTWWO(3,  0xe71596a2, 0x573a90f3);
++  EVSTWWO(4,  0xafe1fca6, 0x2625d451);
++  EVSTWWO(5,  0xd2b9f988, 0x2b819222);
++  EVSTWWO(6,  0x309c9019, 0x38e11c55);
++  EVSTWWO(7,  0xf8cd97ec, 0xf4c3a9fb);
++  EVSTWWO(8,  0xee7c08d6, 0x7ed67555);
++  EVSTWWO(9,  0xb81617a4, 0xed28fe61);
++  EVSTWWO(10, 0xe6e838d8, 0xe798ed70);
++  EVSTWWO(11, 0xb462fcf2, 0xeb2280b5);
++  EVSTWWO(12, 0x9278e4a8, 0x9c4cd3b7);
++  EVSTWWO(13, 0xdf804478, 0x5c77d6bc);
++  EVSTWWO(14, 0x2f2899f9, 0x39a4c433);
++  EVSTWWO(15, 0xf3c64145, 0xa9e111d4);
++  EVSTWWO(16, 0xfa6c19f8, 0xea17d96f);
++  EVSTWWO(17, 0x9ecc98f6, 0x8e7a368a);
++  EVSTWWO(18, 0x0cc06b83, 0x4108be2f);
++  EVSTWWO(19, 0x6fa49893, 0xe7f9a50d);
++  EVSTWWO(10, 0xb9e590af, 0x54c3f09e);
++  EVSTWWO(21, 0xc0f9f024, 0x175c9d12);
++  EVSTWWO(22, 0x28d55d51, 0xa5ba8569);
++  EVSTWWO(23, 0x68b2f5d6, 0x6f6db375);
++  EVSTWWO(24, 0xe21eada1, 0xca51865f);
++  EVSTWWO(25, 0xfc2a4ff3, 0x5a4d04ab);
++  EVSTWWO(26, 0xaa41414a, 0x00a546e5);
++  EVSTWWO(27, 0x5da31deb, 0x9508aada);
++  EVSTWWO(28, 0x9bc2f7f5, 0x69ae0cc8);
++  EVSTWWO(29, 0xa2037d9f, 0x1a57cd53);
++  EVSTWWO(30, 0x15db13bb, 0x64dc655a);
++  EVSTWWO(31, 0x98d2685f, 0x1a6f9ad8);
++  memset (rD1u32, 0x0, 32 * sizeof (typeof (rD1u32[0])));
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwwo_asm, "evstwwo");
++
++int evstwwox_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register void *dst_base   asm ("29");
++  register __ev64_u64__ vec asm ("28");
++  register int idx_src      asm ("27");
++  register int idx_dst      asm ("26");
++  register int i            asm ("25");
++
++  asm volatile ("lis %[b], rB2u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rB2u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rB2u32);
++
++  asm volatile ("lis %[b], rD1u32 at ha"          : [b]  "=r" (dst_base));
++  asm volatile ("addic %[bd], %[bs], rD1u32 at l" : [bd] "=r" (dst_base) : [bs] "r" (dst_base));
++  VERIFY (dst_base == rD1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx_src = i * sizeof (typeof(rB2u32[0]));
++    idx_dst = i * sizeof (typeof(rD1u32[0]));
++    asm volatile ("evlddx   %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx_src));
++    asm volatile ("evstwwox %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (dst_base), [i] "r" (idx_dst));
++    VERIFY (rB2u32[i][1] == rD1u32[i]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evstwwox_asm, "evstwwox");
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -2341,6 +2508,10 @@ test_t spe_isa_load_store_test_table = {
+     F(evlwhoux_asm),
+     F(evstwho_asm),
+     F(evstwhox_asm),
++    F(evstwwe_asm),
++    F(evstwwex_asm),
++    F(evstwwo_asm),
++    F(evstwwox_asm),
+     NULL
+   }
+ };
+@@ -2440,3 +2611,5 @@ int main(void)
+ // 8. Convert all tests to using the data pools.
+ // 9. Make all format uniform. Esp, where you have asm ()'s.
+ // 10. The VERIFY()'s after memset () are redundant.
++// 11. Make each test allocate (and deallocate!) it's own memory, so that in a minimal sense, we are testing memcheck.
++//     (Use the pre-populated arrays as master inout data, replicating them as necessary).
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index bff9fae..2445b90 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2426)
++   by 0x........: main (test_spe.c:2597)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2426)
++   by 0x........: main (test_spe.c:2597)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2426)
++   by 0x........: main (test_spe.c:2597)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 0741a40..683341a 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -36,6 +36,10 @@ SPE Regression Tests: PASS
+ ....evlwhoux: PASS
+ ....evstwho: PASS
+ ....evstwhox: PASS
++....evstwwe: PASS
++....evstwwex: PASS
++....evstwwo: PASS
++....evstwwox: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index cc5d5ca..ab99385 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 62 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 23456 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  1826 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 24015 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  2385 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 28723 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  7083 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:   751 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 11619 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 18356 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 29051 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 23704 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2058 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0019-Implement-SPE-Instructions-evlhhesplat-evlhhesplatx-.patch b/recipes-devtools/valgrind/files/0019-Implement-SPE-Instructions-evlhhesplat-evlhhesplatx-.patch
new file mode 100644
index 0000000..f1596ee
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0019-Implement-SPE-Instructions-evlhhesplat-evlhhesplatx-.patch
@@ -0,0 +1,945 @@
+From 8f994013e9cb6f73232e1b49b0cb87d8fdf66292 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 5 Feb 2013 07:55:19 -0800
+Subject: [PATCH 19/65] Implement SPE Instructions: { evlhhesplat, evlhhesplatx, evlhhossplat, evlhhossplatx, evlhhousplat, evlhhousplatx }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  100 +++++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  254 +++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |  263 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    6 +
+ regtest-power7-64.log                    |   40 +++---
+ 6 files changed, 644 insertions(+), 25 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index f87acae..dffb08f 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11686,9 +11686,12 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+ 
+    switch (opc2) {
+    case 0x300 ... 0x305:
++   case 0x308 ... 0x309:
++   case 0x30c ... 0x30f:
+    case 0x310 ... 0x311:
+    case 0x314 ... 0x317:
+       if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304 ||
++          opc2 == 0x308 || opc2 == 0x30c || opc2 == 0x30e ||
+           opc2 == 0x310 || opc2 == 0x314 || opc2 == 0x316) {
+         switch (opc2) {
+         case 0x300:
+@@ -11706,6 +11709,21 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 8;
+            insn = "evldhx";
+            break;
++        case 0x308:
++           // evlhhesplatx (Vector Load Half Word into Half Words Even and Splat Indexed, SPEPEM p5-119)
++           alignment = 2;
++           insn = "evlhhesplatx";
++           break;
++        case 0x30c:
++           // evlhhousplatx (Vector Load Half Word into Half Word Odd Unsigned and Splat Indexed, SPEPEM p5-123)
++           alignment = 2;
++           insn = "evlhhousplatx";
++           break;
++        case 0x30e:
++           // evlhhossplatx (Vector Load Half Word into Half Word Odd Signed and Splat Indexed, SPEPEM p5-121)
++           alignment = 2;
++           insn = "evlhhossplatx";
++           break;
+         case 0x310:
+            // evlwhex (Vector Load Word into Two Half Words Even Indexed, SPEPEM p5-125)
+            alignment = 4;
+@@ -11726,6 +11744,7 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+       if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305 ||
++          opc2 == 0x309 || opc2 == 0x30d || opc2 == 0x30f ||
+           opc2 == 0x311 || opc2 == 0x315 || opc2 == 0x317) {
+         switch (opc2) {
+         case 0x301:
+@@ -11746,6 +11765,24 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 8;
+            insn = "evldh";
+            break;
++        case 0x309:
++           // evlhhesplat (Vector Load Half Word into Half Words Even and Splat, SPEPEM p5-118)
++           disp = 2 * uimm;
++           alignment = 2;
++           insn = "evlhhesplat";
++           break;
++        case 0x30d:
++           // evlhhousplat (Vector Load Half Word into Half Word Odd Unsigned and Splat, SPEPEM p5-122)
++           disp = 2 * uimm;
++           alignment = 2;
++           insn = "evlhhousplat";
++           break;
++        case 0x30f:
++           // evlhhossplat (Vector Load Half Word into Half Word Odd Signed and Splat, SPEPEM p5-120)
++           disp = 2 * uimm;
++           alignment = 2;
++           insn = "evlhhossplat";
++           break;
+         case 0x311:
+            // evlwhe (Vector Load Word into Two Half Words Even, SPEPEM p5-124)
+            disp = 4 * uimm;
+@@ -11805,8 +11842,61 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+ 
+          assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
+          break;
+-       case 0x310: /* evlwhex */
+-       case 0x311: /* evlwhe */
++      case 0x308: /* evlhhesplatx */
++      case 0x309: /* evlhhesplat  */
++
++         assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwu, mkU16( 0x0 ) );
++         assign( ehwl, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwl, mkU16( 0x0 ) );
++
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++
++         break;
++      case 0x30c: /* evlhhousplatx */
++      case 0x30d: /* evlhhousplat  */
++
++         assign( ehwu, mkU16( 0x0 ) );
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ehwl, mkU16( 0x0 ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++
++        break;
++      case 0x30e: // evlhhossplatx */
++      case 0x30f: // evlhhossplat  */
++
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++
++         assign( wu, unop ( Iop_16Sto32, mkexpr ( ohwu ) ) );
++         assign( wl, unop ( Iop_16Sto32, mkexpr ( ohwl ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++        break;
++      case 0x310: /* evlwhex */
++      case 0x311: /* evlwhe */
+ 
+          assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
+          assign( ohwu, mkU16( 0x0 ) );
+@@ -18143,6 +18233,12 @@ DisResult disInstr_PPC_WRK (
+       case 0x303: // evldw
+       case 0x304: // evldhx
+       case 0x305: // evldh
++      case 0x308: // evlhhesplatx
++      case 0x309: // evlhhesplat
++      case 0x30c: // evlhhousplatx
++      case 0x30d: // evlhhousplat
++      case 0x30e: // evlhhossplatx
++      case 0x30f: // evlhhossplat
+       case 0x310: // evlwhex
+       case 0x311: // evlwhe
+       case 0x314: // evlwhoux
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 4584d46..f650d72 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2443,6 +2443,253 @@ int evstwwox_asm(void)
+   return failures;
+ }
+ TEST_SPE_DECL(evstwwox_asm, "evstwwox");
++
++int evlhhesplat_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1s16);
++
++#define EVLHHESPLAT(index)                                                                      \
++  asm volatile ("evlhhesplat %[v], " #index " *2(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == rA1s16[index]);                                                              \
++  VERIFY(vec[1] == 0x0);                                                                        \
++  VERIFY(vec[2] == rA1s16[index]);                                                              \
++  VERIFY(vec[3] == 0x0);
++
++  EVLHHESPLAT(0);
++  EVLHHESPLAT(1);
++  EVLHHESPLAT(2);
++  EVLHHESPLAT(3);
++  EVLHHESPLAT(4);
++  EVLHHESPLAT(5);
++  EVLHHESPLAT(6);
++  EVLHHESPLAT(7);
++  EVLHHESPLAT(8);
++  EVLHHESPLAT(9);
++  EVLHHESPLAT(10);
++  EVLHHESPLAT(11);
++  EVLHHESPLAT(12);
++  EVLHHESPLAT(13);
++  EVLHHESPLAT(14);
++  EVLHHESPLAT(15);
++  EVLHHESPLAT(16);
++  EVLHHESPLAT(17);
++  EVLHHESPLAT(18);
++  EVLHHESPLAT(19);
++  EVLHHESPLAT(20);
++  EVLHHESPLAT(21);
++  EVLHHESPLAT(22);
++  EVLHHESPLAT(23);
++  EVLHHESPLAT(24);
++  EVLHHESPLAT(25);
++  EVLHHESPLAT(26);
++  EVLHHESPLAT(27);
++  EVLHHESPLAT(28);
++  EVLHHESPLAT(29);
++  EVLHHESPLAT(30);
++  EVLHHESPLAT(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhesplat_asm, "evlhhesplat");
++
++int evlhhesplatx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1s16);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1s16[0]));
++    asm volatile ("evlhhesplatx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == rA1s16[i]);
++    VERIFY(vec[1] == 0x0);
++    VERIFY(vec[2] == rA1s16[i]);
++    VERIFY(vec[3] == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhesplatx_asm, "evlhhesplatx");
++
++int evlhhossplat_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1s16);
++
++#define EVLHHOSSPLAT(index)                                                                      \
++  asm volatile ("evlhhossplat %[v], " #index " *2(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == ((MSB_HW(rA1s16[index]) == 0x1) ? (signed short) 0xffff : 0x0000));           \
++  VERIFY(vec[1] == (rA1s16[index]));                                                             \
++  VERIFY(vec[2] == ((MSB_HW(rA1s16[index]) == 0x1) ? (signed short) 0xffff : 0x0000));           \
++  VERIFY(vec[3] == (rA1s16[index]));
++
++  EVLHHOSSPLAT(0);
++  EVLHHOSSPLAT(1);
++  EVLHHOSSPLAT(2);
++  EVLHHOSSPLAT(3);
++  EVLHHOSSPLAT(4);
++  EVLHHOSSPLAT(5);
++  EVLHHOSSPLAT(6);
++  EVLHHOSSPLAT(7);
++  EVLHHOSSPLAT(8);
++  EVLHHOSSPLAT(9);
++  EVLHHOSSPLAT(10);
++  EVLHHOSSPLAT(11);
++  EVLHHOSSPLAT(12);
++  EVLHHOSSPLAT(13);
++  EVLHHOSSPLAT(14);
++  EVLHHOSSPLAT(15);
++  EVLHHOSSPLAT(16);
++  EVLHHOSSPLAT(17);
++  EVLHHOSSPLAT(18);
++  EVLHHOSSPLAT(19);
++  EVLHHOSSPLAT(20);
++  EVLHHOSSPLAT(21);
++  EVLHHOSSPLAT(22);
++  EVLHHOSSPLAT(23);
++  EVLHHOSSPLAT(24);
++  EVLHHOSSPLAT(25);
++  EVLHHOSSPLAT(26);
++  EVLHHOSSPLAT(27);
++  EVLHHOSSPLAT(28);
++  EVLHHOSSPLAT(29);
++  EVLHHOSSPLAT(30);
++  EVLHHOSSPLAT(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhossplat_asm, "evlhhossplat");
++
++int evlhhossplatx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1s16);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1s16[0]));
++    asm volatile ("evlhhossplatx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == ((MSB_HW(rA1s16[i]) == 0x1) ? (signed short) 0xffff : 0x0000));
++    VERIFY(vec[1] == (rA1s16[i]));
++    VERIFY(vec[2] == ((MSB_HW(rA1s16[i]) == 0x1) ? (signed short) 0xffff : 0x0000));
++    VERIFY(vec[3] == (rA1s16[i]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhossplatx_asm, "evlhhossplatx");
++
++int evlhhousplat_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1s16);
++
++#define EVLHHOUSPLAT(index)                                                                      \
++  asm volatile ("evlhhousplat %[v], " #index " *2(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == 0x0);                                                                         \
++  VERIFY(vec[1] == (rA1s16[index]));                                                             \
++  VERIFY(vec[2] == 0x0);                                                                         \
++  VERIFY(vec[3] == (rA1s16[index]));
++
++  EVLHHOUSPLAT(0);
++  EVLHHOUSPLAT(1);
++  EVLHHOUSPLAT(2);
++  EVLHHOUSPLAT(3);
++  EVLHHOUSPLAT(4);
++  EVLHHOUSPLAT(5);
++  EVLHHOUSPLAT(6);
++  EVLHHOUSPLAT(7);
++  EVLHHOUSPLAT(8);
++  EVLHHOUSPLAT(9);
++  EVLHHOUSPLAT(10);
++  EVLHHOUSPLAT(11);
++  EVLHHOUSPLAT(12);
++  EVLHHOUSPLAT(13);
++  EVLHHOUSPLAT(14);
++  EVLHHOUSPLAT(15);
++  EVLHHOUSPLAT(16);
++  EVLHHOUSPLAT(17);
++  EVLHHOUSPLAT(18);
++  EVLHHOUSPLAT(19);
++  EVLHHOUSPLAT(20);
++  EVLHHOUSPLAT(21);
++  EVLHHOUSPLAT(22);
++  EVLHHOUSPLAT(23);
++  EVLHHOUSPLAT(24);
++  EVLHHOUSPLAT(25);
++  EVLHHOUSPLAT(26);
++  EVLHHOUSPLAT(27);
++  EVLHHOUSPLAT(28);
++  EVLHHOUSPLAT(29);
++  EVLHHOUSPLAT(30);
++  EVLHHOUSPLAT(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhousplat_asm, "evlhhousplat");
++
++int evlhhousplatx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_s16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1s16 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1s16 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1s16);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1s16[0]));
++    asm volatile ("evlhhousplatx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == 0x0);
++    VERIFY(vec[1] == rA1s16[i]);
++    VERIFY(vec[2] == 0x0);
++    VERIFY(vec[3] == rA1s16[i]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlhhousplatx_asm, "evlhhousplatx");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -2512,6 +2759,12 @@ test_t spe_isa_load_store_test_table = {
+     F(evstwwex_asm),
+     F(evstwwo_asm),
+     F(evstwwox_asm),
++    F(evlhhesplat_asm),
++    F(evlhhesplatx_asm),
++    F(evlhhossplat_asm),
++    F(evlhhossplatx_asm),
++    F(evlhhousplat_asm),
++    F(evlhhousplatx_asm),
+     NULL
+   }
+ };
+@@ -2613,3 +2866,4 @@ int main(void)
+ // 10. The VERIFY()'s after memset () are redundant.
+ // 11. Make each test allocate (and deallocate!) it's own memory, so that in a minimal sense, we are testing memcheck.
+ //     (Use the pre-populated arrays as master inout data, replicating them as necessary).
++// 12. register __ev64_u16__ vec asm ("29"); // Why does this test fail if we use __ev64_s16__?
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 89134bd..6e8a689 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4626,3 +4626,266 @@ unsigned int rD1u32[NELTS(rA1u32)];
+ 
+ // Most Significant Bit of Half Word
+ #define MSB_HW(n) (((n) & 0x8000) >> 15)
++
++const signed short rA1s16[] = {
++
++  /*   0 */ 0x2168,
++  /*   1 */ 0x2386,
++  /*   2 */ 0xa97c,
++  /*   3 */ 0x657a,
++  /*   4 */ 0x45f2,
++  /*   5 */ 0x2020,
++  /*   6 */ 0xbf20,
++  /*   7 */ 0x9efb,
++  /*   8 */ 0x0b3f,
++  /*   9 */ 0x5aef,
++  /*  10 */ 0xeca6,
++  /*  11 */ 0x9127,
++  /*  12 */ 0x98d5,
++  /*  13 */ 0xbb73,
++  /*  14 */ 0xf1ad,
++  /*  15 */ 0xffb9,
++  /*  16 */ 0xbaa0,
++  /*  17 */ 0x7234,
++  /*  18 */ 0xa143,
++  /*  19 */ 0x21b9,
++  /*  20 */ 0x85b9,
++  /*  21 */ 0x0fae,
++  /*  22 */ 0x7330,
++  /*  23 */ 0xb4eb,
++  /*  24 */ 0x422f,
++  /*  25 */ 0x084e,
++  /*  26 */ 0x3856,
++  /*  27 */ 0xa703,
++  /*  28 */ 0x4fbd,
++  /*  29 */ 0x48b3,
++  /*  30 */ 0x1c70,
++  /*  31 */ 0x9c0f,
++  /*  32 */ 0xfaa4,
++  /*  33 */ 0xfbdb,
++  /*  34 */ 0x8b4c,
++  /*  35 */ 0x1324,
++  /*  36 */ 0x510e,
++  /*  37 */ 0xac71,
++  /*  38 */ 0x27dc,
++  /*  39 */ 0xae4b,
++  /*  40 */ 0xd321,
++  /*  41 */ 0xf307,
++  /*  42 */ 0x6dc0,
++  /*  43 */ 0x18a8,
++  /*  44 */ 0x65ad,
++  /*  45 */ 0xece7,
++  /*  46 */ 0xd0ae,
++  /*  47 */ 0xd0bd,
++  /*  48 */ 0xadd6,
++  /*  49 */ 0xff35,
++  /*  50 */ 0x1db3,
++  /*  51 */ 0x2ecc,
++  /*  52 */ 0x0206,
++  /*  53 */ 0xc739,
++  /*  54 */ 0xab04,
++  /*  55 */ 0x2d56,
++  /*  56 */ 0x1b5e,
++  /*  57 */ 0xc610,
++  /*  58 */ 0x7f3a,
++  /*  59 */ 0xe3f9,
++  /*  60 */ 0x11aa,
++  /*  61 */ 0x8d11,
++  /*  62 */ 0x1b9f,
++  /*  63 */ 0xb567,
++  /*  64 */ 0x273e,
++  /*  65 */ 0x15ea,
++  /*  66 */ 0xd4ba,
++  /*  67 */ 0x5842,
++  /*  68 */ 0x2dc0,
++  /*  69 */ 0x0cf4,
++  /*  70 */ 0xb4ca,
++  /*  71 */ 0xf2d7,
++  /*  72 */ 0x0536,
++  /*  73 */ 0xba87,
++  /*  74 */ 0x2284,
++  /*  75 */ 0xce20,
++  /*  76 */ 0x202a,
++  /*  77 */ 0x945d,
++  /*  78 */ 0xc475,
++  /*  79 */ 0x02ea,
++  /*  80 */ 0x84f0,
++  /*  81 */ 0xf4b2,
++  /*  82 */ 0x2f5b,
++  /*  83 */ 0x13c9,
++  /*  84 */ 0xb5d0,
++  /*  85 */ 0x9457,
++  /*  86 */ 0xa922,
++  /*  87 */ 0x8b73,
++  /*  88 */ 0xd908,
++  /*  89 */ 0x8a00,
++  /*  90 */ 0xf4ea,
++  /*  91 */ 0xa8f8,
++  /*  92 */ 0x35a3,
++  /*  93 */ 0x0bbc,
++  /*  94 */ 0xc4e3,
++  /*  95 */ 0xc3a9,
++  /*  96 */ 0xd45c,
++  /*  97 */ 0x0a7a,
++  /*  98 */ 0xd24a,
++  /*  99 */ 0x12b1,
++  /* 100 */ 0x8a41,
++  /* 101 */ 0x6de1,
++  /* 102 */ 0xeb61,
++  /* 103 */ 0x5cd2,
++  /* 104 */ 0x0fd7,
++  /* 105 */ 0x3860,
++  /* 106 */ 0x17e8,
++  /* 107 */ 0x87af,
++  /* 108 */ 0xebb5,
++  /* 109 */ 0x50a9,
++  /* 110 */ 0xda8a,
++  /* 111 */ 0x5b79,
++  /* 112 */ 0xbbe9,
++  /* 113 */ 0x9c7b,
++  /* 114 */ 0x80dd,
++  /* 115 */ 0xedb7,
++  /* 116 */ 0xdd76,
++  /* 117 */ 0x2fc7,
++  /* 118 */ 0x5473,
++  /* 119 */ 0xf811,
++  /* 120 */ 0x8fed,
++  /* 121 */ 0x360d,
++  /* 122 */ 0x255d,
++  /* 123 */ 0x5d77,
++  /* 124 */ 0x0d09,
++  /* 125 */ 0xcc10,
++  /* 126 */ 0xf301,
++  /* 127 */ 0x0aec,
++  /* 128 */ 0xc000,
++  /* 129 */ 0xa1c1,
++  /* 130 */ 0x97fb,
++  /* 131 */ 0x16f8,
++  /* 132 */ 0x234e,
++  /* 133 */ 0x0bc5,
++  /* 134 */ 0x5961,
++  /* 135 */ 0x5a3b,
++  /* 136 */ 0xa005,
++  /* 137 */ 0x3250,
++  /* 138 */ 0x6a12,
++  /* 139 */ 0x0962,
++  /* 140 */ 0xb7e8,
++  /* 141 */ 0x9296,
++  /* 142 */ 0x7dc2,
++  /* 143 */ 0xec76,
++  /* 144 */ 0x69fe,
++  /* 145 */ 0x598a,
++  /* 146 */ 0x2922,
++  /* 147 */ 0x7e30,
++  /* 148 */ 0xf7ef,
++  /* 149 */ 0x5923,
++  /* 150 */ 0xe3ea,
++  /* 151 */ 0x6089,
++  /* 152 */ 0x664a,
++  /* 153 */ 0xc08f,
++  /* 154 */ 0xbe14,
++  /* 155 */ 0xac44,
++  /* 156 */ 0xbc18,
++  /* 157 */ 0x3276,
++  /* 158 */ 0x6db8,
++  /* 159 */ 0x78e7,
++  /* 160 */ 0x3f17,
++  /* 161 */ 0x5a38,
++  /* 162 */ 0x91d2,
++  /* 163 */ 0x54c9,
++  /* 164 */ 0x031c,
++  /* 165 */ 0x308d,
++  /* 166 */ 0xd61c,
++  /* 167 */ 0x2300,
++  /* 168 */ 0xb371,
++  /* 169 */ 0x3673,
++  /* 170 */ 0xc523,
++  /* 171 */ 0xf651,
++  /* 172 */ 0x5c7f,
++  /* 173 */ 0x76c3,
++  /* 174 */ 0x9a19,
++  /* 175 */ 0x307b,
++  /* 176 */ 0x4102,
++  /* 177 */ 0x78ea,
++  /* 178 */ 0xa9cc,
++  /* 179 */ 0xa4e4,
++  /* 180 */ 0x7140,
++  /* 181 */ 0x4233,
++  /* 182 */ 0xd362,
++  /* 183 */ 0x2496,
++  /* 184 */ 0x01d4,
++  /* 185 */ 0x84a3,
++  /* 186 */ 0x91c6,
++  /* 187 */ 0x19af,
++  /* 188 */ 0x105b,
++  /* 189 */ 0xdea8,
++  /* 190 */ 0x0567,
++  /* 191 */ 0x725c,
++  /* 192 */ 0xf291,
++  /* 193 */ 0x4249,
++  /* 194 */ 0x79d3,
++  /* 195 */ 0xa9a0,
++  /* 196 */ 0x7106,
++  /* 197 */ 0x5ac3,
++  /* 198 */ 0x9b1e,
++  /* 199 */ 0x9a58,
++  /* 200 */ 0x5f7b,
++  /* 201 */ 0x89d2,
++  /* 202 */ 0xf6db,
++  /* 203 */ 0x6e3c,
++  /* 204 */ 0x50e1,
++  /* 205 */ 0x69bf,
++  /* 206 */ 0xe9cc,
++  /* 207 */ 0x1f64,
++  /* 208 */ 0x41b2,
++  /* 209 */ 0x0885,
++  /* 210 */ 0xd94d,
++  /* 211 */ 0xd880,
++  /* 212 */ 0x76b6,
++  /* 213 */ 0x7dd0,
++  /* 214 */ 0xbef0,
++  /* 215 */ 0x3658,
++  /* 216 */ 0x9c60,
++  /* 217 */ 0x306e,
++  /* 218 */ 0x2931,
++  /* 219 */ 0x43f8,
++  /* 220 */ 0x12d4,
++  /* 221 */ 0xa526,
++  /* 222 */ 0x75ed,
++  /* 223 */ 0x65a6,
++  /* 224 */ 0xb43b,
++  /* 225 */ 0x5d9e,
++  /* 226 */ 0x4708,
++  /* 227 */ 0x486c,
++  /* 228 */ 0x3bd8,
++  /* 229 */ 0x948b,
++  /* 230 */ 0x6e4d,
++  /* 231 */ 0xde24,
++  /* 232 */ 0xf53b,
++  /* 233 */ 0x90d5,
++  /* 234 */ 0x1ae1,
++  /* 235 */ 0x351a,
++  /* 236 */ 0x80dd,
++  /* 237 */ 0xe278,
++  /* 238 */ 0x2453,
++  /* 239 */ 0xc411,
++  /* 240 */ 0x9523,
++  /* 241 */ 0x5668,
++  /* 242 */ 0x8f2f,
++  /* 243 */ 0xffef,
++  /* 244 */ 0x9cf5,
++  /* 245 */ 0xec7b,
++  /* 246 */ 0x3856,
++  /* 247 */ 0x5396,
++  /* 248 */ 0xb513,
++  /* 249 */ 0xe3e1,
++  /* 250 */ 0x3671,
++  /* 251 */ 0x4a6c,
++  /* 252 */ 0x0c2c,
++  /* 253 */ 0x5ce5,
++  /* 254 */ 0x13b5,
++  /* 255 */ 0x8d63,
++
++};
++
++signed short rD1s16[NELTS(rA1s16)];
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 2445b90..3166e80 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2597)
++   by 0x........: main (test_spe.c:2850)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2597)
++   by 0x........: main (test_spe.c:2850)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2597)
++   by 0x........: main (test_spe.c:2850)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 683341a..d321f15 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -40,6 +40,12 @@ SPE Regression Tests: PASS
+ ....evstwwex: PASS
+ ....evstwwo: PASS
+ ....evstwwox: PASS
++....evlhhesplat: PASS
++....evlhhesplatx: PASS
++....evlhhossplat: PASS
++....evlhhossplatx: PASS
++....evlhhousplat: PASS
++....evlhhousplatx: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index ab99385..eb8a412 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 62 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 65 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 66 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 71 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 71 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  1826 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 31428 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  2385 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 31988 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  7083 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  4354 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 11619 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  8838 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 29051 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 26314 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  2058 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 31656 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0020-Implement-SPE-Instructions-evlwhsplat-evlwhsplatx-ev.patch b/recipes-devtools/valgrind/files/0020-Implement-SPE-Instructions-evlwhsplat-evlwhsplatx-ev.patch
new file mode 100644
index 0000000..c193b95
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0020-Implement-SPE-Instructions-evlwhsplat-evlwhsplatx-ev.patch
@@ -0,0 +1,428 @@
+From be308026f79d71fb39b7796f35ebc9ee70c22dce Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 5 Feb 2013 10:35:38 -0800
+Subject: [PATCH 20/65] Implement SPE Instructions: { evlwhsplat, evlwhsplatx, evlwwsplat, evlwwsplatx }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   61 +++++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  164 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   16 ++--
+ 5 files changed, 237 insertions(+), 14 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index dffb08f..3c2fceb 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11689,10 +11689,12 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+    case 0x308 ... 0x309:
+    case 0x30c ... 0x30f:
+    case 0x310 ... 0x311:
+-   case 0x314 ... 0x317:
++   case 0x314 ... 0x319:
++   case 0x31c ... 0x31d:
+       if (opc2 == 0x300 || opc2 == 0x302 || opc2 == 0x304 ||
+           opc2 == 0x308 || opc2 == 0x30c || opc2 == 0x30e ||
+-          opc2 == 0x310 || opc2 == 0x314 || opc2 == 0x316) {
++          opc2 == 0x310 || opc2 == 0x314 || opc2 == 0x316 ||
++          opc2 == 0x318 || opc2 == 0x31c) {
+         switch (opc2) {
+         case 0x300:
+            // evlddx (Vector Load Double Word into Double Word Indexed, SPEPEM p5-113)
+@@ -11739,13 +11741,24 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 4;
+            insn = "evlwhosx";
+            break;
++        case 0x318:
++           // evlwwsplatx (Vector Load Word into Word and Splat Indexed, SPEPEM p5-133)
++           alignment = 4;
++           insn = "evlwwsplatx";
++           break;
++        case 0x31c:
++           // evlwhsplatx (Vector Load Word into Two Half Words and Splat Indexed, SPEPEM 5-131)
++           alignment = 4;
++           insn = "evlwhsplatx";
++           break;
+         }
+         DIP( "%s r%d, r%d, r%d\n", insn, rD_addr, rA_addr, rB_addr );
+         assign( EA, addr_align( ea_rAor0_idxd( rA_addr, rB_addr ), alignment ) );
+       }
+       if (opc2 == 0x301 || opc2 == 0x303 || opc2 == 0x305 ||
+           opc2 == 0x309 || opc2 == 0x30d || opc2 == 0x30f ||
+-          opc2 == 0x311 || opc2 == 0x315 || opc2 == 0x317) {
++          opc2 == 0x311 || opc2 == 0x315 || opc2 == 0x317 ||
++          opc2 == 0x319 || opc2 == 0x31d) {
+         switch (opc2) {
+         case 0x301:
+            // evldd (Vector Load Double of Double, SPEPEM p5-112)
+@@ -11801,6 +11814,18 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+            alignment = 4;
+            insn = "evlwhos";
+            break;
++        case 0x319:
++           // evlwwsplat (Vector Load Word into Word and Splat, SPEPEM p5-132)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evlwwsplat";
++           break;
++        case 0x31d:
++           // evlwhsplat (Vector Load Word into Two Half Words and Splat, SPEPEM 5-130)
++           disp = 4 * uimm;
++           alignment = 4;
++           insn = "evlwhsplat";
++           break;
+         }
+         DIP( "%s r%d, %u(r%u)\n", insn, rD_addr, disp, rA_addr );
+         assign( EA, addr_align( ea_rAor0_disp( rA_addr, disp ), alignment ) );
+@@ -11946,6 +11971,32 @@ static Bool dis_spe_load ( VexAbiInfo* vbi, UInt theInstr )
+ 
+          assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
+          break;
++      case 0x318: /* evlwwsplatx */
++      case 0x319: /* evlwwsplat  */
++         assign( wu, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
++         assign( wl, loadBE( Ity_I32, mkexpr ( ea0 ) ) );
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
++      case 0x31c: /* evlwhsplatx */
++      case 0x31d: /* evlwhsplat  */
++
++         assign( ehwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ohwu, loadBE( Ity_I16, mkexpr ( ea0 ) ) );
++         assign( ehwl, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++         assign( ohwl, loadBE( Ity_I16, mkexpr ( ea2 ) ) );
++
++         assign( u0, unop ( Iop_16Uto32, mkexpr ( ehwu ) ) );
++         assign( u1, binop( Iop_Shl32,   mkexpr ( u0 ), mkU8( 16 ) ) );
++         assign( u2, unop ( Iop_16Uto32, mkexpr ( ohwu ) ) );
++         assign( wu, binop( Iop_Or32,    mkexpr ( u1 ), mkexpr ( u2 ) ) );
++
++         assign( l0, unop ( Iop_16Uto32, mkexpr ( ehwl ) ) );
++         assign( l1, binop( Iop_Shl32,   mkexpr ( l0 ), mkU8( 16 ) ) );
++         assign( l2, unop ( Iop_16Uto32, mkexpr ( ohwl ) ) );
++         assign( wl, binop( Iop_Or32,    mkexpr ( l1 ), mkexpr ( l2 ) ) );
++
++         assign( rD, binop( Iop_32HLto64, mkexpr ( wu ), mkexpr ( wl ) ) );
++         break;
+       }
+ 
+       putSPEReg( rD_addr, mkexpr ( rD ) );
+@@ -18245,6 +18296,10 @@ DisResult disInstr_PPC_WRK (
+       case 0x315: // evlwhou
+       case 0x316: // evlwhosx
+       case 0x317: // evlwhos
++      case 0x318: // evlwwsplatx
++      case 0x319: // evlwwsplat
++      case 0x31c: // evlwhsplatx
++      case 0x31d: // evlwhsplat
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_load( abiinfo, theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index f650d72..74c9a83 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2690,6 +2690,166 @@ int evlhhousplatx_asm(void)
+ }
+ TEST_SPE_DECL(evlhhousplatx_asm, "evlhhousplatx");
+ 
++int evlwhsplat_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1u32);
++
++#define EVLWHSPLAT(index)                                                                      \
++  asm volatile ("evlwhsplat %[v], " #index " *4(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == EHW(rA1u32[index]));                                                        \
++  VERIFY(vec[1] == EHW(rA1u32[index]));                                                        \
++  VERIFY(vec[2] == OHW(rA1u32[index]));                                                        \
++  VERIFY(vec[3] == OHW(rA1u32[index]));                                                        \
++
++  EVLWHSPLAT(0);
++  EVLWHSPLAT(1);
++  EVLWHSPLAT(2);
++  EVLWHSPLAT(3);
++  EVLWHSPLAT(4);
++  EVLWHSPLAT(5);
++  EVLWHSPLAT(6);
++  EVLWHSPLAT(7);
++  EVLWHSPLAT(8);
++  EVLWHSPLAT(9);
++  EVLWHSPLAT(10);
++  EVLWHSPLAT(11);
++  EVLWHSPLAT(12);
++  EVLWHSPLAT(13);
++  EVLWHSPLAT(14);
++  EVLWHSPLAT(15);
++  EVLWHSPLAT(16);
++  EVLWHSPLAT(17);
++  EVLWHSPLAT(18);
++  EVLWHSPLAT(19);
++  EVLWHSPLAT(20);
++  EVLWHSPLAT(21);
++  EVLWHSPLAT(22);
++  EVLWHSPLAT(23);
++  EVLWHSPLAT(24);
++  EVLWHSPLAT(25);
++  EVLWHSPLAT(26);
++  EVLWHSPLAT(27);
++  EVLWHSPLAT(28);
++  EVLWHSPLAT(29);
++  EVLWHSPLAT(30);
++  EVLWHSPLAT(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhsplat_asm, "evlwhsplat");
++
++int evlwhsplatx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u16__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1u32[0]));
++    asm volatile ("evlwhsplatx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == EHW(rA1u32[i]));
++    VERIFY(vec[1] == EHW(rA1u32[i]));
++    VERIFY(vec[2] == OHW(rA1u32[i]));
++    VERIFY(vec[3] == OHW(rA1u32[i]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwhsplatx_asm, "evlwhsplatx");
++
++int evlwwsplat_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY(src_base == rA1u32);
++
++#define EVLWWSPLAT(index)                                                                      \
++  asm volatile ("evlwwsplat %[v], " #index " *4(%[b])" : [v] "=r" (vec) : [b] "r" (src_base)); \
++  VERIFY(vec[0] == rA1u32[index]);                                                             \
++  VERIFY(vec[1] == rA1u32[index]);                                                             \
++
++  EVLWWSPLAT(0);
++  EVLWWSPLAT(1);
++  EVLWWSPLAT(2);
++  EVLWWSPLAT(3);
++  EVLWWSPLAT(4);
++  EVLWWSPLAT(5);
++  EVLWWSPLAT(6);
++  EVLWWSPLAT(7);
++  EVLWWSPLAT(8);
++  EVLWWSPLAT(9);
++  EVLWWSPLAT(10);
++  EVLWWSPLAT(11);
++  EVLWWSPLAT(12);
++  EVLWWSPLAT(13);
++  EVLWWSPLAT(14);
++  EVLWWSPLAT(15);
++  EVLWWSPLAT(16);
++  EVLWWSPLAT(17);
++  EVLWWSPLAT(18);
++  EVLWWSPLAT(19);
++  EVLWWSPLAT(20);
++  EVLWWSPLAT(21);
++  EVLWWSPLAT(22);
++  EVLWWSPLAT(23);
++  EVLWWSPLAT(24);
++  EVLWWSPLAT(25);
++  EVLWWSPLAT(26);
++  EVLWWSPLAT(27);
++  EVLWWSPLAT(28);
++  EVLWWSPLAT(29);
++  EVLWWSPLAT(30);
++  EVLWWSPLAT(31);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwwsplat_asm, "evlwwsplat");
++
++int evlwwsplatx_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register void *src_base   asm ("30");
++  register __ev64_u32__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  asm volatile ("lis %[b], rA1u32 at ha"          : [b]  "=r" (src_base));
++  asm volatile ("addic %[bd], %[bs], rA1u32 at l" : [bd] "=r" (src_base) : [bs] "r" (src_base));
++  VERIFY (src_base == rA1u32);
++
++  for (i = 0; i < 64; i++) {
++    idx = i * sizeof (typeof(rA1u32[0]));
++    asm volatile ("evlwwsplatx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (src_base), [i] "r" (idx));
++    VERIFY(vec[0] == rA1u32[i]);
++    VERIFY(vec[1] == rA1u32[i]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evlwwsplatx_asm, "evlwwsplatx");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -2765,6 +2925,10 @@ test_t spe_isa_load_store_test_table = {
+     F(evlhhossplatx_asm),
+     F(evlhhousplat_asm),
+     F(evlhhousplatx_asm),
++    F(evlwhsplat_asm),
++    F(evlwhsplatx_asm),
++    F(evlwwsplat_asm),
++    F(evlwwsplatx_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 3166e80..35a93a7 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2850)
++   by 0x........: main (test_spe.c:3014)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2850)
++   by 0x........: main (test_spe.c:3014)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:2850)
++   by 0x........: main (test_spe.c:3014)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index d321f15..70f276c 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -46,6 +46,10 @@ SPE Regression Tests: PASS
+ ....evlhhossplatx: PASS
+ ....evlhhousplat: PASS
+ ....evlhhousplatx: PASS
++....evlwhsplat: PASS
++....evlwhsplatx: PASS
++....evlwwsplat: PASS
++....evlwwsplatx: PASS
+ ...SPE ISA Bitwise Operators Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index eb8a412..b21dc64 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 71 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 31428 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 32640 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 31988 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:   751 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  4354 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  5559 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  8838 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 10060 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 26314 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 27535 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 31656 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:   455 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0021-Implement-SPE-Instructions-evmergehi-evmergehilo-evm.patch b/recipes-devtools/valgrind/files/0021-Implement-SPE-Instructions-evmergehi-evmergehilo-evm.patch
new file mode 100644
index 0000000..e74e450
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0021-Implement-SPE-Instructions-evmergehi-evmergehilo-evm.patch
@@ -0,0 +1,386 @@
+From 24833ee2eb279f5ae31395c892366c35073fbb51 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 5 Feb 2013 14:51:14 -0800
+Subject: [PATCH 21/65] Implement SPE Instructions: { evmergehi, evmergehilo, evmergelo, evmergelohi }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   82 ++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  122 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    5 +
+ regtest-power7-64.log                    |   16 ++--
+ 5 files changed, 220 insertions(+), 11 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 3c2fceb..8945180 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12297,6 +12297,81 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    return True;
+ }
+ 
++/*
++ * SPE Merge Instructions
++ */
++static Bool dis_spe_merge ( UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1    = evxOpcode( theInstr );
++   UInt  opc2    = evxXO( theInstr );
++   UChar rD_addr = evxRD( theInstr );
++   UChar rA_addr = evxRA( theInstr );
++   UChar rB_addr = evxRB( theInstr );
++
++   IRTemp rA = newTemp( Ity_I64 );
++   IRTemp rB = newTemp( Ity_I64 );
++
++   IRTemp rAU  = newTemp( Ity_I32 );
++   IRTemp rAL  = newTemp( Ity_I32 );
++   IRTemp rBU  = newTemp( Ity_I32 );
++   IRTemp rBL  = newTemp( Ity_I32 );
++   IRTemp rDU  = newTemp( Ity_I32 );
++   IRTemp rDL  = newTemp( Ity_I32 );
++
++   IRTemp rD = newTemp( Ity_I64 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_bitwise(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++   switch (opc2) {
++   case 0x22c: // evmergehi
++   case 0x22d: // evmergelo
++   case 0x22e: // evmergehilo
++   case 0x22f: // evmergelohi
++
++      if (opc2 == 0x22c) {
++        // evmergehi (Vector Merge High, SPEPEM p5-134)
++        DIP( "evmergehi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x22d) {
++        // evmergelo (Vector Merge Low, SPEPEM p5-136)
++        DIP( "evmergelo r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x22e) {
++        // evmergehilo (Vector Merge High/Low, SPEPEM p5-135)
++        DIP( "evmergehilo r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x22f) {
++        // evmergelohi (Vector Merge Low/High, SPEPEM p5-137)
++        DIP( "evmergelohi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++
++      assign ( rA, getSPEReg( rA_addr ) );
++      assign ( rB, getSPEReg( rB_addr ) );
++      assign ( rAL, unop( Iop_64to32, mkexpr ( rA ) ) );
++      assign ( rAU, unop( Iop_64HIto32, mkexpr ( rA ) ) );
++      assign ( rBL, unop( Iop_64to32, mkexpr ( rB ) ) );
++      assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
++
++      if (opc2 == 0x22c) // evmergehi
++        assign ( rD,  binop( Iop_32HLto64, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      if (opc2 == 0x22d) // evmergelo
++        assign ( rD,  binop( Iop_32HLto64, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++      if (opc2 == 0x22e) // evmergehilo
++        assign ( rD,  binop( Iop_32HLto64, mkexpr ( rAU ), mkexpr ( rBL ) ) );
++      if (opc2 == 0x22f) // evmergelohi
++        assign ( rD,  binop( Iop_32HLto64, mkexpr ( rAL ), mkexpr ( rBU ) ) );
++
++      putSPEReg( rD_addr, mkexpr ( rD ) );
++
++      break;
++   default:
++      return False;
++   }
++   return True;
++}
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -18278,6 +18353,13 @@ DisResult disInstr_PPC_WRK (
+ #ifdef __SPE__
+       opc2 = IFIELD(theInstr, 0, 11);
+       switch (opc2) {
++      case 0x22c: // evmergehi
++      case 0x22d: // evmergelo
++      case 0x22e: // evmergehilo
++      case 0x22f: // evmergelohi
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_merge( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x300: // evlddx
+       case 0x301: // evldd
+       case 0x302: // evldwx
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 74c9a83..78555b5 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2850,6 +2850,114 @@ int evlwwsplatx_asm(void)
+ }
+ TEST_SPE_DECL(evlwwsplatx_asm, "evlwwsplatx");
+ 
++int evmergehi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evmergehi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regA[0] &&
++           regD[1] == regB[0]);
++
++    /* Verify that you get a vector splat high by specifying the same register in rA and rB */
++    asm volatile ("evmergehi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regA));
++    VERIFY(regD[0] == regA[0] &&
++           regD[0] == regD[1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmergehi_asm, "evmergehi");
++
++int evmergehilo_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evmergehilo %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regA[0] &&
++           regD[1] == regB[1]);
++
++    /* Verify that specifying rA == rB, makes rD == rA */
++    asm volatile ("evmergehilo %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regA));
++    VERIFY(regD[0] == regA[0] &&
++           regD[1] == regA[1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmergehilo_asm, "evmergehilo");
++
++int evmergelo_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evmergelo %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regA[1] &&
++           regD[1] == regB[1]);
++
++    /* Verify that a vector splat low can be performed by specifying the same register in rA and rB */
++    asm volatile ("evmergelo %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regA));
++    VERIFY(regD[0] == regA[1] &&
++           regD[1] == regA[1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmergelo_asm, "evmergelo");
++
++int evmergelohi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evmergelohi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regA[1] &&
++           regD[1] == regB[0]);
++
++    /* Verify that a vector swap can be performed by specifying the same register in rA && rB */
++    asm volatile ("evmergelohi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regA));
++    VERIFY(regD[0] == regA[1] &&
++           regD[1] == regA[0]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmergelohi_asm, "evmergelohi");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -2945,6 +3053,19 @@ test_t spe_isa_bitwise_operators_test_table = {
+   }
+ };
+ 
++test_t spe_isa_merge_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Merge Instructions Tests",
++  .table = {
++    F(evmergehi_asm),
++    F(evmergehilo_asm),
++    F(evmergelo_asm),
++    F(evmergelohi_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -2952,6 +3073,7 @@ test_t spe_isa_insn_test_table = {
+   .table = {
+     &spe_isa_load_store_test_table,
+     &spe_isa_bitwise_operators_test_table,
++    &spe_isa_merge_insns_test_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 35a93a7..6aeed71 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3014)
++   by 0x........: main (test_spe.c:3136)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3014)
++   by 0x........: main (test_spe.c:3136)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3014)
++   by 0x........: main (test_spe.c:3136)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 70f276c..755e321 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -54,6 +54,11 @@ SPE Regression Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+ ....evxor: PASS
++...SPE ISA Merge Instructions Tests: PASS
++....evmergehi: PASS
++....evmergehilo: PASS
++....evmergelo: PASS
++....evmergelohi: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index b21dc64..e171d1c 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 72 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 32640 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 29261 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:   751 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 29820 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  5559 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  2173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 10060 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  6655 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 27535 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24136 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:   455 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 29496 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0022-Implement-SPE-Instructions-evand-evandc-eveqv-evnand.patch b/recipes-devtools/valgrind/files/0022-Implement-SPE-Instructions-evand-evandc-eveqv-evnand.patch
new file mode 100644
index 0000000..f7866bb
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0022-Implement-SPE-Instructions-evand-evandc-eveqv-evnand.patch
@@ -0,0 +1,478 @@
+From d01db3764e9665390af5881f8425faf46c936b55 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 6 Feb 2013 11:06:43 -0800
+Subject: [PATCH 22/65] Implement SPE Instructions: { evand, evandc, eveqv, evnand, evnor, evnot, evorc }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   93 +++++++++++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  159 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    8 ++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    7 ++
+ regtest-power7-64.log                    |   16 ++--
+ 6 files changed, 276 insertions(+), 13 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 8945180..4c9bcad 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12258,6 +12258,9 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    IRTemp rDU  = newTemp( Ity_I32 );
+    IRTemp rDL  = newTemp( Ity_I32 );
+ 
++   IRTemp rT0L  = newTemp( Ity_I32 );
++   IRTemp rT0U  = newTemp( Ity_I32 );
++
+    IRTemp rD = newTemp( Ity_I64 );
+ 
+    if (opc1 != 0x4) {
+@@ -12266,8 +12269,22 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    }
+    switch (opc2) {
+ 
++   case 0x211:
++   case 0x212:
+    case 0x216:
+    case 0x217:
++   case 0x218:
++   case 0x219:
++   case 0x21b:
++   case 0x21e:
++      if (opc2 == 0x211) {
++        // evand (Vector AND, SPEPEM p5-75)
++        DIP( "evand r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x212) {
++        // evandc (Vector AND with Complement, SPEPEM p5-76)
++        DIP( "evandc r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
+       if (opc2 == 0x216) {
+         // evxor (Vector XOR, SPEPEM p5-248)
+         DIP( "evxor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+@@ -12276,12 +12293,43 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         // evor (Vector OR, SPEPEM p5-214)
+         DIP( "evor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+       }
++      if (opc2 == 0x218) {
++        // evnor (Vector NOR, SPEPEM p5-213)
++        DIP( "evnor r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x219) {
++        // eveqv (Vector Equivalent, SPEPEM p5-86)
++        DIP( "eveq r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x21b) {
++        // evorc (Vector OR with Complement, SPEPEM p5-215)
++        DIP( "evorc r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++      if (opc2 == 0x21e) {
++        // evnand (Vector NAND, SPEPEM p5-211)
++        DIP( "evnand r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      }
++
+       assign ( rA, getSPEReg( rA_addr ) );
+       assign ( rB, getSPEReg( rB_addr ) );
+-      assign ( rAL, unop( Iop_64to32, mkexpr ( rA ) ) );
++
++      assign ( rAL, unop( Iop_64to32,   mkexpr ( rA ) ) );
+       assign ( rAU, unop( Iop_64HIto32, mkexpr ( rA ) ) );
+-      assign ( rBL, unop( Iop_64to32, mkexpr ( rB ) ) );
++      assign ( rBL, unop( Iop_64to32,   mkexpr ( rB ) ) );
+       assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
++
++      if (opc2 == 0x211) { // evand
++        assign ( rDL, binop( Iop_And32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rDU, binop( Iop_And32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++      }
++      if (opc2 == 0x212) { // evandc
++
++        assign ( rT0L, unop(  Iop_Not32, mkexpr ( rBL ) ) );
++        assign ( rT0U, unop(  Iop_Not32, mkexpr ( rBU ) ) );
++
++        assign ( rDL,  binop( Iop_And32, mkexpr ( rAL ), mkexpr ( rT0L ) ) );
++        assign ( rDU,  binop( Iop_And32, mkexpr ( rAU ), mkexpr ( rT0U ) ) );
++      }
+       if (opc2 == 0x216) { // evxor
+         assign ( rDL, binop( Iop_Xor32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
+         assign ( rDU, binop( Iop_Xor32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
+@@ -12290,9 +12338,44 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         assign ( rDL, binop( Iop_Or32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
+         assign ( rDU, binop( Iop_Or32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
+       }
++      if (opc2 == 0x218) { // evnor
++
++        assign ( rT0L, binop( Iop_Or32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rT0U, binop( Iop_Or32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++
++        assign ( rDL, unop( Iop_Not32, mkexpr ( rT0L ) ) );
++        assign ( rDU, unop( Iop_Not32, mkexpr ( rT0U ) ) );
++      }
++      if (opc2 == 0x219) { // eveqv
++
++        assign ( rT0L, binop( Iop_Xor32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rT0U, binop( Iop_Xor32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++
++        assign ( rDL, unop( Iop_Not32, mkexpr ( rT0L ) ) );
++        assign ( rDU, unop( Iop_Not32, mkexpr ( rT0U ) ) );
++      }
++      if (opc2 == 0x21b) { // evorc
++
++        assign ( rT0L, unop(  Iop_Not32, mkexpr ( rBL ) ) );
++        assign ( rT0U, unop(  Iop_Not32, mkexpr ( rBU ) ) );
++
++        assign ( rDL,  binop( Iop_Or32, mkexpr ( rAL ), mkexpr ( rT0L ) ) );
++        assign ( rDU,  binop( Iop_Or32, mkexpr ( rAU ), mkexpr ( rT0U ) ) );
++      }
++      if (opc2 == 0x21e) { // evnand
++
++        assign ( rT0L, binop( Iop_And32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
++        assign ( rT0U, binop( Iop_And32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
++
++        assign ( rDL, unop( Iop_Not32, mkexpr ( rT0L ) ) );
++        assign ( rDU, unop( Iop_Not32, mkexpr ( rT0U ) ) );
++      }
++
+       assign ( rD,  binop( Iop_32HLto64, mkexpr ( rDU ), mkexpr ( rDL ) ) );
+       putSPEReg( rD_addr, mkexpr ( rD ) );
+       break;
++   default:
++      return False;
+    }
+    return True;
+ }
+@@ -18402,8 +18485,14 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x211: // evand
++      case 0x212: // evandc
+       case 0x216: // evxor
+       case 0x217: // evor
++      case 0x218: // evnor
++      case 0x219: // eveqv
++      case 0x21b: // evorc
++      case 0x21e: // evnand
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_bitwise( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 78555b5..e16180e 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -2958,6 +2958,158 @@ int evmergelohi_asm(void)
+ }
+ TEST_SPE_DECL(evmergelohi_asm, "evmergelohi");
+ 
++int evand_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evand %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == AND(regA[0], regB[0]) &&
++           regD[1] == AND(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evand_asm, "evand");
++
++int evandc_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evandc %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == ANDC(regA[0], regB[0]) &&
++           regD[1] == ANDC(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evandc_asm, "evandc");
++
++int eveqv_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("eveqv %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == XNOR(regA[0], regB[0]) &&
++           regD[1] == XNOR(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(eveqv_asm, "eveqv");
++
++int evnand_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evnand %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == NAND(regA[0], regB[0]) &&
++           regD[1] == NAND(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evnand_asm, "evnand");
++
++int evnor_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evnor %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == NOR(regA[0], regB[0]) &&
++           regD[1] == NOR(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evnor_asm, "evnor");
++
++int evnot_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++  for (i = 0; i < NELTS(rB2u32); i++) {
++
++    regA = rB2u32[i];
++    // evnot rD, rA equivalent to evnor rD, rA, rA
++    asm volatile ("evnot %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == NOT(regA[0]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evnot_asm, "evnot");
++
++int evorc_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++    asm volatile ("evorc %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == ORC(regA[0], regB[0]) &&
++           regD[1] == ORC(regA[1], regB[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evorc_asm, "evorc");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -3049,6 +3201,13 @@ test_t spe_isa_bitwise_operators_test_table = {
+     F(evmr_asm),
+     F(evor_asm),
+     F(evxor_asm),
++    F(evand_asm),
++    F(evandc_asm),
++    F(eveqv_asm),
++    F(evnand_asm),
++    F(evnor_asm),
++    F(evnot_asm),
++    F(evorc_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 6e8a689..d5e895c 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4889,3 +4889,11 @@ const signed short rA1s16[] = {
+ };
+ 
+ signed short rD1s16[NELTS(rA1s16)];
++
++#define AND(a, b)  ((a) & (b))
++#define ANDC(a, b) ((a) & ~(b))
++#define XNOR(a, b) (((a) & (b)) | (~(a) & ~(b)))
++#define NAND(a, b) (~((a) & (b)))
++#define NOR(a, b)  (~((a) | (b)))
++#define NOT(a)     (~(a))
++#define ORC(a, b)  ((a) | ~(b))
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 6aeed71..169747e 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3136)
++   by 0x........: main (test_spe.c:3295)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3136)
++   by 0x........: main (test_spe.c:3295)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3136)
++   by 0x........: main (test_spe.c:3295)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 755e321..f1dd397 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -54,6 +54,13 @@ SPE Regression Tests: PASS
+ ....evmr: PASS
+ ....evor: PASS
+ ....evxor: PASS
++....evand: PASS
++....evandc: PASS
++....eveqv: PASS
++....evnand: PASS
++....evnor: PASS
++....evnot: PASS
++....evorc: PASS
+ ...SPE ISA Merge Instructions Tests: PASS
+ ....evmergehi: PASS
+ ....evmergehilo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index e171d1c..94291b8 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 67 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 71 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 29261 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  8513 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 29820 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  9073 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  2173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 13806 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  6655 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 18281 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 24136 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  3381 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 29496 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  8734 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0023-Implement-SPE-Instructions-evrlw-evrlwi-evslw-evslwi.patch b/recipes-devtools/valgrind/files/0023-Implement-SPE-Instructions-evrlw-evrlwi-evslw-evslwi.patch
new file mode 100644
index 0000000..84e1743
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0023-Implement-SPE-Instructions-evrlw-evrlwi-evslw-evslwi.patch
@@ -0,0 +1,902 @@
+From 47572d403b7c61f1f253144f1b880bf5e85e5b99 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 11 Feb 2013 13:43:21 -0800
+Subject: [PATCH 23/65] Implement SPE Instructions: { evrlw, evrlwi, evslw, evslwi, evsrwu, evsrwiu, evsrws, evsrwis }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  213 +++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  373 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    9 +
+ regtest-power7-64.log                    |   44 ++--
+ 5 files changed, 620 insertions(+), 25 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 4c9bcad..62395fe 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12455,6 +12455,208 @@ static Bool dis_spe_merge ( UInt theInstr )
+    }
+    return True;
+ }
++
++/*
++ * SPE Shift/Rotate Instructions
++ */
++static IRExpr* spe_evsrws ( IRExpr* src,
++                            IRExpr* amt )
++{
++  IRTemp d0 = newTemp( Ity_I64 );
++  IRTemp w0 = newTemp( Ity_I32 );
++  IRTemp w1 = newTemp( Ity_I32 );
++  IRTemp w2 = newTemp( Ity_I32 );
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp w4 = newTemp( Ity_I32 );
++  IRTemp w5 = newTemp( Ity_I32 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  assign( d0, unop( Iop_32Sto64, src ) );
++  assign( w0, unop( Iop_64HIto32,
++                    mkexpr ( d0 ) ) );
++  assign( w1, binop( Iop_Shr32,
++                     mkexpr ( w0 ),
++                     amt ) );
++  assign( w2, unop( Iop_Not32,
++                    mkexpr ( w1 ) ) );
++  assign( c0, binop( Iop_CmpEQ32,
++                      mkexpr ( w0 ),
++                      mkU32 ( 0xffffffff ) ) );
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr ( c0 ) ) );
++  assign( w4, IRExpr_Mux0X ( mkexpr ( b0 ),
++                             mkU32 ( 0x0 ),
++                             mkexpr ( w2 ) ) );
++  assign( w5, binop( Iop_Shr32, src, amt ) );
++  return binop( Iop_Or32,
++                mkexpr ( w4 ),
++                mkexpr ( w5 ) );
++}
++
++static IRExpr* spe_shift_amount ( IRExpr* src,
++                                  IRExpr* msk )
++{
++  return binop( Iop_And8,
++                unop( Iop_32to8,
++                      src ),
++                msk );
++}
++
++static Bool dis_spe_shift_rotate ( UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1    = evxOpcode( theInstr );
++   UInt  opc2    = evxXO( theInstr );
++   UChar rD_addr = evxRD( theInstr );
++   UChar rA_addr = evxRA( theInstr );
++   UChar rB_addr = evxRB( theInstr );
++   UChar uimm    = evxRB( theInstr );
++
++   IRTemp rA = newTemp( Ity_I64 );
++   IRTemp rB = newTemp( Ity_I64 );
++
++   IRTemp rAU  = newTemp( Ity_I32 );
++   IRTemp rAL  = newTemp( Ity_I32 );
++   IRTemp rBU  = newTemp( Ity_I32 );
++   IRTemp rBL  = newTemp( Ity_I32 );
++   IRTemp rDU  = newTemp( Ity_I32 );
++   IRTemp rDL  = newTemp( Ity_I32 );
++
++   IRTemp rD = newTemp( Ity_I64 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_shift_rotate(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++   switch (opc2) {
++   case 0x220:
++      // evsrwu (Vector Shift Right Word Unsigned, SPEPEM p5-227)
++      DIP( "evsrwu r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x221:
++      // evsrws (Vector Shift Right Word Signed, SPEPEM p5-226)
++      DIP( "evsrws r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x222:
++      // evsrwiu (Vector Shift Right Word Immediate Unsigned, SPEPEM p5-225)
++      DIP( "evsrwiu r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x223:
++      // evsrwis (Vector Shift Right Word Immediate Signed, SPEPEM p5-224)
++      DIP( "evsrwis r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x224:
++      // evslw (Vector Shift Left Word, SPEPEM p5-220)
++      DIP( "evslw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x226:
++      // evslwi (Vector Shift Left Word Immediate, SPEPEM p5-221)
++      DIP( "evslwi r%d, r%d, %d\n", rD_addr, rA_addr, uimm );
++      break;
++   case 0x228:
++      // evrlw (Vector Rotate Left Word, SPEPEM p5-216)
++      DIP( "evrlw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++      break;
++   case 0x22a:
++      // evrlwi (Vector Rotate Left Word Immediate, SPEPEM p5-217)
++      DIP( "evrlwi r%d, r%d, %d\n", rD_addr, rA_addr, uimm );
++      break;
++   default:
++      return False;
++   }
++
++   assign ( rA, getSPEReg( rA_addr ) );
++   assign ( rB, getSPEReg( rB_addr ) );
++
++   assign ( rAL, unop( Iop_64to32,
++                       mkexpr ( rA ) ) );
++   assign ( rAU, unop( Iop_64HIto32,
++                       mkexpr ( rA ) ) );
++   assign ( rBL, unop( Iop_64to32,
++                       mkexpr ( rB ) ) );
++   assign ( rBU, unop( Iop_64HIto32,
++                       mkexpr ( rB ) ) );
++
++   switch (opc2) {
++   case 0x220: // evsrwu
++
++      assign( rDL, binop( Iop_Shr32,
++                          mkexpr ( rAL ),
++                          spe_shift_amount ( mkexpr ( rBL ),
++                                             mkU8   ( 0x3f ) ) ) );
++      assign( rDU, binop( Iop_Shr32,
++                          mkexpr ( rAU ),
++                          spe_shift_amount ( mkexpr ( rBU ),
++                                             mkU8   ( 0x3f ) ) ) );
++      break;
++   case 0x221: // evsrws
++
++      assign( rDL, spe_evsrws ( mkexpr ( rAL ),
++                                spe_shift_amount ( mkexpr ( rBL ),
++                                                   mkU8   ( 0x3f ) ) ) );
++      assign( rDU, spe_evsrws ( mkexpr ( rAU ),
++                                spe_shift_amount ( mkexpr ( rBU ),
++                                                   mkU8   ( 0x3f ) ) ) );
++      break;
++   case 0x222: // evsrwiu
++      assign( rDL, binop( Iop_Shr32,
++                          mkexpr ( rAL ),
++                          mkU8 ( uimm ) ) );
++      assign( rDU, binop( Iop_Shr32,
++                          mkexpr ( rAU ),
++                          mkU8 ( uimm ) ) );
++      break;
++   case 0x223: // evsrwis
++      assign( rDL, spe_evsrws ( mkexpr ( rAL ),
++                                mkU8 ( uimm ) ) );
++      assign( rDU, spe_evsrws ( mkexpr ( rAU ),
++                                mkU8 ( uimm ) ) );
++      break;
++   case 0x224: // evslw
++      assign( rDL, binop( Iop_Shl32,
++                          mkexpr ( rAL ),
++                          spe_shift_amount ( mkexpr ( rBL ),
++                                             mkU8   ( 0x3f ) ) ) );
++      assign( rDU, binop( Iop_Shl32,
++                          mkexpr ( rAU ),
++                          spe_shift_amount ( mkexpr ( rBU ),
++                                             mkU8   ( 0x3f ) ) ) );
++      break;
++   case 0x226: // evslwi
++      assign( rDL, binop( Iop_Shl32,
++                          mkexpr ( rAL ),
++                          mkU8 ( uimm ) ) );
++      assign( rDU, binop( Iop_Shl32,
++                          mkexpr ( rAU ),
++                          mkU8 ( uimm ) ) );
++      break;
++   case 0x228: // evrlw
++      assign( rDL, ROTL( mkexpr ( rAL ),
++                         spe_shift_amount ( mkexpr ( rBL ),
++                                            mkU8   ( 0x1f ) ) ) );
++      assign( rDU, ROTL( mkexpr ( rAU ),
++                         spe_shift_amount ( mkexpr ( rBU ),
++                                            mkU8   ( 0x1f ) ) ) );
++      break;
++   case 0x22a: // evrlwi
++      assign( rDL, ROTL( mkexpr ( rAL ),
++                         mkU8 ( uimm ) ) );
++      assign( rDU, ROTL( mkexpr ( rAU ),
++                         mkU8 ( uimm ) ) );
++      break;
++   default:
++      return False;
++   }
++
++   assign ( rD, binop( Iop_32HLto64,
++                       mkexpr ( rDU ),
++                       mkexpr ( rDL ) ) );
++
++   putSPEReg( rD_addr, mkexpr ( rD ) );
++
++   return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -18496,6 +18698,17 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_bitwise( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x220: // evsrwu
++      case 0x221: // evsrws
++      case 0x222: // evsrwiu
++      case 0x223: // evsrwis
++      case 0x224: // evslw
++      case 0x226: // evslwi
++      case 0x228: // evrlw
++      case 0x22a: // evrlwi
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_shift_rotate( theInstr )) goto decode_success;
++         goto decode_failure;
+       default:
+          vex_printf("disInstr_PPC_WRK (ppc): unhandled SPE instruction: "
+                     "0x%x\n", theInstr);
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index e16180e..c8669d4 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -3110,6 +3110,359 @@ int evorc_asm(void)
+ }
+ TEST_SPE_DECL(evorc_asm, "evorc");
+ 
++/* Rotate x left by amount n */
++static inline unsigned int rotate_left(unsigned int x, unsigned int n)
++{
++  unsigned int length = sizeof (n) << 3;
++  unsigned int mask = ((0x1 << n) - 1);
++  unsigned int top_n = x & (mask << (length - n));
++  unsigned int displaced_part = (top_n) >> (length - n);
++  return (x << n) | displaced_part;
++}
++
++int evrlw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int i, upper_amount, lower_amount;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    for (upper_amount = 0; upper_amount < 32; upper_amount++) {
++      for (lower_amount = 0; lower_amount < 32; lower_amount++) {
++        regB = (__ev64_u32__) { upper_amount, lower_amount };
++        asm volatile ("evrlw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++        VERIFY(regD[0] == rotate_left (regA[0], upper_amount));
++        VERIFY(regD[1] == rotate_left (regA[1], lower_amount));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evrlw_asm, "evrlw");
++
++int evrlwi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++#define EVRLWI(rotate_amount)                                                               \
++    asm volatile ("evrlwi %[d], %[a], " #rotate_amount : [d] "=r" (regD) : [a] "r" (regA)); \
++    VERIFY(regD[0] == rotate_left (regA[0], rotate_amount));                                \
++    VERIFY(regD[1] == rotate_left (regA[1], rotate_amount));
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    EVRLWI(0);
++    EVRLWI(1);
++    EVRLWI(2);
++    EVRLWI(3);
++    EVRLWI(4);
++    EVRLWI(5);
++    EVRLWI(6);
++    EVRLWI(7);
++    EVRLWI(8);
++    EVRLWI(9);
++    EVRLWI(10);
++    EVRLWI(11);
++    EVRLWI(12);
++    EVRLWI(13);
++    EVRLWI(14);
++    EVRLWI(15);
++    EVRLWI(16);
++    EVRLWI(17);
++    EVRLWI(18);
++    EVRLWI(19);
++    EVRLWI(10);
++    EVRLWI(21);
++    EVRLWI(22);
++    EVRLWI(23);
++    EVRLWI(24);
++    EVRLWI(25);
++    EVRLWI(26);
++    EVRLWI(27);
++    EVRLWI(28);
++    EVRLWI(29);
++    EVRLWI(30);
++    EVRLWI(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evrlwi_asm, "evrlwi");
++
++/* Shift x left by amount n */
++static inline unsigned int shift_left(unsigned int x, unsigned int n)
++{
++  return x << n;
++}
++
++int evslw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++
++  int i, upper_amount, lower_amount;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    for (upper_amount = 0; upper_amount < 64; upper_amount++) {
++      for (lower_amount = 0; lower_amount < 64; lower_amount++) {
++        regB = (__ev64_u32__) { upper_amount, lower_amount };
++        asm volatile ("evslw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++        VERIFY(regD[0] == (shift_left (regA[0], upper_amount)));
++        VERIFY(regD[1] == (shift_left (regA[1], lower_amount)));
++        VERIFY(regD[0] == ((upper_amount >= 32) ? 0x0 : regD[0]));
++        VERIFY(regD[1] == ((lower_amount >= 32) ? 0x0 : regD[1]));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evslw_asm, "evslw");
++
++int evslwi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++#define EVSLWI(shift_amount)                                                               \
++    asm volatile ("evslwi %[d], %[a], " #shift_amount : [d] "=r" (regD) : [a] "r" (regA)); \
++    VERIFY(regD[0] == shift_left (regA[0], shift_amount));                                 \
++    VERIFY(regD[1] == shift_left (regA[1], shift_amount));
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    EVSLWI(0);
++    EVSLWI(1);
++    EVSLWI(2);
++    EVSLWI(3);
++    EVSLWI(4);
++    EVSLWI(5);
++    EVSLWI(6);
++    EVSLWI(7);
++    EVSLWI(8);
++    EVSLWI(9);
++    EVSLWI(10);
++    EVSLWI(11);
++    EVSLWI(12);
++    EVSLWI(13);
++    EVSLWI(14);
++    EVSLWI(15);
++    EVSLWI(16);
++    EVSLWI(17);
++    EVSLWI(18);
++    EVSLWI(19);
++    EVSLWI(20);
++    EVSLWI(21);
++    EVSLWI(22);
++    EVSLWI(23);
++    EVSLWI(24);
++    EVSLWI(25);
++    EVSLWI(26);
++    EVSLWI(27);
++    EVSLWI(28);
++    EVSLWI(29);
++    EVSLWI(30);
++    EVSLWI(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evslwi_asm, "evslwi");
++
++/* Shift x right unsigned by amount n */
++static inline unsigned int shift_rightu(unsigned int x, unsigned int n)
++{
++  return x >> n;
++}
++
++int evsrwu_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++
++  int i, upper_amount, lower_amount;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    for (upper_amount = 0; upper_amount < 64; upper_amount++) {
++      for (lower_amount = 0; lower_amount < 64; lower_amount++) {
++        regB = (__ev64_u32__) { upper_amount, lower_amount };
++        asm volatile ("evsrwu %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++        VERIFY(regD[0] == (shift_rightu (regA[0], upper_amount)));
++        VERIFY(regD[1] == (shift_rightu (regA[1], lower_amount)));
++        VERIFY(regD[0] == ((upper_amount >= 32) ? 0x0 : regD[0]));
++        VERIFY(regD[1] == ((lower_amount >= 32) ? 0x0 : regD[1]));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsrwu_asm, "evsrwu");
++
++int evsrwiu_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++#define EVSRWIU(shift_amount)                                                                 \
++    asm volatile ("evsrwiu %[d], %[a], " #shift_amount : [d] "=r" (regD) : [a] "r" (regA));  \
++    VERIFY(regD[0] == shift_rightu (regA[0], shift_amount));                                 \
++    VERIFY(regD[1] == shift_rightu (regA[1], shift_amount));
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    EVSRWIU(0);
++    EVSRWIU(1);
++    EVSRWIU(2);
++    EVSRWIU(3);
++    EVSRWIU(4);
++    EVSRWIU(5);
++    EVSRWIU(6);
++    EVSRWIU(7);
++    EVSRWIU(8);
++    EVSRWIU(9);
++    EVSRWIU(10);
++    EVSRWIU(11);
++    EVSRWIU(12);
++    EVSRWIU(13);
++    EVSRWIU(14);
++    EVSRWIU(15);
++    EVSRWIU(16);
++    EVSRWIU(17);
++    EVSRWIU(18);
++    EVSRWIU(19);
++    EVSRWIU(20);
++    EVSRWIU(21);
++    EVSRWIU(22);
++    EVSRWIU(23);
++    EVSRWIU(24);
++    EVSRWIU(25);
++    EVSRWIU(26);
++    EVSRWIU(27);
++    EVSRWIU(28);
++    EVSRWIU(29);
++    EVSRWIU(30);
++    EVSRWIU(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsrwiu_asm, "evsrwiu");
++
++/* Shift x right signed by amount n */
++static inline signed int shift_rights(signed int x, unsigned int n)
++{
++  return x >> n;
++}
++
++int evsrws_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  int i, upper_amount, lower_amount;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    for (upper_amount = 0; upper_amount < 64; upper_amount++) {
++      for (lower_amount = 0; lower_amount < 64; lower_amount++) {
++        regB = (__ev64_s32__) { upper_amount, lower_amount };
++        asm volatile ("evsrws %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++        VERIFY(regD[0] == (shift_rights (regA[0], upper_amount)));
++        VERIFY(regD[1] == (shift_rights (regA[1], lower_amount)));
++        VERIFY(regD[0] == ((upper_amount >= 32) ? ((regA[0] < 0) ? 0xffffffff : 0x0) : regD[0]));
++        VERIFY(regD[1] == ((lower_amount >= 32) ? ((regA[1] < 0) ? 0xffffffff : 0x0) : regD[1]));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsrws_asm, "evsrws");
++
++int evsrwis_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  int i;
++
++#define EVSRWIS(shift_amount)                                                               \
++    asm volatile ("evsrwis %[d], %[a], " #shift_amount : [d] "=r" (regD) : [a] "r" (regA)); \
++    VERIFY(regD[0] == shift_rights (regA[0], shift_amount));                                \
++    VERIFY(regD[1] == shift_rights (regA[1], shift_amount));
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    regA = rA2s32[i];
++    EVSRWIS(0);
++    EVSRWIS(1);
++    EVSRWIS(2);
++    EVSRWIS(3);
++    EVSRWIS(4);
++    EVSRWIS(5);
++    EVSRWIS(6);
++    EVSRWIS(7);
++    EVSRWIS(8);
++    EVSRWIS(9);
++    EVSRWIS(10);
++    EVSRWIS(11);
++    EVSRWIS(12);
++    EVSRWIS(13);
++    EVSRWIS(14);
++    EVSRWIS(15);
++    EVSRWIS(16);
++    EVSRWIS(17);
++    EVSRWIS(18);
++    EVSRWIS(19);
++    EVSRWIS(20);
++    EVSRWIS(21);
++    EVSRWIS(22);
++    EVSRWIS(23);
++    EVSRWIS(24);
++    EVSRWIS(25);
++    EVSRWIS(26);
++    EVSRWIS(27);
++    EVSRWIS(28);
++    EVSRWIS(29);
++    EVSRWIS(30);
++    EVSRWIS(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsrwis_asm, "evsrwis");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -3225,6 +3578,23 @@ test_t spe_isa_merge_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_shift_rotate_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Shift/Rotate Instructions Tests",
++  .table = {
++    F(evrlw_asm),
++    F(evrlwi_asm),
++    F(evslw_asm),
++    F(evslwi_asm),
++    F(evsrwu_asm),
++    F(evsrwiu_asm),
++    F(evsrws_asm),
++    F(evsrwis_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -3233,6 +3603,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_load_store_test_table,
+     &spe_isa_bitwise_operators_test_table,
+     &spe_isa_merge_insns_test_table,
++    &spe_isa_shift_rotate_insns_test_table,
+     NULL
+   }
+ };
+@@ -3312,3 +3683,5 @@ int main(void)
+ // 11. Make each test allocate (and deallocate!) it's own memory, so that in a minimal sense, we are testing memcheck.
+ //     (Use the pre-populated arrays as master inout data, replicating them as necessary).
+ // 12. register __ev64_u16__ vec asm ("29"); // Why does this test fail if we use __ev64_s16__?
++// 13. Add a category of tests: Trivial meaning - easy to verify - e.g. slwi (14, 1) == 28, etc.
++// 14. Add option to run just one test.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 169747e..adf4fdc 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3295)
++   by 0x........: main (test_spe.c:3666)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3295)
++   by 0x........: main (test_spe.c:3666)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3295)
++   by 0x........: main (test_spe.c:3666)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index f1dd397..4037c13 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -66,6 +66,15 @@ SPE Regression Tests: PASS
+ ....evmergehilo: PASS
+ ....evmergelo: PASS
+ ....evmergelohi: PASS
++...SPE ISA Shift/Rotate Instructions Tests: PASS
++....evrlw: PASS
++....evrlwi: PASS
++....evslw: PASS
++....evslwi: PASS
++....evsrwu: PASS
++....evsrwiu: PASS
++....evsrws: PASS
++....evsrwis: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 94291b8..067c7e2 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 72 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 66 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 67 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 72 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 72 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 72 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  8513 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 23894 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  9073 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 24453 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 13806 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 29142 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 18281 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  1282 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  3381 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18772 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  8734 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24122 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0024-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch b/recipes-devtools/valgrind/files/0024-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
new file mode 100644
index 0000000..92fd235
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0024-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
@@ -0,0 +1,764 @@
+From 0e67d16f6dae2505f9c957a65e8af33537ac31eb Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 15 Feb 2013 10:32:16 -0800
+Subject: [PATCH 24/65] Tests based on SPE Programming Interface Manual, Chapter 2: High-Level Language Interface.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |  573 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    2 +
+ regtest-power7-64.log                    |   22 +-
+ 4 files changed, 589 insertions(+), 14 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index c8669d4..b1bfec7 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -3463,6 +3463,559 @@ int evsrwis_asm(void)
+ }
+ TEST_SPE_DECL(evsrwis_asm, "evsrwis");
+ 
++int chapter2_spe2pim(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  /* Ref. SPE2PIM:
++   * Chapter 2 High-Level Language Interface,
++   * Sec. 5.1 Data Type Initialization
++   */
++
++  // For each of the __ev64_*__ types in Table 2-1, (verify that we can)
++  // initialize a variable for type __ev64_*__.
++
++  // 5.1.1 __ev64_opaque__ Initialization, (Implicit Cast)
++#if __EV64_US8__AVAILABLE
++  __ev64_opaque__ va0 = (__ev64_u8__)  { 0x7a, 0xff, 0x12, 0xb2, 0xcc, 0x7d, 0xe4, 0x30, };
++  __ev64_opaque__ va1 = (__ev64_s8__)  { 0xba, 0xd1, 0x4c, 0xea, 0x1a, 0x29, 0xb1, 0x85, };
++#endif
++  __ev64_opaque__ va2 = (__ev64_u16__) { 0x1ab4, 0x2110, 0x5aef, 0x10a0 };
++  __ev64_opaque__ va3 = (__ev64_s16__) { 0xf216, 0x1a32, 0xeeda, 0x2199 };
++  __ev64_opaque__ va4 = (__ev64_u32__) { 0x327462fa, 0xabbed01 };
++  __ev64_opaque__ va5 = (__ev64_s32__) { 0xa21434fb, 0x213abff };
++  __ev64_opaque__ va6 = (__ev64_u64__) { 0x78ffff012321abbf };
++  __ev64_opaque__ va7 = (__ev64_s64__) { 0x92abdf12abbc3190 };
++
++  // 5.1.1 __ev64_opaque__ Initialization, (Explicit Cast)
++#if __EV64_US8__AVAILABLE
++  __ev64_opaque__ vb0 = (__ev64_opaque__) (__ev64_u8__)  { 0x7a, 0xff, 0x12, 0xb2, 0xcc, 0x7d, 0xe4, 0x30, };
++  __ev64_opaque__ vb1 = (__ev64_opaque__) (__ev64_s8__)  { 0xba, 0xd1, 0x4c, 0xea, 0x1a, 0x29, 0xb1, 0x85, };
++#endif
++  __ev64_opaque__ vb2 = (__ev64_opaque__) (__ev64_u16__) { 0x1ab4, 0x2110, 0x5aef, 0x10a0 };
++  __ev64_opaque__ vb3 = (__ev64_opaque__) (__ev64_s16__) { 0xf216, 0x1a32, 0xeeda, 0x2199 };
++  __ev64_opaque__ vb4 = (__ev64_opaque__) (__ev64_u32__) { 0x327462fa, 0xabbed01 };
++  __ev64_opaque__ vb5 = (__ev64_opaque__) (__ev64_s32__) { 0xa21434fb, 0x213abff };
++  __ev64_opaque__ vb6 = (__ev64_opaque__) (__ev64_u64__) { 0x78ffff012321abbf };
++  __ev64_opaque__ vb7 = (__ev64_opaque__) (__ev64_s64__) { 0x92abdf12abbc3190 };
++
++  // 2.2.2.1 Alignment of __ev64_*__ Types
++#if __EV64_US8__AVAILABLE
++  VERIFY(__alignof__ (__ev64_u8__) == 8);
++  VERIFY(__alignof__ (__ev64_s8__) == 8);
++#endif
++  VERIFY(__alignof__ (__ev64_u16__) == 8);
++  VERIFY(__alignof__ (__ev64_s16__) == 8);
++  VERIFY(__alignof__ (__ev64_u32__) == 8);
++  VERIFY(__alignof__ (__ev64_s32__) == 8);
++  VERIFY(__alignof__ (__ev64_u64__) == 8);
++  VERIFY(__alignof__ (__ev64_s64__) == 8);
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(__alignof__ (va0) == 8);
++  VERIFY(__alignof__ (va1) == 8);
++#endif
++  VERIFY(__alignof__ (va2) == 8);
++  VERIFY(__alignof__ (va3) == 8);
++  VERIFY(__alignof__ (va4) == 8);
++  VERIFY(__alignof__ (va5) == 8);
++  VERIFY(__alignof__ (va6) == 8);
++  VERIFY(__alignof__ (va7) == 8);
++
++  // (Per 2.2.3.3, Address Operator valid)
++#if __EV64_US8__AVAILABLE
++  VERIFY(((unsigned int) &vb0) % 8 == 0);
++  VERIFY(((unsigned int) &vb1) % 8 == 0);
++#endif
++  VERIFY(((unsigned int) &vb2) % 8 == 0);
++  VERIFY(((unsigned int) &vb3) % 8 == 0);
++  VERIFY(((unsigned int) &vb4) % 8 == 0);
++  VERIFY(((unsigned int) &vb5) % 8 == 0);
++  VERIFY(((unsigned int) &vb6) % 8 == 0);
++  VERIFY(((unsigned int) &vb7) % 8 == 0);
++
++  // 2.2.2.2 Alignment of Aggregates and Unions Containing __ev64_*__ Types
++  struct sprinke_primes {
++    char c0[2];
++    __ev64_opaque__ v0;
++    char c1[3];
++    __ev64_opaque__ v1;
++    char c2[5];
++    __ev64_opaque__ v2;
++    char c3[7];
++    __ev64_opaque__ v3;
++    char c4[11];
++    __ev64_opaque__ v4;
++    char c5[13];
++    __ev64_opaque__ v5;
++    char c6[17];
++    __ev64_opaque__ v6;
++    char c7[19];
++    __ev64_opaque__ v7;
++  } sp;
++
++  VERIFY(__alignof__ (sp.c0) == 1);
++  VERIFY(__alignof__ (sp.v0) == 8);
++  VERIFY(__alignof__ (sp.c1) == 1);
++  VERIFY(__alignof__ (sp.v1) == 8);
++  VERIFY(__alignof__ (sp.c2) == 1);
++  VERIFY(__alignof__ (sp.v2) == 8);
++  VERIFY(__alignof__ (sp.c3) == 1);
++  VERIFY(__alignof__ (sp.v3) == 8);
++  VERIFY(__alignof__ (sp.c4) == 1);
++  VERIFY(__alignof__ (sp.v4) == 8);
++  VERIFY(__alignof__ (sp.c5) == 1);
++  VERIFY(__alignof__ (sp.v5) == 8);
++  VERIFY(__alignof__ (sp.c6) == 1);
++  VERIFY(__alignof__ (sp.v6) == 8);
++  VERIFY(__alignof__ (sp.c7) == 1);
++  VERIFY(__alignof__ (sp.v7) == 8);
++
++  // (Per 2.2.3.3, Address Operator valid)
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&va0, &vb0, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va1, &vb1, sizeof (__ev64_opaque__)) == 0);
++#endif
++  VERIFY(memcmp (&va2, &vb2, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va3, &vb3, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va4, &vb4, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va5, &vb5, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va6, &vb6, sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp (&va7, &vb7, sizeof (__ev64_opaque__)) == 0);
++
++  // 2.2.3.1 sizeof ()
++  // (Per 2.2.3.3, Address Operator valid)
++#if __EV64_US8__AVAILABLE
++  __ev64_opaque__ *pva0 = &va0;
++  __ev64_opaque__ *pva1 = &va1;
++#endif
++  __ev64_opaque__ *pva2 = &va2;
++  __ev64_opaque__ *pva3 = &va3;
++  __ev64_opaque__ *pva4 = &va4;
++  __ev64_opaque__ *pva5 = &va5;
++  __ev64_opaque__ *pva6 = &va6;
++  __ev64_opaque__ *pva7 = &va7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(sizeof (va0) == 8);
++  VERIFY(sizeof (va1) == 8);
++#endif
++  VERIFY(sizeof (va2) == 8);
++  VERIFY(sizeof (va3) == 8);
++  VERIFY(sizeof (va4) == 8);
++  VERIFY(sizeof (va5) == 8);
++  VERIFY(sizeof (va6) == 8);
++  VERIFY(sizeof (va7) == 8);
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(sizeof (*pva0) == 8);
++  VERIFY(sizeof (*pva1) == 8);
++#endif
++  VERIFY(sizeof (*pva2) == 8);
++  VERIFY(sizeof (*pva3) == 8);
++  VERIFY(sizeof (*pva4) == 8);
++  VERIFY(sizeof (*pva5) == 8);
++  VERIFY(sizeof (*pva6) == 8);
++  VERIFY(sizeof (*pva7) == 8);
++
++  // 2.2.3.2 Assignment (a = o)
++#if __EV64_US8__AVAILABLE
++  __ev64_u8__ xa0 = va0;
++  __ev64_s8__ xa1 = va1;
++#endif
++  __ev64_u16__ xa2 = va2;
++  __ev64_s16__ xa3 = va3;
++  __ev64_u32__ xa4 = va4;
++  __ev64_s32__ xa5 = va5;
++  __ev64_u64__ xa6 = va6;
++  __ev64_s64__ xa7 = va7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&va0, &xa0, sizeof (__ev64_u8__)) == 0);
++  VERIFY(memcmp (&va1, &xa1, sizeof (__ev64_s8__)) == 0);
++#endif
++  VERIFY(memcmp (&va2, &xa2, sizeof (__ev64_u16__)) == 0);
++  VERIFY(memcmp (&va3, &xa3, sizeof (__ev64_s16__)) == 0);
++  VERIFY(memcmp (&va4, &xa4, sizeof (__ev64_u32__)) == 0);
++  VERIFY(memcmp (&va5, &xa5, sizeof (__ev64_s32__)) == 0);
++  VERIFY(memcmp (&va6, &xa6, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&va7, &xa7, sizeof (__ev64_s64__)) == 0);
++
++  // 2.2.3.2 Assignment (o = a)
++#if __EV64_US8__AVAILABLE
++  vb0 = xa0;
++  vb1 = xa1;
++#endif
++  vb2 = xa2;
++  vb3 = xa3;
++  vb4 = xa4;
++  vb5 = xa5;
++  vb6 = xa6;
++  vb7 = xa7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&vb0, &xa0, sizeof (__ev64_u8__)) == 0);
++  VERIFY(memcmp (&vb1, &xa1, sizeof (__ev64_s8__)) == 0);
++#endif
++  VERIFY(memcmp (&vb2, &xa2, sizeof (__ev64_u16__)) == 0);
++  VERIFY(memcmp (&vb3, &xa3, sizeof (__ev64_s16__)) == 0);
++  VERIFY(memcmp (&vb4, &xa4, sizeof (__ev64_u32__)) == 0);
++  VERIFY(memcmp (&vb5, &xa5, sizeof (__ev64_s32__)) == 0);
++  VERIFY(memcmp (&vb6, &xa6, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&vb7, &xa7, sizeof (__ev64_s64__)) == 0);
++
++  // 2.2.3.4 Pointer Arithmetic
++  __ev64_u32__ a[4] = {
++    (__ev64_u32__) {  1,   2 },
++    (__ev64_u32__) {  4,   8 },
++    (__ev64_u32__) { 16,  32 },
++    (__ev64_u32__) { 64, 128 },
++  };
++  __ev64_opaque__ *p = &a[0];
++
++  VERIFY(memcmp ((p++), &a[0], sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp ((p++), &a[1], sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp ((p++), &a[2], sizeof (__ev64_opaque__)) == 0);
++  VERIFY(memcmp ((p++), &a[3], sizeof (__ev64_opaque__)) == 0);
++
++  // 2.2.3.5 Pointer Dereferencing
++  __ev64_u32__ dw0, dw1, dw2, dw3;
++
++  p = &a[0];
++  dw0 = *p;
++  VERIFY(memcmp (&dw0, &a[0], sizeof (__ev64_u32__)) == 0);
++  p = p + 1;
++  dw1 = *p;
++  VERIFY(memcmp (&dw1, &a[1], sizeof (__ev64_u32__)) == 0);
++  p = p + 1;
++  dw2 = *p;
++  VERIFY(memcmp (&dw2, &a[2], sizeof (__ev64_u32__)) == 0);
++  p = p + 1;
++  dw3 = *p;
++  VERIFY(memcmp (&dw3, &a[3], sizeof (__ev64_u32__)) == 0);
++
++  dw0 = (__ev64_u32__) { 0x0, 0x0 };
++  dw1 = (__ev64_u32__) { 0x0, 0x0 };
++  dw2 = (__ev64_u32__) { 0x0, 0x0 };
++  dw3 = (__ev64_u32__) { 0x0, 0x0 };
++
++   p = &a[0];
++  *p = dw0; p++;
++  *p = dw1; p++;
++  *p = dw2; p++;
++  *p = dw3;
++
++  char *q;
++  for (q = (char *) &a[0]; (q - ((char *) &a[0])) < ((sizeof (a)/sizeof (a[0])) * sizeof (typeof (a[0]))); q++)
++    VERIFY (*q == 0x0);
++
++  // 2.2.3.6 Type Casting
++  __ev64_u64__ vec_u64 = (__ev64_u64__) { 0xfedcba0123456789 };
++
++#if __EV64_US8__AVAILABLE
++  __ev64_u8__ ya0 = (__ev64_u8__) vec_u64;
++  __ev64_s8__ ya1 = (__ev64_s8__) vec_u64;
++#endif
++  __ev64_u16__ ya2 = (__ev64_u16__) vec_u64;
++  __ev64_s16__ ya3 = (__ev64_s16__) vec_u64;
++  __ev64_u32__ ya4 = (__ev64_u32__) vec_u64;
++  __ev64_s32__ ya5 = (__ev64_s32__) vec_u64;
++  __ev64_u64__ ya6 = (__ev64_u64__) vec_u64;
++  __ev64_s64__ ya7 = (__ev64_s64__) vec_u64;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya0, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya1, &vec_u64, sizeof (__ev64_u64__)) == 0);
++#endif
++  VERIFY(memcmp (&ya2, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya3, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya4, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya5, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya6, &vec_u64, sizeof (__ev64_u64__)) == 0);
++  VERIFY(memcmp (&ya7, &vec_u64, sizeof (__ev64_u64__)) == 0);
++
++#if __EV64_US8__AVAILABLE
++  // Cast from each __ev64_*__ type to __ev64_u8__
++  ya0 = (typeof (ya0)) ya0;
++  ya0 = (typeof (ya0)) ya1;
++  ya0 = (typeof (ya0)) ya2;
++  ya0 = (typeof (ya0)) ya3;
++  ya0 = (typeof (ya0)) ya4;
++  ya0 = (typeof (ya0)) ya5;
++  ya0 = (typeof (ya0)) ya6;
++  ya0 = (typeof (ya0)) ya7;
++
++  VERIFY(memcmp (&ya0, &ya0, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya1, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya2, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya3, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya4, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya5, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya6, sizeof (typeof (ya0))) == 0);
++  VERIFY(memcmp (&ya0, &ya7, sizeof (typeof (ya0))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_s8__
++  ya1 = (typeof (ya1)) ya0;
++  ya1 = (typeof (ya1)) ya1;
++  ya1 = (typeof (ya1)) ya2;
++  ya1 = (typeof (ya1)) ya3;
++  ya1 = (typeof (ya1)) ya4;
++  ya1 = (typeof (ya1)) ya5;
++  ya1 = (typeof (ya1)) ya6;
++  ya1 = (typeof (ya1)) ya7;
++
++  VERIFY(memcmp (&ya1, &ya0, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya1, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya2, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya3, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya4, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya5, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya6, sizeof (typeof (ya1))) == 0);
++  VERIFY(memcmp (&ya1, &ya7, sizeof (typeof (ya1))) == 0);
++#endif
++
++  // Cast from each __ev64_*__ type to __ev64_u16__
++#if __EV64_US8__AVAILABLE
++  ya2 = (typeof (ya2)) ya0;
++  ya2 = (typeof (ya2)) ya1;
++#endif
++  ya2 = (typeof (ya2)) ya2;
++  ya2 = (typeof (ya2)) ya3;
++  ya2 = (typeof (ya2)) ya4;
++  ya2 = (typeof (ya2)) ya5;
++  ya2 = (typeof (ya2)) ya6;
++  ya2 = (typeof (ya2)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya2, &ya0, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya1, sizeof (typeof (ya2))) == 0);
++#endif
++  VERIFY(memcmp (&ya2, &ya2, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya3, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya4, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya5, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya6, sizeof (typeof (ya2))) == 0);
++  VERIFY(memcmp (&ya2, &ya7, sizeof (typeof (ya2))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_s16__
++#if __EV64_US8__AVAILABLE
++  ya3 = (typeof (ya3)) ya0;
++  ya3 = (typeof (ya3)) ya1;
++#endif
++  ya3 = (typeof (ya3)) ya2;
++  ya3 = (typeof (ya3)) ya3;
++  ya3 = (typeof (ya3)) ya4;
++  ya3 = (typeof (ya3)) ya5;
++  ya3 = (typeof (ya3)) ya6;
++  ya3 = (typeof (ya3)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya3, &ya0, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya1, sizeof (typeof (ya3))) == 0);
++#endif
++  VERIFY(memcmp (&ya3, &ya2, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya3, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya4, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya5, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya6, sizeof (typeof (ya3))) == 0);
++  VERIFY(memcmp (&ya3, &ya7, sizeof (typeof (ya3))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_u32__
++#if __EV64_US8__AVAILABLE
++  ya4 = (typeof (ya4)) ya0;
++  ya4 = (typeof (ya4)) ya1;
++#endif
++  ya4 = (typeof (ya4)) ya2;
++  ya4 = (typeof (ya4)) ya3;
++  ya4 = (typeof (ya4)) ya4;
++  ya4 = (typeof (ya4)) ya5;
++  ya4 = (typeof (ya4)) ya6;
++  ya4 = (typeof (ya4)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya4, &ya0, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya1, sizeof (typeof (ya4))) == 0);
++#endif
++  VERIFY(memcmp (&ya4, &ya2, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya3, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya4, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya5, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya6, sizeof (typeof (ya4))) == 0);
++  VERIFY(memcmp (&ya4, &ya7, sizeof (typeof (ya4))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_s32__
++#if __EV64_US8__AVAILABLE
++  ya5 = (typeof (ya5)) ya0;
++  ya5 = (typeof (ya5)) ya1;
++#endif
++  ya5 = (typeof (ya5)) ya2;
++  ya5 = (typeof (ya5)) ya3;
++  ya5 = (typeof (ya5)) ya4;
++  ya5 = (typeof (ya5)) ya5;
++  ya5 = (typeof (ya5)) ya6;
++  ya5 = (typeof (ya5)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya5, &ya0, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya1, sizeof (typeof (ya5))) == 0);
++#endif
++  VERIFY(memcmp (&ya5, &ya2, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya3, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya4, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya5, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya6, sizeof (typeof (ya5))) == 0);
++  VERIFY(memcmp (&ya5, &ya7, sizeof (typeof (ya5))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_u64__
++#if __EV64_US8__AVAILABLE
++  ya6 = (typeof (ya6)) ya0;
++  ya6 = (typeof (ya6)) ya1;
++#endif
++  ya6 = (typeof (ya6)) ya2;
++  ya6 = (typeof (ya6)) ya3;
++  ya6 = (typeof (ya6)) ya4;
++  ya6 = (typeof (ya6)) ya5;
++  ya6 = (typeof (ya6)) ya6;
++  ya6 = (typeof (ya6)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya6, &ya0, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya1, sizeof (typeof (ya6))) == 0);
++#endif
++  VERIFY(memcmp (&ya6, &ya2, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya3, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya4, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya5, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya6, sizeof (typeof (ya6))) == 0);
++  VERIFY(memcmp (&ya6, &ya7, sizeof (typeof (ya6))) == 0);
++
++  // Cast from each __ev64_*__ type to __ev64_s64__
++#if __EV64_US8__AVAILABLE
++  ya7 = (typeof (ya7)) ya0;
++  ya7 = (typeof (ya7)) ya1;
++#endif
++  ya7 = (typeof (ya7)) ya2;
++  ya7 = (typeof (ya7)) ya3;
++  ya7 = (typeof (ya7)) ya4;
++  ya7 = (typeof (ya7)) ya5;
++  ya7 = (typeof (ya7)) ya6;
++  ya7 = (typeof (ya7)) ya7;
++
++#if __EV64_US8__AVAILABLE
++  VERIFY(memcmp (&ya7, &ya0, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya1, sizeof (typeof (ya7))) == 0);
++#endif
++  VERIFY(memcmp (&ya7, &ya2, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya3, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya4, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya5, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya6, sizeof (typeof (ya7))) == 0);
++  VERIFY(memcmp (&ya7, &ya7, sizeof (typeof (ya7))) == 0);
++
++  // 2.2.4.1 __ev64_*__ Initialization and Literals
++  // Per: "The __ev64_opaque__ type is the only __ev64_*__ type
++  //  that cannot be initialized. The remaining __ev64_*__ types
++  //  can be initialized using the C99 array initialization syntax.
++  //  Each type is treated as an array of the specified data
++  //  contents of the appropriate size.", we use the []-notation,
++  //  here and elsewhere. That works for assigning to individual
++  //  elements of the array, >>when the __ev64_*__ array is in
++  //  memory, *not* when it is in a 64-bit GPR, qualified by the
++  //  register keyword<<; in other words, GCC permits:
++  //
++  //  __ev64_*__ v;
++  //
++  //  followed by:
++  //
++  //  v[0] = val0;
++  //  v[1] = val1;
++  //  v[2] = val2;
++  //  ...
++  //
++  //  - the individual elements get assigned to, as expected, but
++  //  the same does not work if we were to declare v, (say) as:
++  //
++  //  register __ev64_*__ v asm ("30");
++  //
++  //  (Only the lowest word (in the case of __ev64_u32__) gets
++  //  assigned to). However, when qualified as 'register', we can still
++  //  access the individual components of as if 'v' were an array in
++  //  _uses_.
++  //
++  //  Here, we test both forms of access - what we find GCC accepts
++  //  and what the SPE2PIM specifies.
++  //
++  //  TODO: See if the access works with the SPE2PIM intrinsics
++  //  on register qualified ev's! :)
++
++#if __EV64_US8__AVAILABLE
++  __ev64_u8__  a = {  5,  3,  9,  6,  1,  8, 9, 1 };
++  VERIFY(a[0] == 5 && a[1] == 3 && a[2] == 9 && a[3] == 6 &&
++         a[4] == 1 && a[5] == 8 && a[6] == 9 && a[7] == 1);
++
++  __ev64_s8__  b = { -1, -6, -7, -2, -3, -5, 4, 6 };
++  VERIFY(b[0] == -1 && b[1] == -6 && b[2] == -7 && b[3] == -2 &&
++         b[4] == -3 && b[5] == -5 && b[6] ==  4 && b[7] == 6);
++#endif
++
++  __ev64_u16__ c = {  2,  1,  7,  4 };
++  VERIFY(c[0] == 2);
++  VERIFY(c[1] == 1);
++  VERIFY(c[2] == 7);
++  VERIFY(c[3] == 4);
++  VERIFY(__ev_get_u16(c, 0) == 2);
++  VERIFY(__ev_get_u16(c, 1) == 1);
++  VERIFY(__ev_get_u16(c, 2) == 7);
++  VERIFY(__ev_get_u16(c, 3) == 4);
++
++  __ev64_s16__ d = { -2, -7, -5,  9 };
++  VERIFY(d[0] == -2);
++  VERIFY(d[1] == -7);
++  VERIFY(d[2] == -5);
++  VERIFY(d[3] ==  9);
++  VERIFY(__ev_get_s16(d, 0) == -2);
++  VERIFY(__ev_get_s16(d, 1) == -7);
++  VERIFY(__ev_get_s16(d, 2) == -5);
++  VERIFY(__ev_get_s16(d, 3) ==  9);
++
++  __ev64_u32__ e = {  5, 2 };
++  VERIFY(e[0] == 5);
++  VERIFY(e[1] == 2);
++  VERIFY(__ev_get_upper_u32(e) == 5);
++  VERIFY(__ev_get_lower_u32(e) == 2);
++  VERIFY(__ev_get_u32(e, 0) == 5);
++  VERIFY(__ev_get_u32(e, 1) == 2);
++
++  __ev64_s32__ f = { -8, 7 };
++  VERIFY(f[0] == -8);
++  VERIFY(f[1] ==  7);
++  VERIFY(__ev_get_upper_s32(f) == -8);
++  VERIFY(__ev_get_lower_s32(f) ==  7);
++  VERIFY(__ev_get_s32(f, 0) == -8);
++  VERIFY(__ev_get_s32(f, 1) ==  7);
++
++  __ev64_u64__ g = { 29 };
++  VERIFY(g[0] == 29);
++  // Wishful thinking: VERIFY(__ev_get_u64(g, 0) == 29);
++
++  __ev64_s64__ h = { -56 };
++  VERIFY(h[0] == -56);
++  // Wishful thinking: VERIFY(__ev_get_s64(h, 0) == -56);
++
++#if __ADDED_FP_SUPPORT__
++  __ev64_fs__  i = { 3.14, -2.71 };
++  VERIFY(i[0] == 3.14 && i[1] == -2.71);
++#endif
++
++ // 2.2.4.2 New Operators Representing SPE2 Operations
++ // Tested elsewhere...
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(chapter2_spe2pim, "Chapter 2: High-Level Language Interface");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -3623,6 +4176,24 @@ test_t pool_demo_table = {
+   }
+ };
+ 
++test_t spe2pim_tests_table = {
++
++  /* Enhanced Signal Processing Extension and
++   * Embedded Floating-Point Version 2
++   * Auxiliary Processing Units
++   * Programming Interface Manual
++   * SPE2PIM
++   * Rev. 1.0-1 : Based on Specifications SPE2rev1.0 and EFP2rev1.3
++   * 10/2011
++   */
++  .type = table,
++  .description = "SPE2PIM Tests",
++  .table = {
++    F(chapter2_spe2pim),
++    NULL
++  }
++};
++
+ test_t spe_isa_misc_test_table = {
+ 
+   .type = table,
+@@ -3643,6 +4214,7 @@ test_t spe_isa_test_table = {
+   .description = "SPE ISA Tests",
+   .table = {
+     &spe_isa_insn_test_table,
++    &spe2pim_tests_table,
+     &spe_isa_misc_test_table,
+     NULL
+   }
+@@ -3685,3 +4257,4 @@ int main(void)
+ // 12. register __ev64_u16__ vec asm ("29"); // Why does this test fail if we use __ev64_s16__?
+ // 13. Add a category of tests: Trivial meaning - easy to verify - e.g. slwi (14, 1) == 28, etc.
+ // 14. Add option to run just one test.
++// 15. Add floating point examples to the spe2pim tests. See: __ADDED_FP_SUPPORT__
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index adf4fdc..7a13532 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3666)
++   by 0x........: main (test_spe.c:4238)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3666)
++   by 0x........: main (test_spe.c:4238)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:3666)
++   by 0x........: main (test_spe.c:4238)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 4037c13..2c8e686 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -75,6 +75,8 @@ SPE Regression Tests: PASS
+ ....evsrwiu: PASS
+ ....evsrws: PASS
+ ....evsrwis: PASS
++..SPE2PIM Tests: PASS
++...Chapter 2: High-Level Language Interface: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 067c7e2..3a1e6fb 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 72 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 72 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 23894 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 26758 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 24453 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 27317 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 29142 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 32006 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  1282 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  4165 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 18772 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21657 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 24122 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 27000 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0025-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch b/recipes-devtools/valgrind/files/0025-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
new file mode 100644
index 0000000..8870fe2
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0025-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
@@ -0,0 +1,314 @@
+From 3b4861ddc95bda8d0967c28ab0be6281419a4b83 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 15 Feb 2013 13:04:06 -0800
+Subject: [PATCH 25/65] Tests based on SPE Programming Interface Manual, Chapter 5: Programming Interface Examples.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |  180 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    1 +
+ regtest-power7-64.log                    |   12 +-
+ 4 files changed, 190 insertions(+), 9 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index b1bfec7..fb3506d 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -4016,6 +4016,185 @@ int chapter2_spe2pim(void)
+ }
+ TEST_SPE_DECL(chapter2_spe2pim, "Chapter 2: High-Level Language Interface");
+ 
++int chapter5_spe2pim(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  /* Ref. SPE2PIM:Chapter 5
++   * Programming Interface Examples
++   */
++
++  // 5.1.1 __ev64_opaque__ Initialization
++  __ev64_opaque__ v0 = (__ev64_u32__) { 0, 1 };
++  VERIFY(v0[0] == 0 && v0[1] == 1);
++
++  __ev64_opaque__ v1 = (__ev64_opaque__)(__ev64_u32__) { 0, 1 };
++  VERIFY(v1[0] == 0 && v1[1] == 1);
++
++  __ev64_opaque__ v2 = (__ev64_u16__) (__ev64_opaque__) (__ev64_u32__) { 0, 1 };
++  VERIFY(v2[0] == 0 && v2[1] == 1);
++
++  __ev64_opaque__ v3 = (__ev64_opaque__) (__ev64_u16__) (__ev64_u32__) { 0, 1 };
++  VERIFY(v3[0] == 0 && v3[1] == 1);
++
++  __ev64_opaque__ v4 = (__ev64_u16__) (__ev64_u32__) { 0, 1 };
++  VERIFY(v4[0] == 0 && v4[1] == 1);
++
++#if 0
++  // Not sure why we get these:
++  // test_spe.c:4016:3: warning: index value is out of bound [-Warray-bounds]
++  // test_spe.c:4016:3: warning: index value is out of bound [-Warray-bounds]
++  __ev64_opaque__ v5 = (__ev64_u16__) { 0, 1, 2, 3 };
++  VERIFY(v5[0] == 0 && v5[1] == 1 && v5[2] == 2 && v5[3] == 3);
++#endif
++
++  // 5.1.2 Array Initialization of SPE2 Data Types
++  __ev64_u32__ x1[4] = {
++    { 0, 1 },
++    { 2, 3 },
++    { 4, 5 },
++    { 6, 7 }
++  };
++  VERIFY(x1[0][0] == 0 && x1[0][1] == 1);
++  VERIFY(x1[1][0] == 2 && x1[1][1] == 3);
++  VERIFY(x1[2][0] == 4 && x1[2][1] == 5);
++  VERIFY(x1[3][0] == 6 && x1[3][1] == 7);
++
++  __ev64_u16__ x2[4] = {
++    {  0,  1,  2,  3 },
++    {  4,  5,  6,  7 },
++    {  8,  9, 10, 11 },
++    { 12, 13, 14, 15 },
++  };
++  VERIFY(x2[0][0] ==  0 && x2[0][1] ==  1 && x2[0][2] ==  2 && x2[0][3] ==  3);
++  VERIFY(x2[1][0] ==  4 && x2[1][1] ==  5 && x2[1][2] ==  6 && x2[1][3] ==  7);
++  VERIFY(x2[2][0] ==  8 && x2[2][1] ==  9 && x2[2][2] == 10 && x2[2][3] == 11);
++  VERIFY(x2[3][0] == 12 && x2[3][1] == 13 && x2[3][2] == 14 && x2[3][3] == 15);
++
++#if __ADDED_FP_SUPPORT__
++  __ev64_fs__ x3[4] = {
++    {  1.1f,  2.2f },
++    { -3.3f,  4.4f },
++    {  5.5f,  6.6f },
++    {  7.7f, -8.8f }
++  };
++#endif
++
++  __ev64_u32__ x4[4] = {
++    (__ev64_u32__) { 0, 1 },
++    (__ev64_u32__) { 2, 3 },
++    (__ev64_u32__) { 4, 5 },
++    (__ev64_u32__) { 6, 7 }
++  };
++  VERIFY(x4[0][0] == 0 && x4[0][1] == 1);
++  VERIFY(x4[1][0] == 2 && x4[1][1] == 3);
++  VERIFY(x4[2][0] == 4 && x4[2][1] == 5);
++  VERIFY(x4[3][0] == 6 && x4[3][1] == 7);
++
++#if 0
++  __ev64_u32__ x5[ /*4*/ 5 ] = {
++    (__ev64_u32__) { 0, 1 },
++    // GCC (4.6.2(, does not like this:
++    // (__ev64_u16__) { 2, 3, 4, 5},
++    // We get:
++    // test_spe.c:4051:5: error: incompatible types when initializing type
++    // 'unsigned int' using type '__ev64_u16__'
++    (__ev64_u32__) { 2, 3 }, // Rewritten
++    (__ev64_u32__) { 4, 5 }, // Rewritten
++    (__ev64_u32__) { 6, 7 },
++    (__ev64_u32__) { 8, 9 }
++  };
++#endif
++
++  // 5.2 Fixed-Point Accessors
++#if __ADDED_FP_SUPPORT__
++  // TODO: ADD examples here.
++#endif
++
++  // 5.3 Loads
++  __ev64_u32__ tab[] = {
++    (__ev64_u32__) { 0x0cc20304, 0xd5060708 },
++    (__ev64_u32__) { 0x090a0b0c, 0xbd020f10 },
++    (__ev64_u32__) { 0xb11b1314, 0x1b161718 },
++    (__ev64_u32__) { 0x19ccfb1c, 0xbdbe4f20 },
++    (__ev64_u32__) { 0xcd7c7b7c, 0x7d7e7f80 },
++    (__ev64_u32__) { 0x8d8c8384, 0x85868788 },
++    (__ev64_u32__) { 0x89fa8b8c, 0xbd8e8f90 },
++    (__ev64_u32__) { 0x9192f3a4, 0x95969798 }
++  };
++
++
++  // 5.3.1 __ev_lddx
++  __ev64_u32__ vec0;
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 0*8);
++  VERIFY(memcmp (&vec0, &tab[0], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 1*8);
++  VERIFY(memcmp (&vec0, &tab[1], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 2*8);
++  VERIFY(memcmp (&vec0, &tab[2], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 3*8);
++  VERIFY(memcmp (&vec0, &tab[3], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 4*8);
++  VERIFY(memcmp (&vec0, &tab[4], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 5*8);
++  VERIFY(memcmp (&vec0, &tab[5], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 6*8);
++  VERIFY(memcmp (&vec0, &tab[6], sizeof(__ev64_u32__)) == 0);
++
++  vec0 = __ev_lddx((__ev64_opaque__ *)(&tab[0]), 7*8);
++  VERIFY(memcmp (&vec0, &tab[7], sizeof(__ev64_u32__)) == 0);
++
++  // 5.3.2 __ev_ldd
++  __ev64_u32__ vec1;
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 0);
++  VERIFY(memcmp (&vec1, &tab[0], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 1);
++  VERIFY(memcmp (&vec1, &tab[1], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 2);
++  VERIFY(memcmp (&vec1, &tab[2], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 3);
++  VERIFY(memcmp (&vec1, &tab[3], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 4);
++  VERIFY(memcmp (&vec1, &tab[4], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 5);
++  VERIFY(memcmp (&vec1, &tab[5], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 6);
++  VERIFY(memcmp (&vec1, &tab[6], sizeof(__ev64_u32__)) == 0);
++
++  vec1 = __ev_ldd((__ev64_opaque__ *)(&tab[0]), 7);
++  VERIFY(memcmp (&vec1, &tab[7], sizeof(__ev64_u32__)) == 0);
++
++#if 0
++  // 5.3.4 __ev_lhhesplat
++  // test_spe.c:4154:3: warning: passing argument 1 of '__builtin_spe_evlhhesplat'
++  //                    from incompatible pointer type [enabled by default]
++  // test_spe.c:4154:3: note: expected 'short unsigned int *' but argument is of
++  //                    type '__vector(2) int *'
++  __ev64_u32__ vec2 = __ev_lhhesplat((__ev64_opaque__ *)(&tab[0]), 4);
++  __ev64_u32__ vec3 = (__ev64_u32__) { 0x090a0000, 0x090a0000 };
++  VERIFY(memcmp (&vec2, &vec3, sizeof (__ev64_u32__)) == 0);
++#endif
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(chapter5_spe2pim, "Chapter 5: Programming Interface Examples");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -4190,6 +4369,7 @@ test_t spe2pim_tests_table = {
+   .description = "SPE2PIM Tests",
+   .table = {
+     F(chapter2_spe2pim),
++    F(chapter5_spe2pim),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 7a13532..40fa966 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4238)
++   by 0x........: main (test_spe.c:4418)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4238)
++   by 0x........: main (test_spe.c:4418)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4238)
++   by 0x........: main (test_spe.c:4418)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 2c8e686..d4ff5c8 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -77,6 +77,7 @@ SPE Regression Tests: PASS
+ ....evsrwis: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
++...Chapter 5: Programming Interface Examples: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 3a1e6fb..d8cbf5d 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 26758 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  4143 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 27317 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  4703 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 32006 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  9413 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  4165 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 13932 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 21657 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 31352 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 27000 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  4389 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0026-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch b/recipes-devtools/valgrind/files/0026-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
new file mode 100644
index 0000000..5501671
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0026-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
@@ -0,0 +1,407 @@
+From 26c74d915446d57be340d1cebee8b6a17c59477b Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 15 Feb 2013 14:57:19 -0800
+Subject: [PATCH 26/65] Tests based on SPE Programming Interface Manual, Chapter 4: Additional Operations, Section 4.1: Data Manipulation.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |  269 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    1 +
+ regtest-power7-64.log                    |   12 +-
+ 4 files changed, 279 insertions(+), 9 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index fb3506d..6da8902 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -4195,6 +4195,272 @@ int chapter5_spe2pim(void)
+ }
+ TEST_SPE_DECL(chapter5_spe2pim, "Chapter 5: Programming Interface Examples");
+ 
++int chapter4_spe2pim(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  int i, j;
++
++  /* Ref. SPE2PIM:Chapter 4
++   * Additional Operations
++   */
++
++  // 4.1.1 Creation Intrinsics
++  uint64_t x0 = 0x01234567deadbeef;
++  __ev64_opaque__ v0 = __ev_create_u64(x0);
++  VERIFY(memcmp (&x0, &v0, sizeof (x0)) == 0);
++
++  int64_t x1 = 0xdeadbeef01234567;
++  __ev64_opaque__ v1 = __ev_create_s64(x1);
++  VERIFY(memcmp (&x1, &v1, sizeof (x1)) == 0);
++
++#if __ADDED_FP_SUPPORT__
++  __ev64_opaque__ __ev_create_fs( float a, float b );
++#endif
++
++  uint32_t a0[2] = { 0xeaeaeaea, 0x21782414 };
++  __ev64_opaque__ v2 = __ev_create_u32(a0[0], a0[1]);
++  VERIFY(memcmp (&a0[0], &v2, sizeof (a0)) == 0);
++
++  int32_t a1[2] = { 0xffffffff, 0x91aefb2c };
++  __ev64_opaque__ v3 = __ev_create_s32(a1[0], a1[1]);
++  VERIFY(memcmp (&a1[0], &v3, sizeof (a1)) == 0);
++
++  uint16_t a2[4] = { 0xa21b, 0xfc10, 0x2cb5, 0x2179 };
++  __ev64_opaque__ v4 = __ev_create_u16(a2[0], a2[1], a2[2], a2[3]);
++  VERIFY(memcmp (&a2[0], &v4, sizeof (a2)) == 0);
++
++  int16_t a3[4] = { 0x920a, 0xff51, 0x8cd7, 0xbbcc };
++  __ev64_opaque__ v5 = __ev_create_s16(a3[0], a3[1], a3[2], a3[3]);
++  VERIFY(memcmp (&a3[0], &v5, sizeof (a3)) == 0);
++
++#if __EV64_US8__AVAILABLE
++  uint8_t a4[8] = { 0x22, 0x15, 0xae, 0xc9,
++                    0x97, 0xba, 0x98, 0xf3 };
++  __ev64_opaque__ v6 = __ev_create_u8(a4[0], a4[1], a4[2], a4[3],
++                                      a4[4], a4[5], a4[6], a4[7]);
++  VERIFY(memcmp (&a4[0], &v6, sizeof (a4)) == 0);
++
++  int8_t a5[8] = { 0xf9, 0x76, 0xb0, 0xdf,
++                   0xa1, 0xab, 0x22, 0x50 };
++  __ev64_opaque__ v7 = __ev_create_s8(a5[0], a5[1], a5[2], a5[3],
++                                      a5[4], a5[5], a5[6], a5[7]);
++  VERIFY(memcmp (&a5[0], &v7, sizeof (a5)) == 0);
++#endif
++
++#if __ADDED_FP_SUPPORT__
++  __ev64_opaque__ __ev_create_sfix32_fs( float a, float b );
++  __ev64_opaque__ __ev_create_ufix32_fs( float a, float b );
++#endif
++
++  // 4.1.2 Convert Intrinsics
++  uint64_t u64 = __ev_convert_u64(v0);
++  int64_t  s64 = __ev_convert_s64(v1);
++  VERIFY(u64 == x0);
++  VERIFY(s64 == x1);
++
++  // 4.1.3 Get Intrinsics
++
++  // 4.1.3.1 Get_Upper/Lower
++  VERIFY(__ev_get_upper_u32(v2) == a0[0]);
++  VERIFY(__ev_get_lower_u32(v2) == a0[1]);
++  VERIFY(__ev_get_upper_s32(v3) == a1[0]);
++  VERIFY(__ev_get_lower_s32(v3) == a1[1]);
++
++#if __ADDED_FP_SUPPORT__
++  float __ev_get_upper_fs( __ev64_opaque__ a );
++  float __ev_get_lower_fs( __ev64_opaque__ a );
++#endif
++
++  // 4.1.3.2 Get Explicit Position
++  VERIFY(__ev_get_u32(v2, 0) == a0[0]);
++  VERIFY(__ev_get_u32(v2, 1) == a0[1]);
++
++  VERIFY(__ev_get_s32(v3, 0) == a1[0]);
++  VERIFY(__ev_get_s32(v3, 1) == a1[1]);
++
++#if __ADDED_FP_SUPPORT__
++  float __ev_get_fs(__ev64_opaque__ a, uint32_t pos );
++#endif
++
++  VERIFY(__ev_get_u16(v4, 0) == a2[0]);
++  VERIFY(__ev_get_u16(v4, 1) == a2[1]);
++  VERIFY(__ev_get_u16(v4, 2) == a2[2]);
++  VERIFY(__ev_get_u16(v4, 3) == a2[3]);
++
++  VERIFY(__ev_get_s16(v5, 0) == a3[0]);
++  VERIFY(__ev_get_s16(v5, 1) == a3[1]);
++  VERIFY(__ev_get_s16(v5, 2) == a3[2]);
++  VERIFY(__ev_get_s16(v5, 3) == a3[3]);
++
++#if __EV64_US8__AVAILABLE
++  uint8_t __ev_get_u8( __ev64_opaque__ a, uint32_t pos );
++  int8_t __ev_get_s8( __ev64_opaque__ a, uint32_t pos );
++#endif
++
++  // 4.1.4 Set Intrinsics
++  //
++  // 4.1.4.1 Set_Upper/Lower
++  v2 = __ev_set_upper_u32(v2, 0x0);
++  v2 = __ev_set_lower_u32(v2, 0x0);
++  VERIFY(__ev_get_upper_u32 (v2) == 0x0);
++  VERIFY(__ev_get_lower_u32 (v2) == 0x0);
++
++  v3 = __ev_set_upper_s32(v3, 0xffffffff);
++  v3 = __ev_set_lower_s32(v3, 0xffffffff);
++  VERIFY(__ev_get_upper_s32 (v3) == 0xffffffff);
++  VERIFY(__ev_get_lower_s32 (v3) == 0xffffffff);
++
++#if __ADDED_FP_SUPPORT__
++  __ev64_opaque__     __ev_set_upper_fs( __ev64_opaque__ a, float b );
++  __ev64_opaque__     __ev_set_lower_fs( __ev64_opaque__ a, float b );
++#endif
++
++#if __ADDED_ACCUMULATOR_SUPPORT__
++  // 4.1.4.2 Set Accumulator
++  // __ev64_opaque__ __ev_set_acc_u64( uint64_t a );
++  // __ev64_opaque__ __ev_set_acc_s64( int64_t a );
++  // __ev64_opaque__ __ev_set_acc_vec64( __ev64_opaque__ a );
++#endif
++
++  // 4.1.4.3 Set Explicit Position
++  __ev64_opaque__ vs_u32[2];
++  for (i = 0; i < NELTS (vs_u32); i++)
++    for (j = 0; j < 2; j++)
++      vs_u32[i] = __ev_set_u32(vs_u32[i], (i == j), j);
++  VERIFY(__ev_get_u32(vs_u32[0], 0) == 1);
++  VERIFY(__ev_get_u32(vs_u32[0], 1) == 0);
++  VERIFY(__ev_get_u32(vs_u32[1], 0) == 0);
++  VERIFY(__ev_get_u32(vs_u32[1], 1) == 1);
++
++  __ev64_opaque__ vs_s32[2];
++  for (i = 0; i < NELTS (vs_s32); i++)
++    for (j = 0; j < 2; j++)
++      vs_s32[i] = __ev_set_s32(vs_s32[i], (i-j), j);
++  VERIFY(__ev_get_s32(vs_s32[0], 0) ==  0);
++  VERIFY(__ev_get_s32(vs_s32[0], 1) == -1);
++  VERIFY(__ev_get_s32(vs_s32[1], 0) ==  1);
++  VERIFY(__ev_get_s32(vs_s32[1], 1) ==  0);
++
++#if __ADDED_FP_SUPPORT__
++__ev64_opaque__ __ev_set_fs( __ev64_opaque__ a, float b, uint32_t pos );
++#endif
++
++  __ev64_opaque__ vs_u16[4];
++  for (i = 0; i < NELTS (vs_u16); i++)
++    for (j = 0; j < 4; j++)
++    vs_u16[i] = __ev_set_u16(vs_u16[i], (i == j), j);
++  for (i = 0; i < NELTS (vs_u16); i++)
++    for (j = 0; j < 4; j++)
++      VERIFY(__ev_get_u16(vs_u16[i], j) == (i == j));
++
++  __ev64_opaque__ vs_s16[4];
++  for (i = 0; i < NELTS (vs_s16); i++)
++    for (j = 0; j < 4; j++)
++    vs_s16[i] = __ev_set_s16(vs_s16[i], (i - j), j);
++  for (i = 0; i < NELTS (vs_s16); i++)
++    for (j = 0; j < 4; j++)
++      VERIFY(__ev_get_s16(vs_s16[i], j) == (i - j));
++
++#if __EV64_US8__AVAILABLE
++__ev64_opaque__ __ev_set_u8( __ev64_opaque__ a, uint8_t b, uint32_t pos );
++__ev64_opaque__ __ev_set_s8( __ev64_opaque__ a, int8_t b, uint32_t pos );
++#endif
++
++#if TODO
++  // TODO: ADD examples here.
++  // 4.2 Signal Processing Engine (SPE) APU Registers
++  // 4.2.2 SPEFSCR Intrinsics
++  // 4.2.2.1 SPEFSCR Low-Level Accessors
++uint32_t __ev_get_spefscr_sovh( );
++uint32_t __ev_get_spefscr_ovh( );
++uint32_t __ev_get_spefscr_fgh( );
++uint32_t __ev_get_spefscr_fxh( );
++uint32_t __ev_get_spefscr_finvh( );
++uint32_t __ev_get_spefscr_fdbzh( );
++uint32_t __ev_get_spefscr_funfh( );
++uint32_t __ev_get_spefscr_fovfh( );
++uint32_t __ev_get_spefscr_finxs(  );
++uint32_t __ev_get_spefscr_finvs(  );
++uint32_t __ev_get_spefscr_fdbzs(  );
++uint32_t __ev_get_spefscr_funfs(  );
++uint32_t __ev_get_spefscr_fovfs(  );
++uint32_t __ev_get_spefscr_mode( );
++uint32_t __ev_get_spefscr_sov( );
++uint32_t __ev_get_spefscr_ov( );
++uint32_t __ev_get_spefscr_fg( );
++uint32_t __ev_get_spefscr_fx( );
++uint32_t __ev_get_spefscr_finv( );
++uint32_t __ev_get_spefscr_fdbz( );
++uint32_t __ev_get_spefscr_funf( );
++uint32_t __ev_get_spefscr_fovf( );
++uint32_t __ev_get_spefscr_finxe( );
++uint32_t __ev_get_spefscr_finve( );
++uint32_t __ev_get_spefscr_fdbze( );
++uint32_t __ev_get_spefscr_funfe( );
++uint32_t __ev_get_spefscr_fovfe( );
++uint32_t __ev_get_spefscr_frmc( );
++void __ev_clr_spefscr_sovh( );
++void __ev_clr_spefscr_sov( );
++void __ev_clr_spefscr_finxs(  );
++void __ev_clr_spefscr_finvs(  );
++void __ev_clr_spefscr_fdbzs(  );
++void __ev_clr_spefscr_funfs(  );
++void __ev_clr_spefscr_fovfs(  );
++void __ev_set_spefscr_frmc( uint32_t rnd );
++                                 // rnd = 0 (nearest), rnd = 1 (zero),
++                                 //                                  // rnd = 2 (+inf), rnd = 3 (-inf)
++                                 //
++4.3      Application Binary Interface (ABI) Extensions
++The following sections discuss ABI extensions.
++4.3.1     malloc(), realloc(), calloc(), and new
++4.3.2 printf Example
++__ev64_opaque__ a ;
++a = __ev_create_s32 ( 2, -3 );
++printf ( " %d %d \n", __ev_get_upper_s32(a), __ev_get_lower_s32(a) );
++// output:
++// // 2 -3
++printf ("%lr", 0x4000);==> "0.500000"
++printf ("%r", 0x40000000); ==> "0.500000"
++printf ("%hr", 0x4000000000000000ull);==> "0.500000"
++printf ("%09.5r",0x40000000);==> "000.50000"
++printf ("%09.5f",0.5);==> "000.50000"
++
++4.3.3 Additional Library Routines
++#include <spe.h>
++int8_t atosfix8(const char *str);
++int16_t atosfix16(const char *str);
++int32_t atosfix32(const char *str);
++int64_t atosfix64(const char *str);
++uint8_t atoufix8(const char *str);
++uint16_t atoufix16(const char *str);
++uint32_t atoufix32(const char *str);
++uint64_t atoufix64(const char *str);
++atosfix8: strtosfix8(str, (char **)NULL)
++atosfix16: strtosfix16(str, (char **)NULL)
++atosfix32: strtosfix32(str, (char **)NULL)
++atosfix64: strtosfix64(str, (char **)NULL)
++atoufix8: strtoufix8(str, (char **)NULL)
++atoufix16: strtoufix16(str, (char **)NULL)
++atoufix32: strtoufix32(str, (char **)NULL)
++atoufix64: strtoufix64(str, (char **)NULL)
++#include <spe.h>
++int8_t strtosfix8(const char *str, char **endptr);
++int16_t strtosfix16(const char *str, char **endptr);
++int32_t strtosfix32(const char *str, char **endptr);
++int64_t strtosfix64(const char *str, char **endptr);
++uint8_t strtoufix8(const char *str, char **endptr);
++uint16_t strtoufix16(const char *str, char **endptr);
++uint32_t strtoufix32(const char *str, char **endptr);
++uint64_t strtoufix64(const char *str, char **endptr);
++#endif
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(chapter4_spe2pim, "Chapter 4: Additional Operations");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -4370,6 +4636,7 @@ test_t spe2pim_tests_table = {
+   .table = {
+     F(chapter2_spe2pim),
+     F(chapter5_spe2pim),
++    F(chapter4_spe2pim),
+     NULL
+   }
+ };
+@@ -4438,3 +4705,5 @@ int main(void)
+ // 13. Add a category of tests: Trivial meaning - easy to verify - e.g. slwi (14, 1) == 28, etc.
+ // 14. Add option to run just one test.
+ // 15. Add floating point examples to the spe2pim tests. See: __ADDED_FP_SUPPORT__
++// 16. Add accumulator support. See: __ADDED_ACCUMULATOR_SUPPORT__
++// 17. Get around to: #if TODO
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 40fa966..aecee58 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4418)
++   by 0x........: main (test_spe.c:4685)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4418)
++   by 0x........: main (test_spe.c:4685)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4418)
++   by 0x........: main (test_spe.c:4685)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index d4ff5c8..33201ad 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -78,6 +78,7 @@ SPE Regression Tests: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
++...Chapter 4: Additional Operations: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index d8cbf5d..c21e8e7 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  4143 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:   562 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  4703 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  1241 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  9413 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  5947 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 13932 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 10490 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 31352 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 27912 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  4389 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:   823 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0027-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch b/recipes-devtools/valgrind/files/0027-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
new file mode 100644
index 0000000..46cf27e
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0027-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch
@@ -0,0 +1,1568 @@
+From edc9209e573e6ae7fcdf5c647e59ac038b232712 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 15 Feb 2013 19:27:44 -0800
+Subject: [PATCH 27/65] Tests based on SPE Programming Interface Manual, Chapter 3: SPE2 Operations. [ For currently implemented instructions. ]
+
+---
+ memcheck/tests/ppc32/test_spe.c          | 1344 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   57 ++
+ regtest-power7-64.log                    |   18 +-
+ 4 files changed, 1413 insertions(+), 12 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 6da8902..06ba119 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -4461,6 +4461,1278 @@ uint64_t strtoufix64(const char *str, char **endptr);
+ }
+ TEST_SPE_DECL(chapter4_spe2pim, "Chapter 4: Additional Operations");
+ 
++int __ev_ldd_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++
++  int32_t u = 32, l = 24;
++  __ev64_opaque__ ev_src = __ev_create_u32 (u, l);
++  __ev64_opaque__ ev_dst = __ev_ldd (&ev_src, 0);
++  VERIFY(__ev_get_u32 (ev_dst, 0) == u);
++  VERIFY(__ev_get_u32 (ev_dst, 1) == l);
++
++  __ev64_u16__ vs[4] = {
++    (__ev64_u16__) { 21, 46, 22, 56 },
++    (__ev64_u16__) { 11, 29, 18, 63 },
++    (__ev64_u16__) { 81, 99, 26, 67 },
++    (__ev64_u16__) { 38, 53, 50, 49 },
++  };
++  __ev64_u16__ tv;
++
++  tv = __ev_ldd (&vs[0], 0);
++  VERIFY(__ev_get_u16 (tv, 0) == 21);
++  VERIFY(__ev_get_u16 (tv, 1) == 46);
++  VERIFY(__ev_get_u16 (tv, 2) == 22);
++  VERIFY(__ev_get_u16 (tv, 3) == 56);
++
++  tv = __ev_ldd (&vs[0], 1);
++  VERIFY(__ev_get_u16 (tv, 0) == 11);
++  VERIFY(__ev_get_u16 (tv, 1) == 29);
++  VERIFY(__ev_get_u16 (tv, 2) == 18);
++  VERIFY(__ev_get_u16 (tv, 3) == 63);
++
++  tv = __ev_ldd (&vs[0], 2);
++  VERIFY(__ev_get_u16 (tv, 0) == 81);
++  VERIFY(__ev_get_u16 (tv, 1) == 99);
++  VERIFY(__ev_get_u16 (tv, 2) == 26);
++  VERIFY(__ev_get_u16 (tv, 3) == 67);
++
++  tv = __ev_ldd (&vs[0], 3);
++  VERIFY(__ev_get_u16 (tv, 0) == 38);
++  VERIFY(__ev_get_u16 (tv, 1) == 53);
++  VERIFY(__ev_get_u16 (tv, 2) == 50);
++  VERIFY(__ev_get_u16 (tv, 3) == 49);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_ldd_intrinsic, "__ev_ldd");
++
++int __ev_stdd_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ src = __ev_create_u32 (100, 200);
++  __ev64_opaque__ dst;
++  __ev_stdd (src, &dst, 0);
++  VERIFY(__ev_get_u32 (dst, 0) == 100);
++  VERIFY(__ev_get_u32 (dst, 1) == 200);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stdd_intrinsic, "__ev_stdd");
++
++int __ev_lddx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int i;
++  __ev64_opaque__ v;
++  __ev64_u32__ vs_src[10] = {
++
++    /*    0 */ (__ev64_u32__) { 0x6082912b, 0xfc532c1d },
++    /*    1 */ (__ev64_u32__) { 0x0d9c7241, 0xdbfec80e },
++    /*    2 */ (__ev64_u32__) { 0xee528fac, 0x2df5d7a4 },
++    /*    3 */ (__ev64_u32__) { 0xee3fd3c6, 0xf872209c },
++    /*    4 */ (__ev64_u32__) { 0x3cb0b533, 0x9403dfa5 },
++    /*    5 */ (__ev64_u32__) { 0x241bf114, 0x816f22e6 },
++    /*    6 */ (__ev64_u32__) { 0x3dd89a42, 0xcd1655fc },
++    /*    7 */ (__ev64_u32__) { 0xa0449d66, 0x53958e74 },
++    /*    8 */ (__ev64_u32__) { 0xebbf0cb2, 0x3590a4fb },
++    /*    9 */ (__ev64_u32__) { 0xafcee950, 0xe206f851 },
++  };
++  __ev64_u32__ vs_mst[10] = {
++
++    /*    0 */ (__ev64_u32__) { 0x6082912b, 0xfc532c1d },
++    /*    1 */ (__ev64_u32__) { 0x0d9c7241, 0xdbfec80e },
++    /*    2 */ (__ev64_u32__) { 0xee528fac, 0x2df5d7a4 },
++    /*    3 */ (__ev64_u32__) { 0xee3fd3c6, 0xf872209c },
++    /*    4 */ (__ev64_u32__) { 0x3cb0b533, 0x9403dfa5 },
++    /*    5 */ (__ev64_u32__) { 0x241bf114, 0x816f22e6 },
++    /*    6 */ (__ev64_u32__) { 0x3dd89a42, 0xcd1655fc },
++    /*    7 */ (__ev64_u32__) { 0xa0449d66, 0x53958e74 },
++    /*    8 */ (__ev64_u32__) { 0xebbf0cb2, 0x3590a4fb },
++    /*    9 */ (__ev64_u32__) { 0xafcee950, 0xe206f851 },
++  };
++
++  for (i = 0; i < 10; i++) {
++    v = __ev_lddx (vs_src, sizeof (__ev64_u32__) * i);
++    VERIFY(__ev_get_upper_u32 (v) == __ev_get_u32 (vs_mst [i], 0));
++    VERIFY(__ev_get_lower_u32 (v) == __ev_get_u32 (vs_mst [i], 1));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lddx_intrinsic, "__ev_lddx");
++
++int __ev_stddx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int i;
++  __ev64_u32__ vs_src[10] = {
++
++    /*    0 */ (__ev64_u32__) { 0x6082912b, 0xfc532c1d },
++    /*    1 */ (__ev64_u32__) { 0x0d9c7241, 0xdbfec80e },
++    /*    2 */ (__ev64_u32__) { 0xee528fac, 0x2df5d7a4 },
++    /*    3 */ (__ev64_u32__) { 0xee3fd3c6, 0xf872209c },
++    /*    4 */ (__ev64_u32__) { 0x3cb0b533, 0x9403dfa5 },
++    /*    5 */ (__ev64_u32__) { 0x241bf114, 0x816f22e6 },
++    /*    6 */ (__ev64_u32__) { 0x3dd89a42, 0xcd1655fc },
++    /*    7 */ (__ev64_u32__) { 0xa0449d66, 0x53958e74 },
++    /*    8 */ (__ev64_u32__) { 0xebbf0cb2, 0x3590a4fb },
++    /*    9 */ (__ev64_u32__) { 0xafcee950, 0xe206f851 },
++  };
++  __ev64_u32__ vs_dst[10];
++  __ev64_u32__ vs_mst[10] = {
++
++    /*    0 */ (__ev64_u32__) { 0x6082912b, 0xfc532c1d },
++    /*    1 */ (__ev64_u32__) { 0x0d9c7241, 0xdbfec80e },
++    /*    2 */ (__ev64_u32__) { 0xee528fac, 0x2df5d7a4 },
++    /*    3 */ (__ev64_u32__) { 0xee3fd3c6, 0xf872209c },
++    /*    4 */ (__ev64_u32__) { 0x3cb0b533, 0x9403dfa5 },
++    /*    5 */ (__ev64_u32__) { 0x241bf114, 0x816f22e6 },
++    /*    6 */ (__ev64_u32__) { 0x3dd89a42, 0xcd1655fc },
++    /*    7 */ (__ev64_u32__) { 0xa0449d66, 0x53958e74 },
++    /*    8 */ (__ev64_u32__) { 0xebbf0cb2, 0x3590a4fb },
++    /*    9 */ (__ev64_u32__) { 0xafcee950, 0xe206f851 },
++  };
++  __ev64_opaque__ v;
++
++  for (i = 0; i < 10; i++) {
++    v = __ev_lddx (vs_src, sizeof (__ev64_u32__) * i);
++    __ev_stddx(v,  vs_dst, sizeof (__ev64_u32__) * i);
++    VERIFY(__ev_get_u32 (vs_dst [i], 0) == __ev_get_u32 (vs_mst [i], 0));
++    VERIFY(__ev_get_u32 (vs_dst [i], 1) == __ev_get_u32 (vs_mst [i], 1));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stddx_intrinsic, "__ev_stddx");
++
++int __ev_ldh_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vsrc = __ev_create_u16 (0xaa, 0xbb, 0xcc, 0xdd);
++  __ev64_opaque__ vdst = __ev_ldh (&vsrc, 0);
++  VERIFY(__ev_get_u16 (vdst, 0) == 0xaa);
++  VERIFY(__ev_get_u16 (vdst, 1) == 0xbb);
++  VERIFY(__ev_get_u16 (vdst, 2) == 0xcc);
++  VERIFY(__ev_get_u16 (vdst, 3) == 0xdd);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_ldh_intrinsic, "__ev_ldh");
++
++int __ev_stdh_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vsrc = __ev_create_u16 (0xaa, 0xbb, 0xcc, 0xdd);
++  __ev64_opaque__ vdst;
++  __ev_stdh (vsrc, &vdst, 0);
++  VERIFY(__ev_get_u16 (vdst, 0) == 0xaa);
++  VERIFY(__ev_get_u16 (vdst, 1) == 0xbb);
++  VERIFY(__ev_get_u16 (vdst, 2) == 0xcc);
++  VERIFY(__ev_get_u16 (vdst, 3) == 0xdd);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stdh_intrinsic, "__ev_stdh");
++
++int __ev_ldhx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vs[100], vx;
++  int i, j;
++
++  for (i = 0; i < 100; i++)
++    for (j = 0; j < 4; j++)
++      vs[i] = __ev_set_u16 (vs[i], (4 * i + j), j);
++
++  for (i = 0; i < 100; i++) {
++    for (j = 0; j < 4; j++) {
++      vx = __ev_ldhx (vs, i * sizeof (typeof (vs [i])));
++      VERIFY(__ev_get_u16 (vx, j) == (4 * i + j));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_ldhx_intrinsic, "__ev_ldhx");
++
++int __ev_stdhx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vs[100], vx;
++  __ev64_opaque__ vd[100];
++  int i, j;
++
++  for (i = 0; i < 100; i++)
++    for (j = 0; j < 4; j++)
++      vs[i] = __ev_set_u16 (vs[i], (4 * i + j), j);
++
++  for (i = 0; i < 100; i++) {
++    for (j = 0; j < 4; j++) {
++      vx = __ev_ldhx (vs, i * sizeof (typeof (vs [i])));
++      __ev_stdhx (vx, vd, i * sizeof (typeof (vd [i])));
++      VERIFY(__ev_get_u16 (vd[i], j) == (4 * i + j));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stdhx_intrinsic, "__ev_stdhx");
++
++int __ev_ldw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vs = __ev_create_u32 (0x11111111, 0xffffffff);
++  __ev64_opaque__ vd = __ev_ldw (&vs, 0);
++  VERIFY(__ev_get_upper_u32 (vd) == 0x11111111);
++  VERIFY(__ev_get_lower_u32 (vd) == 0xffffffff);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_ldw_intrinsic, "__ev_ldw");
++
++int __ev_stdw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vs = __ev_create_u32 (0x11111111, 0xffffffff);
++  __ev64_opaque__ vd;
++  __ev_stdw (vs, &vd, 0);
++  VERIFY(__ev_get_upper_u32 (vd) == 0x11111111);
++  VERIFY(__ev_get_lower_u32 (vd) == 0xffffffff);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stdw_intrinsic, "__ev_stdw");
++
++int __ev_ldwx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int i;
++  for (i = 0; i < 64; i++) {
++    rD2u32[i] = __ev_ldwx ((__ev64_opaque__*) rA2u32, sizeof (typeof (rA2u32[0])) * i);
++    VERIFY(__ev_get_upper_u32 (rA2u32[i]) == __ev_get_upper_u32 (rD2u32[i]));
++    VERIFY(__ev_get_lower_u32 (rA2u32[i]) == __ev_get_lower_u32 (rD2u32[i]));
++    rD2u32[i] = __ev_set_upper_u32 (rD2u32[i], 0x0);
++    rD2u32[i] = __ev_set_lower_u32 (rD2u32[i], 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_ldwx_intrinsic, "__ev_ldwx");
++
++int __ev_stdwx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int i;
++  for (i = 0; i < 64; i++) {
++    __ev_stdwx ((__ev64_opaque__) rA2u32[i], rD2u32, sizeof (typeof (rA2u32[0])) * i);
++    VERIFY(__ev_get_upper_u32 (rA2u32[i]) == __ev_get_upper_u32 (rD2u32[i]));
++    VERIFY(__ev_get_lower_u32 (rA2u32[i]) == __ev_get_lower_u32 (rD2u32[i]));
++    rD2u32[i] = __ev_set_upper_u32 (rD2u32[i], 0x0);
++    rD2u32[i] = __ev_set_lower_u32 (rD2u32[i], 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stdwx_intrinsic, "__ev_stdwx");
++
++int __ev_lwhe_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t n = 0xdeadbeef;
++  __ev64_opaque__ vdst = __ev_lwhe (&n, 0);
++  VERIFY(__ev_get_u16 (vdst, 0) == 0xdead);
++  VERIFY(__ev_get_u16 (vdst, 1) == 0x0);
++  VERIFY(__ev_get_u16 (vdst, 2) == 0xbeef);
++  VERIFY(__ev_get_u16 (vdst, 3) == 0x0);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhe_intrinsic, "__ev_lwhe");
++
++int __ev_stwhe_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0xdeadffffbeef0000);
++  int a[8];
++  __ev_stwhe(v, a, 5);
++  VERIFY(a[5] == 0xdeadbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwhe_intrinsic, "__ev_stwhe");
++
++int __ev_lwhex_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t a[16], i;
++  __ev64_opaque__ v;
++  for (i = 0; i < 16; i++) {
++    a[i] = (0x00010000 << i) | (0x0001 << i);
++    v = __ev_lwhex (a, i * sizeof (typeof (a[0])));
++    VERIFY(__ev_get_u16 (v, 0) == (0x0001 << i));
++    VERIFY(__ev_get_u16 (v, 1) == 0x0);
++    VERIFY(__ev_get_u16 (v, 2) == (0x0001 << i));
++    VERIFY(__ev_get_u16 (v, 3) == 0x0);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhex_intrinsic, "__ev_lwhex");
++
++int __ev_stwhex_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t a[16], i;
++  __ev64_opaque__ v;
++  for (i = 0; i < 16; i++) {
++    v = __ev_set_u16 (v, (0x0001 << i), 0);
++    v = __ev_set_u16 (v, 0x0,           1);
++    v = __ev_set_u16 (v, (0x0001 << i), 2);
++    v = __ev_set_u16 (v, 0x0,           3);
++    __ev_stwhex (v, a,  i * sizeof (typeof (a[0])));
++    VERIFY(a[i] == ((0x00010000 << i) | (0x0001 << i)));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwhex_intrinsic, "__ev_stwhex");
++
++int __ev_lwhos_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int32_t n = 0xdead7eef;
++  __ev64_opaque__ v;
++  v = __ev_lwhos (&n, 0);
++  VERIFY(__ev_get_upper_u32 (v) == 0xffffdead);
++  VERIFY(__ev_get_lower_u32 (v) == 0x00007eef);
++
++#if 0
++  VERIFY(__ev_get_s16 (v, 0) == 0xffff); // FAILS
++  VERIFY(__ev_get_s16 (v, 1) == 0xdead); // FAILS
++  VERIFY(__ev_get_s16 (v, 2) == 0x0000); // FAILS
++  VERIFY(__ev_get_s16 (v, 3) == 0x7eef); // FAILS
++
++  // Something strange is going on here:
++  printf("0x%x\n", __ev_get_s16 (v, 0)); // 0xffffffff
++  printf("0x%x\n", __ev_get_s16 (v, 1)); // 0xffffdead
++  printf("0x%x\n", __ev_get_s16 (v, 2)); // 0x0
++  printf("0x%x\n", __ev_get_s16 (v, 3)); // 0x7eef
++
++  // This sounds like a GCC bug!
++  // Note that the test /as coded/, passes
++#endif
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhos_intrinsic, "__ev_lwhos");
++
++int __ev_lwhosx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int32_t a[] = {
++    0xff010023,
++    0xff2300aa,
++    0x0045f33f,
++    0x0067ff76,
++    0x0089ff92,
++    0xffab00ea,
++    0x00cdfff4,
++    0xffef0017,
++  };
++  __ev64_opaque__ v;
++  int i;
++  for (i = 0; i < NELTS(a); i++) {
++    v = __ev_lwhosx (&a[0], (&a[i] - &a[0]) * sizeof (int32_t));
++    switch (i) {
++    case 0:
++      VERIFY(__ev_get_upper_u32 (v) == 0xffffff01);
++      VERIFY(__ev_get_lower_u32 (v) == 0x00000023);
++      break;
++    case 1:
++      VERIFY(__ev_get_upper_u32 (v) == 0xffffff23);
++      VERIFY(__ev_get_lower_u32 (v) == 0x000000aa);
++      break;
++    case 2:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000045);
++      VERIFY(__ev_get_lower_u32 (v) == 0xfffff33f);
++      break;
++    case 3:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000067);
++      VERIFY(__ev_get_lower_u32 (v) == 0xffffff76);
++      break;
++    case 4:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000089);
++      VERIFY(__ev_get_lower_u32 (v) == 0xffffff92);
++      break;
++    case 5:
++      VERIFY(__ev_get_upper_u32 (v) == 0xffffffab);
++      VERIFY(__ev_get_lower_u32 (v) == 0x000000ea);
++      break;
++    case 6:
++      VERIFY(__ev_get_upper_u32 (v) == 0x000000cd);
++      VERIFY(__ev_get_lower_u32 (v) == 0xfffffff4);
++      break;
++    case 7:
++      VERIFY(__ev_get_upper_u32 (v) == 0xffffffef);
++      VERIFY(__ev_get_lower_u32 (v) == 0x00000017);
++      break;
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhosx_intrinsic, "__ev_lwhosx");
++
++int __ev_lwhou_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int32_t n = 0xdeadbeef;
++  __ev64_opaque__ v;
++  v = __ev_lwhou (&n, 0);
++  VERIFY(__ev_get_upper_u32 (v) == 0x0000dead);
++  VERIFY(__ev_get_lower_u32 (v) == 0x0000beef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhou_intrinsic, "__ev_lwhou");
++
++int __ev_lwhoux_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  int32_t a[] = {
++    0xff010023,
++    0xff2300aa,
++    0x0045f33f,
++    0x0067ff76,
++    0x0089ff92,
++    0xffab00ea,
++    0x00cdfff4,
++    0xffef0017,
++  };
++  int i;
++  __ev64_opaque__ v;
++  for (i = 0; i < NELTS(a); i++) {
++    v = __ev_lwhoux (&a[0], (&a[i] - &a[0]) * sizeof (int32_t));
++    switch (i) {
++    case 0:
++      VERIFY(__ev_get_upper_u32 (v) == 0x0000ff01);
++      VERIFY(__ev_get_lower_u32 (v) == 0x00000023);
++      break;
++    case 1:
++      VERIFY(__ev_get_upper_u32 (v) == 0x0000ff23);
++      VERIFY(__ev_get_lower_u32 (v) == 0x000000aa);
++      break;
++    case 2:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000045);
++      VERIFY(__ev_get_lower_u32 (v) == 0x0000f33f);
++      break;
++    case 3:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000067);
++      VERIFY(__ev_get_lower_u32 (v) == 0x0000ff76);
++      break;
++    case 4:
++      VERIFY(__ev_get_upper_u32 (v) == 0x00000089);
++      VERIFY(__ev_get_lower_u32 (v) == 0x0000ff92);
++      break;
++    case 5:
++      VERIFY(__ev_get_upper_u32 (v) == 0x0000ffab);
++      VERIFY(__ev_get_lower_u32 (v) == 0x000000ea);
++      break;
++    case 6:
++      VERIFY(__ev_get_upper_u32 (v) == 0x000000cd);
++      VERIFY(__ev_get_lower_u32 (v) == 0x0000fff4);
++      break;
++    case 7:
++      VERIFY(__ev_get_upper_u32 (v) == 0x0000ffef);
++      VERIFY(__ev_get_lower_u32 (v) == 0x00000017);
++      break;
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhoux_intrinsic, "__ev_lwhoux");
++
++int __ev_stwho_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0xdeadbeefdeadbeef);
++  uint32_t n;
++  __ev_stwho (v, &n, 0);
++  VERIFY(n == 0xbeefbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwho_intrinsic, "__ev_stwho");
++
++int __ev_stwhox_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0xdeadbeefdeadbeef);
++  uint32_t n, k = 0;
++  __ev_stwhox (v, &n, k);
++  VERIFY(n == 0xbeefbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwhox_intrinsic, "__ev_stwhox");
++
++int __ev_stwwe_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0x7bf1384a42e7d288);
++  uint32_t n;
++  __ev_stwwe(v, &n, 0);
++  VERIFY(n == 0x7bf1384a);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwwe_intrinsic, "__ev_stwwe");
++
++int __ev_stwwex_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0x7bf1384a42e7d288);
++  uint32_t n, k = 0;
++  __ev_stwwex(v, &n, k);
++  VERIFY(n == 0x7bf1384a);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwwex_intrinsic, "__ev_stwwex");
++
++int __ev_stwwo_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0x7bf1384a42e7d288);
++  uint32_t n;
++  __ev_stwwo(v, &n, 0);
++  VERIFY(n == 0x42e7d288);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwwo_intrinsic, "__ev_stwwo");
++
++int __ev_stwwox_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ v = __ev_create_u64 (0x7bf1384a42e7d288);
++  uint32_t n, k = 0;
++  __ev_stwwox(v, &n, k);
++  VERIFY(n == 0x42e7d288);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_stwwox_intrinsic, "__ev_stwwox");
++
++int __ev_lhhesplat_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhesplat (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdead0000);
++ VERIFY(__ev_get_lower_u32 (v) == 0xdead0000);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhesplat_intrinsic, "__ev_lhhesplat");
++
++int __ev_lhhesplatx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhesplatx (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdead0000);
++ VERIFY(__ev_get_lower_u32 (v) == 0xdead0000);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhesplatx_intrinsic, "__ev_lhhesplatx");
++
++int __ev_lhhossplat_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhossplat (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xffffdead);
++ VERIFY(__ev_get_lower_u32 (v) == 0xffffdead);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhossplat_intrinsic, "__ev_lhhossplat");
++
++int __ev_lhhossplatx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhossplatx (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xffffdead);
++ VERIFY(__ev_get_lower_u32 (v) == 0xffffdead);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhossplatx_intrinsic, "__ev_lhhossplatx");
++
++int __ev_lhhousplat_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhousplat (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0x0000dead);
++ VERIFY(__ev_get_lower_u32 (v) == 0x0000dead);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhousplat_intrinsic, "__ev_lhhousplat");
++
++int __ev_lhhousplatx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint16_t s = 0xdead;
++  __ev64_opaque__ v;
++
++ v = __ev_lhhousplatx (&s, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0x0000dead);
++ VERIFY(__ev_get_lower_u32 (v) == 0x0000dead);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lhhousplatx_intrinsic, "__ev_lhhousplatx");
++
++int __ev_lwhsplat_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t n = 0xdeadbeef;
++  __ev64_opaque__ v;
++  v = __ev_lwhsplat (&n, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdeaddead);
++ VERIFY(__ev_get_lower_u32 (v) == 0xbeefbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhsplat_intrinsic, "__ev_lwhsplat");
++
++int __ev_lwhsplatx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t n = 0xdeadbeef, k = 0;
++  __ev64_opaque__ v;
++  v = __ev_lwhsplatx (&n, k);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdeaddead);
++ VERIFY(__ev_get_lower_u32 (v) == 0xbeefbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwhsplatx_intrinsic, "__ev_lwhsplatx");
++
++int __ev_lwwsplat_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t n = 0xdeadbeef;
++  __ev64_opaque__ v;
++  v = __ev_lwwsplat (&n, 0);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdeadbeef);
++ VERIFY(__ev_get_lower_u32 (v) == 0xdeadbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwwsplat_intrinsic, "__ev_lwwsplat");
++
++int __ev_lwwsplatx_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  uint32_t n = 0xdeadbeef, k = 0;
++  __ev64_opaque__ v;
++  v = __ev_lwwsplatx (&n, k);
++ VERIFY(__ev_get_upper_u32 (v) == 0xdeadbeef);
++ VERIFY(__ev_get_lower_u32 (v) == 0xdeadbeef);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lwwsplatx_intrinsic, "__ev_lwwsplatx");
++
++int __ev_mergehi_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_mergehi (va, vb);
++    VERIFY(__ev_get_lower_u32 (vd) == __ev_get_upper_u32 (vb));
++    VERIFY(__ev_get_upper_u32 (vd) == __ev_get_upper_u32 (va));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_mergehi_intrinsic, "__ev_mergehi");
++
++int __ev_mergehilo_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_mergehilo (va, vb);
++    VERIFY(__ev_get_lower_u32 (vd) == __ev_get_lower_u32 (vb));
++    VERIFY(__ev_get_upper_u32 (vd) == __ev_get_upper_u32 (va));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_mergehilo_intrinsic, "__ev_mergehilo");
++
++int __ev_mergelo_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_mergelo (va, vb);
++    VERIFY(__ev_get_lower_u32 (vd) == __ev_get_lower_u32 (vb));
++    VERIFY(__ev_get_upper_u32 (vd) == __ev_get_lower_u32 (va));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_mergelo_intrinsic, "__ev_mergelo");
++
++int __ev_mergelohi_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_mergelo (va, vb);
++    vd = __ev_mergelohi (va, vb);
++    VERIFY(__ev_get_lower_u32 (vd) == __ev_get_upper_u32 (vb));
++    VERIFY(__ev_get_upper_u32 (vd) == __ev_get_lower_u32 (va));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_mergelohi_intrinsic, "__ev_mergelohi");
++
++int __ev_and_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_and (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == (rA1u32[i+0] & rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == (rA1u32[i+1] & rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_and_intrinsic, "__ev_and");
++
++int __ev_andc_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_andc (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == (rA1u32[i+0] & ~rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == (rA1u32[i+1] & ~rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_andc_intrinsic, "__ev_andc");
++
++int __ev_eqv_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_eqv (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == ~(rA1u32[i+0] ^ rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == ~(rA1u32[i+1] ^ rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_eqv_intrinsic, "__ev_eqv");
++
++#if 0 // No such intrinsic
++int __ev_mr_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_mr_intrinsic, "__ev_mr");
++#endif
++
++int __ev_nand_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_nand (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == ~(rA1u32[i+0] & rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == ~(rA1u32[i+1] & rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_nand_intrinsic, "__ev_nand");
++
++int __ev_nor_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_nor (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == ~(rA1u32[i+0] | rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == ~(rA1u32[i+1] | rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_nor_intrinsic, "__ev_nor");
++
++#if 0 // No such intrinsic
++int __ev_not_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_not_intrinsic, "__ev_not");
++#endif
++
++int __ev_or_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_or (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == ((rA1u32[i+0] | rA1u32[i+2])));
++    VERIFY(__ev_get_lower_u32 (vd) == ((rA1u32[i+1] | rA1u32[i+3])));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_or_intrinsic, "__ev_or");
++
++int __ev_orc_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_orc (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == (rA1u32[i+0] | ~rA1u32[i+2]));
++    VERIFY(__ev_get_lower_u32 (vd) == (rA1u32[i+1] | ~rA1u32[i+3]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_orc_intrinsic, "__ev_orc");
++
++int __ev_xor_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 4) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vb = __ev_create_u32 (rA1u32[i+2], rA1u32[i+3]);
++    vd = __ev_xor (va, vb);
++    VERIFY(__ev_get_upper_u32 (vd) == ((rA1u32[i+0] ^ rA1u32[i+2])));
++    VERIFY(__ev_get_lower_u32 (vd) == ((rA1u32[i+1] ^ rA1u32[i+3])));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_xor_intrinsic, "__ev_xor");
++
++int __ev_rlw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i, u, l;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    for (u = 0; u < 32; u++) {
++      for (l = 0; l < 32; l++) {
++        vb = __ev_create_u32 (u, l);
++        vd = __ev_rlw (va, vb);
++        VERIFY(__ev_get_upper_u32 (vd) == rotate_left (__ev_get_upper_u32 (va), __ev_get_upper_u32 (vb)));
++        VERIFY(__ev_get_lower_u32 (vd) == rotate_left (__ev_get_lower_u32 (va), __ev_get_lower_u32 (vb)));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_rlw_intrinsic, "__ev_rlw");
++
++int __ev_rlwi_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++#define __EV_RLWI_INTRINSIC(amt)                                         \
++    vd = __ev_rlwi (va, (amt));                                          \
++    VERIFY(__ev_get_upper_u32 (vd) == rotate_left (rA1u32[i+0], (amt))); \
++    VERIFY(__ev_get_lower_u32 (vd) == rotate_left (rA1u32[i+1], (amt)));
++    __EV_RLWI_INTRINSIC(0);
++    __EV_RLWI_INTRINSIC(1);
++    __EV_RLWI_INTRINSIC(2);
++    __EV_RLWI_INTRINSIC(3);
++    __EV_RLWI_INTRINSIC(4);
++    __EV_RLWI_INTRINSIC(5);
++    __EV_RLWI_INTRINSIC(6);
++    __EV_RLWI_INTRINSIC(7);
++    __EV_RLWI_INTRINSIC(8);
++    __EV_RLWI_INTRINSIC(9);
++    __EV_RLWI_INTRINSIC(10);
++    __EV_RLWI_INTRINSIC(11);
++    __EV_RLWI_INTRINSIC(12);
++    __EV_RLWI_INTRINSIC(13);
++    __EV_RLWI_INTRINSIC(14);
++    __EV_RLWI_INTRINSIC(15);
++    __EV_RLWI_INTRINSIC(16);
++    __EV_RLWI_INTRINSIC(17);
++    __EV_RLWI_INTRINSIC(18);
++    __EV_RLWI_INTRINSIC(19);
++    __EV_RLWI_INTRINSIC(10);
++    __EV_RLWI_INTRINSIC(21);
++    __EV_RLWI_INTRINSIC(22);
++    __EV_RLWI_INTRINSIC(23);
++    __EV_RLWI_INTRINSIC(24);
++    __EV_RLWI_INTRINSIC(25);
++    __EV_RLWI_INTRINSIC(26);
++    __EV_RLWI_INTRINSIC(27);
++    __EV_RLWI_INTRINSIC(28);
++    __EV_RLWI_INTRINSIC(29);
++    __EV_RLWI_INTRINSIC(30);
++    __EV_RLWI_INTRINSIC(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_rlwi_intrinsic, "__ev_rlwi");
++
++int __ev_slw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i, u, l;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    for (u = 0; u < 64; u++) {
++      for (l = 0; l < 64; l++) {
++        vb = __ev_create_u32 (u, l);
++        vd = __ev_slw (va, vb);
++        VERIFY(__ev_get_upper_u32 (vd) == shift_left (__ev_get_upper_u32 (va), __ev_get_upper_u32 (vb)));
++        VERIFY(__ev_get_lower_u32 (vd) == shift_left (__ev_get_lower_u32 (va), __ev_get_lower_u32 (vb)));
++        VERIFY(__ev_get_upper_u32 (vd) == ((u >= 32) ? 0x0 : __ev_get_upper_u32 (vd)));
++        VERIFY(__ev_get_lower_u32 (vd) == ((l >= 32) ? 0x0 : __ev_get_lower_u32 (vd)));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_slw_intrinsic, "__ev_slw");
++
++int __ev_slwi_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++#define __EV_SLWI_INTRINSIC(amt)                                        \
++    vd = __ev_slwi (va, (amt));                                         \
++    VERIFY(__ev_get_upper_u32 (vd) == shift_left (rA1u32[i+0], (amt))); \
++    VERIFY(__ev_get_lower_u32 (vd) == shift_left (rA1u32[i+1], (amt)));
++    __EV_SLWI_INTRINSIC(0);
++    __EV_SLWI_INTRINSIC(1);
++    __EV_SLWI_INTRINSIC(2);
++    __EV_SLWI_INTRINSIC(3);
++    __EV_SLWI_INTRINSIC(4);
++    __EV_SLWI_INTRINSIC(5);
++    __EV_SLWI_INTRINSIC(6);
++    __EV_SLWI_INTRINSIC(7);
++    __EV_SLWI_INTRINSIC(8);
++    __EV_SLWI_INTRINSIC(9);
++    __EV_SLWI_INTRINSIC(10);
++    __EV_SLWI_INTRINSIC(11);
++    __EV_SLWI_INTRINSIC(12);
++    __EV_SLWI_INTRINSIC(13);
++    __EV_SLWI_INTRINSIC(14);
++    __EV_SLWI_INTRINSIC(15);
++    __EV_SLWI_INTRINSIC(16);
++    __EV_SLWI_INTRINSIC(17);
++    __EV_SLWI_INTRINSIC(18);
++    __EV_SLWI_INTRINSIC(19);
++    __EV_SLWI_INTRINSIC(10);
++    __EV_SLWI_INTRINSIC(21);
++    __EV_SLWI_INTRINSIC(22);
++    __EV_SLWI_INTRINSIC(23);
++    __EV_SLWI_INTRINSIC(24);
++    __EV_SLWI_INTRINSIC(25);
++    __EV_SLWI_INTRINSIC(26);
++    __EV_SLWI_INTRINSIC(27);
++    __EV_SLWI_INTRINSIC(28);
++    __EV_SLWI_INTRINSIC(29);
++    __EV_SLWI_INTRINSIC(30);
++    __EV_SLWI_INTRINSIC(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_slwi_intrinsic, "__ev_slwi");
++
++int __ev_srwu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i, u, l;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    for (u = 0; u < 64; u++) {
++      for (l = 0; l < 64; l++) {
++        vb = __ev_create_u32 (u, l);
++        vd = __ev_srwu (va, vb);
++        VERIFY(__ev_get_upper_u32 (vd) == shift_rightu (__ev_get_upper_u32 (va), __ev_get_upper_u32 (vb)));
++        VERIFY(__ev_get_lower_u32 (vd) == shift_rightu (__ev_get_lower_u32 (va), __ev_get_lower_u32 (vb)));
++        VERIFY(__ev_get_upper_u32 (vd) == ((u >= 32) ? (0x0) : (__ev_get_upper_u32 (vd))));
++        VERIFY(__ev_get_lower_u32 (vd) == ((l >= 32) ? (0x0) : (__ev_get_lower_u32 (vd))));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_srwu_intrinsic, "__ev_srwu");
++
++int __ev_srwiu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++#define __EV_SRWIU_INTRINSIC(amt)                                          \
++    vd = __ev_srwiu (va, (amt));                                           \
++    VERIFY(__ev_get_upper_u32 (vd) == shift_rightu (rA1u32[i+0], (amt)));  \
++    VERIFY(__ev_get_lower_u32 (vd) == shift_rightu (rA1u32[i+1], (amt)));
++    __EV_SRWIU_INTRINSIC(0);
++    __EV_SRWIU_INTRINSIC(1);
++    __EV_SRWIU_INTRINSIC(2);
++    __EV_SRWIU_INTRINSIC(3);
++    __EV_SRWIU_INTRINSIC(4);
++    __EV_SRWIU_INTRINSIC(5);
++    __EV_SRWIU_INTRINSIC(6);
++    __EV_SRWIU_INTRINSIC(7);
++    __EV_SRWIU_INTRINSIC(8);
++    __EV_SRWIU_INTRINSIC(9);
++    __EV_SRWIU_INTRINSIC(10);
++    __EV_SRWIU_INTRINSIC(11);
++    __EV_SRWIU_INTRINSIC(12);
++    __EV_SRWIU_INTRINSIC(13);
++    __EV_SRWIU_INTRINSIC(14);
++    __EV_SRWIU_INTRINSIC(15);
++    __EV_SRWIU_INTRINSIC(16);
++    __EV_SRWIU_INTRINSIC(17);
++    __EV_SRWIU_INTRINSIC(18);
++    __EV_SRWIU_INTRINSIC(19);
++    __EV_SRWIU_INTRINSIC(10);
++    __EV_SRWIU_INTRINSIC(21);
++    __EV_SRWIU_INTRINSIC(22);
++    __EV_SRWIU_INTRINSIC(23);
++    __EV_SRWIU_INTRINSIC(24);
++    __EV_SRWIU_INTRINSIC(25);
++    __EV_SRWIU_INTRINSIC(26);
++    __EV_SRWIU_INTRINSIC(27);
++    __EV_SRWIU_INTRINSIC(28);
++    __EV_SRWIU_INTRINSIC(29);
++    __EV_SRWIU_INTRINSIC(30);
++    __EV_SRWIU_INTRINSIC(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_srwiu_intrinsic, "__ev_srwiu");
++
++int __ev_srws_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va, vb;
++  int i, u, l;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_s32 (rA1u32[i+0], rA1u32[i+1]);
++    for (u = 0; u < 64; u++) {
++      for (l = 0; l < 64; l++) {
++        vb = __ev_create_u32 (u, l);
++        vd = __ev_srws (va, vb);
++        VERIFY(__ev_get_upper_s32 (vd) == shift_rights (__ev_get_upper_s32 (va), __ev_get_upper_u32 (vb)));
++        VERIFY(__ev_get_lower_s32 (vd) == shift_rights (__ev_get_lower_s32 (va), __ev_get_lower_u32 (vb)));
++        VERIFY(__ev_get_upper_s32 (vd) == ((u >= 32) ? ((__ev_get_upper_s32 (va) < 0) ? 0xffffffff : 0x0) : (__ev_get_upper_s32 (vd))));
++        VERIFY(__ev_get_lower_s32 (vd) == ((l >= 32) ? ((__ev_get_lower_s32 (va) < 0) ? 0xffffffff : 0x0) : (__ev_get_lower_s32 (vd))));
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_srws_intrinsic, "__ev_srws");
++
++int __ev_srwis_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_s32 (rA1u32[i+0], rA1u32[i+1]);
++#define __EV_SRWIS_INTRINSIC(amt)                                          \
++    vd = __ev_srwis (va, (amt));                                           \
++    VERIFY(__ev_get_upper_s32 (vd) == shift_rights (rA1u32[i+0], (amt)));  \
++    VERIFY(__ev_get_lower_s32 (vd) == shift_rights (rA1u32[i+1], (amt)));
++    __EV_SRWIS_INTRINSIC(0);
++    __EV_SRWIS_INTRINSIC(1);
++    __EV_SRWIS_INTRINSIC(2);
++    __EV_SRWIS_INTRINSIC(3);
++    __EV_SRWIS_INTRINSIC(4);
++    __EV_SRWIS_INTRINSIC(5);
++    __EV_SRWIS_INTRINSIC(6);
++    __EV_SRWIS_INTRINSIC(7);
++    __EV_SRWIS_INTRINSIC(8);
++    __EV_SRWIS_INTRINSIC(9);
++    __EV_SRWIS_INTRINSIC(10);
++    __EV_SRWIS_INTRINSIC(11);
++    __EV_SRWIS_INTRINSIC(12);
++    __EV_SRWIS_INTRINSIC(13);
++    __EV_SRWIS_INTRINSIC(14);
++    __EV_SRWIS_INTRINSIC(15);
++    __EV_SRWIS_INTRINSIC(16);
++    __EV_SRWIS_INTRINSIC(17);
++    __EV_SRWIS_INTRINSIC(18);
++    __EV_SRWIS_INTRINSIC(19);
++    __EV_SRWIS_INTRINSIC(10);
++    __EV_SRWIS_INTRINSIC(21);
++    __EV_SRWIS_INTRINSIC(22);
++    __EV_SRWIS_INTRINSIC(23);
++    __EV_SRWIS_INTRINSIC(24);
++    __EV_SRWIS_INTRINSIC(25);
++    __EV_SRWIS_INTRINSIC(26);
++    __EV_SRWIS_INTRINSIC(27);
++    __EV_SRWIS_INTRINSIC(28);
++    __EV_SRWIS_INTRINSIC(29);
++    __EV_SRWIS_INTRINSIC(30);
++    __EV_SRWIS_INTRINSIC(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_srwis_intrinsic, "__ev_srwis");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -4621,6 +5893,77 @@ test_t pool_demo_table = {
+   }
+ };
+ 
++test_t chapter3_spe2pim_intrinsics_tests_table = {
++
++  .type = table,
++  .description = "Chapter 3: SPE2 Operations",
++  .table = {
++    F(__ev_ldd_intrinsic),
++    F(__ev_stdd_intrinsic),
++    F(__ev_lddx_intrinsic),
++    F(__ev_stddx_intrinsic),
++    F(__ev_ldh_intrinsic),
++    F(__ev_stdh_intrinsic),
++    F(__ev_ldhx_intrinsic),
++    F(__ev_stdhx_intrinsic),
++    F(__ev_ldw_intrinsic),
++    F(__ev_stdw_intrinsic),
++    F(__ev_ldwx_intrinsic),
++    F(__ev_stdwx_intrinsic),
++    F(__ev_lwhe_intrinsic),
++    F(__ev_stwhe_intrinsic),
++    F(__ev_lwhex_intrinsic),
++    F(__ev_stwhex_intrinsic),
++    F(__ev_lwhos_intrinsic),
++    F(__ev_lwhosx_intrinsic),
++    F(__ev_lwhou_intrinsic),
++    F(__ev_lwhoux_intrinsic),
++    F(__ev_stwho_intrinsic),
++    F(__ev_stwhox_intrinsic),
++    F(__ev_stwwe_intrinsic),
++    F(__ev_stwwex_intrinsic),
++    F(__ev_stwwo_intrinsic),
++    F(__ev_stwwox_intrinsic),
++    F(__ev_lhhesplat_intrinsic),
++    F(__ev_lhhesplatx_intrinsic),
++    F(__ev_lhhossplat_intrinsic),
++    F(__ev_lhhossplatx_intrinsic),
++    F(__ev_lhhousplat_intrinsic),
++    F(__ev_lhhousplatx_intrinsic),
++    F(__ev_lwhsplat_intrinsic),
++    F(__ev_lwhsplatx_intrinsic),
++    F(__ev_lwwsplat_intrinsic),
++    F(__ev_lwwsplatx_intrinsic),
++    F(__ev_mergehi_intrinsic),
++    F(__ev_mergehilo_intrinsic),
++    F(__ev_mergelo_intrinsic),
++    F(__ev_mergelohi_intrinsic),
++    F(__ev_and_intrinsic),
++    F(__ev_andc_intrinsic),
++    F(__ev_eqv_intrinsic),
++#if 0 // No such intrinsic
++    F(__ev_mr_intrinsic),
++#endif
++    F(__ev_nand_intrinsic),
++    F(__ev_nor_intrinsic),
++#if 0 // No such intrinsic
++    F(__ev_not_intrinsic),
++#endif
++    F(__ev_or_intrinsic),
++    F(__ev_orc_intrinsic),
++    F(__ev_xor_intrinsic),
++    F(__ev_rlw_intrinsic),
++    F(__ev_rlwi_intrinsic),
++    F(__ev_slw_intrinsic),
++    F(__ev_slwi_intrinsic),
++    F(__ev_srwu_intrinsic),
++    F(__ev_srwiu_intrinsic),
++    F(__ev_srws_intrinsic),
++    F(__ev_srwis_intrinsic),
++    NULL
++  }
++};
++
+ test_t spe2pim_tests_table = {
+ 
+   /* Enhanced Signal Processing Extension and
+@@ -4637,6 +5980,7 @@ test_t spe2pim_tests_table = {
+     F(chapter2_spe2pim),
+     F(chapter5_spe2pim),
+     F(chapter4_spe2pim),
++    &chapter3_spe2pim_intrinsics_tests_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index aecee58..87f4c78 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4685)
++   by 0x........: main (test_spe.c:6029)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4685)
++   by 0x........: main (test_spe.c:6029)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:4685)
++   by 0x........: main (test_spe.c:6029)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 33201ad..5bf07b5 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -79,6 +79,63 @@ SPE Regression Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+ ...Chapter 4: Additional Operations: PASS
++...Chapter 3: SPE2 Operations: PASS
++....__ev_ldd: PASS
++....__ev_stdd: PASS
++....__ev_lddx: PASS
++....__ev_stddx: PASS
++....__ev_ldh: PASS
++....__ev_stdh: PASS
++....__ev_ldhx: PASS
++....__ev_stdhx: PASS
++....__ev_ldw: PASS
++....__ev_stdw: PASS
++....__ev_ldwx: PASS
++....__ev_stdwx: PASS
++....__ev_lwhe: PASS
++....__ev_stwhe: PASS
++....__ev_lwhex: PASS
++....__ev_stwhex: PASS
++....__ev_lwhos: PASS
++....__ev_lwhosx: PASS
++....__ev_lwhou: PASS
++....__ev_lwhoux: PASS
++....__ev_stwho: PASS
++....__ev_stwhox: PASS
++....__ev_stwwe: PASS
++....__ev_stwwex: PASS
++....__ev_stwwo: PASS
++....__ev_stwwox: PASS
++....__ev_lhhesplat: PASS
++....__ev_lhhesplatx: PASS
++....__ev_lhhossplat: PASS
++....__ev_lhhossplatx: PASS
++....__ev_lhhousplat: PASS
++....__ev_lhhousplatx: PASS
++....__ev_lwhsplat: PASS
++....__ev_lwhsplatx: PASS
++....__ev_lwwsplat: PASS
++....__ev_lwwsplatx: PASS
++....__ev_mergehi: PASS
++....__ev_mergehilo: PASS
++....__ev_mergelo: PASS
++....__ev_mergelohi: PASS
++....__ev_and: PASS
++....__ev_andc: PASS
++....__ev_eqv: PASS
++....__ev_nand: PASS
++....__ev_nor: PASS
++....__ev_or: PASS
++....__ev_orc: PASS
++....__ev_xor: PASS
++....__ev_rlw: PASS
++....__ev_rlwi: PASS
++....__ev_slw: PASS
++....__ev_slwi: PASS
++....__ev_srwu: PASS
++....__ev_srwiu: PASS
++....__ev_srws: PASS
++....__ev_srwis: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index c21e8e7..fb0e635 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 64 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 73 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:   562 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 29570 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  1241 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 30129 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  5947 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  2490 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 10490 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  6975 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 27912 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24464 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:   823 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 29808 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0028-Implement-SPE-Instructions-evextsb-evextsh.patch b/recipes-devtools/valgrind/files/0028-Implement-SPE-Instructions-evextsb-evextsh.patch
new file mode 100644
index 0000000..3921858
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0028-Implement-SPE-Instructions-evextsb-evextsh.patch
@@ -0,0 +1,430 @@
+From 38dfa4661355a1867c8057a9be5d8d8861342292 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 19 Feb 2013 09:13:28 -0800
+Subject: [PATCH 28/65] Implement SPE Instructions: { evextsb, evextsh }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   20 ++++++
+ memcheck/tests/ppc32/test_spe.c          |   94 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    3 +
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   38 ++++++------
+ 6 files changed, 143 insertions(+), 22 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 62395fe..313fb85 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12269,6 +12269,8 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    }
+    switch (opc2) {
+ 
++   case 0x20a:
++   case 0x20b:
+    case 0x211:
+    case 0x212:
+    case 0x216:
+@@ -12277,6 +12279,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    case 0x219:
+    case 0x21b:
+    case 0x21e:
++      if (opc2 == 0x20a) {
++        // evextsb (Vector Extend Sign Byte)
++        DIP( "evextsb r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
++      }
++      if (opc2 == 0x20b) {
++        // evextsh (Vector Extend Sign Half Word)
++        DIP( "evextsh r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
++      }
+       if (opc2 == 0x211) {
+         // evand (Vector AND, SPEPEM p5-75)
+         DIP( "evand r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+@@ -12318,6 +12328,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+       assign ( rBL, unop( Iop_64to32,   mkexpr ( rB ) ) );
+       assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
+ 
++      if (opc2 == 0x20a) { // evextsb
++        assign ( rDL, unop ( Iop_8Sto32, ( unop ( Iop_32to8, mkexpr ( rAL ) ) ) ) );
++        assign ( rDU, unop ( Iop_8Sto32, ( unop ( Iop_32to8, mkexpr ( rAU ) ) ) ) );
++      }
++      if (opc2 == 0x20b) { // evextsh
++        assign ( rDL, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAL ) ) ) ) );
++        assign ( rDU, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAU ) ) ) ) );
++      }
+       if (opc2 == 0x211) { // evand
+         assign ( rDL, binop( Iop_And32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
+         assign ( rDU, binop( Iop_And32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
+@@ -18687,6 +18705,8 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x20a: // evextsb
++      case 0x20b: // evextsh
+       case 0x211: // evand
+       case 0x212: // evandc
+       case 0x216: // evxor
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 06ba119..f8647c8 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -5733,6 +5733,96 @@ int __ev_srwis_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_srwis_intrinsic, "__ev_srwis");
+ 
++int evextsb_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    asm volatile ("evextsb %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == ((BIT_W(regA[0], 24) == 0x0) ?
++                       (regA[0] & 0xff) :
++                       (0xffffff00 + (regA[0] & 0xff))));
++    VERIFY(regD[1] == ((BIT_W(regA[1], 24) == 0x0) ?
++                       (regA[1] & 0xff) :
++                       (0xffffff00 + (regA[1] & 0xff))));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evextsb_asm, "evextsb");
++
++int __ev_extsb_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i + 0], rA1u32[i + 1]);
++    vd = __ev_extsb (va);
++    VERIFY(__ev_get_upper_u32 (vd) == ((BIT_W(__ev_get_upper_u32 (va), 24) == 0x0) ?
++                                       (__ev_get_upper_u32 (va) & 0xff) :
++                                       (0xffffff00 + (__ev_get_upper_u32 (va) & 0xff))));
++    VERIFY(__ev_get_lower_u32 (vd) == ((BIT_W(__ev_get_lower_u32 (va), 24) == 0x0) ?
++                                       (__ev_get_lower_u32 (va) & 0xff) :
++                                       (0xffffff00 + (__ev_get_lower_u32 (va) & 0xff))));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_extsb_intrinsic, "__ev_extsb");
++
++int evextsh_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    asm volatile ("evextsh %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == ((BIT_W(regA[0], 16) == 0x0) ?
++                       (regA[0] & 0xffff) :
++                       (0xffff0000 + (regA[0] & 0xffff))));
++    VERIFY(regD[1] == ((BIT_W(regA[1], 16) == 0x0) ?
++                       (regA[1] & 0xffff) :
++                       (0xffff0000 + (regA[1] & 0xffff))));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evextsh_asm, "evextsh");
++
++int __ev_extsh_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i + 0], rA1u32[i + 1]);
++    vd = __ev_extsh (va);
++    VERIFY(__ev_get_upper_u32 (vd) == ((BIT_W(__ev_get_upper_u32 (va), 16) == 0x0) ?
++                                       (__ev_get_upper_u32 (va) & 0xffff) :
++                                       (0xffff0000 + (__ev_get_upper_u32 (va) & 0xffff))));
++    VERIFY(__ev_get_lower_u32 (vd) == ((BIT_W(__ev_get_lower_u32 (va), 16) == 0x0) ?
++                                       (__ev_get_lower_u32 (va) & 0xffff) :
++                                       (0xffff0000 + (__ev_get_lower_u32 (va) & 0xffff))));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_extsh_intrinsic, "__ev_extsh");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -5831,6 +5921,8 @@ test_t spe_isa_bitwise_operators_test_table = {
+     F(evnor_asm),
+     F(evnot_asm),
+     F(evorc_asm),
++    F(evextsb_asm),
++    F(evextsh_asm),
+     NULL
+   }
+ };
+@@ -5960,6 +6052,8 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_srwiu_intrinsic),
+     F(__ev_srws_intrinsic),
+     F(__ev_srwis_intrinsic),
++    F(__ev_extsb_intrinsic),
++    F(__ev_extsh_intrinsic),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index d5e895c..9b50826 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4627,6 +4627,9 @@ unsigned int rD1u32[NELTS(rA1u32)];
+ // Most Significant Bit of Half Word
+ #define MSB_HW(n) (((n) & 0x8000) >> 15)
+ 
++// Access a given bit of a word
++#define BIT_W(w, n) (((w) & (0x1 << (31 - (n)))) >> (31 - (n)))
++
+ const signed short rA1s16[] = {
+ 
+   /*   0 */ 0x2168,
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 87f4c78..3460300 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6029)
++   by 0x........: main (test_spe.c:6123)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6029)
++   by 0x........: main (test_spe.c:6123)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6029)
++   by 0x........: main (test_spe.c:6123)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 5bf07b5..2f66aa4 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -61,6 +61,8 @@ SPE Regression Tests: PASS
+ ....evnor: PASS
+ ....evnot: PASS
+ ....evorc: PASS
++....evextsb: PASS
++....evextsh: PASS
+ ...SPE ISA Merge Instructions Tests: PASS
+ ....evmergehi: PASS
+ ....evmergehilo: PASS
+@@ -136,6 +138,8 @@ SPE Regression Tests: PASS
+ ....__ev_srwiu: PASS
+ ....__ev_srws: PASS
+ ....__ev_srwis: PASS
++....__ev_extsb: PASS
++....__ev_extsh: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index fb0e635..e0622e9 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 64 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 73 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 67 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 68 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 73 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 73 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 73 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 29570 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  3717 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 30129 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  4279 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  2490 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  8993 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  6975 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 13512 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 24464 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 30939 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 29808 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  3957 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0029-Implement-SPE-Instructions-evcntlsw-evcntlzw.patch b/recipes-devtools/valgrind/files/0029-Implement-SPE-Instructions-evcntlsw-evcntlzw.patch
new file mode 100644
index 0000000..0e8de09
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0029-Implement-SPE-Instructions-evcntlsw-evcntlzw.patch
@@ -0,0 +1,1576 @@
+From 5a15dec32d979408e899710c550dfe09a19bc3ea Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 20 Feb 2013 03:18:17 -0800
+Subject: [PATCH 29/65] Implement SPE Instructions: { evcntlsw, evcntlzw }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   56 ++
+ memcheck/tests/ppc32/test_spe.c          |  209 ++++++
+ memcheck/tests/ppc32/test_spe.h          | 1048 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   22 +-
+ 6 files changed, 1331 insertions(+), 14 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 313fb85..8f1fdbd 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12239,6 +12239,42 @@ static Bool dis_spe_store ( UInt theInstr )
+ /*
+  * SPE Bitwise Instructions
+  */
++static IRExpr* spe_count_leading_zero_bits ( IRExpr* src )
++{
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  assign( c0, binop( Iop_CmpEQ32,
++                     src,
++                     mkU32  ( 0x0 ) ) );
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr ( c0 ) ) );
++  return IRExpr_Mux0X ( mkexpr ( b0 ),
++                        unop ( Iop_Clz32,
++                               src ),
++                        mkU32 ( 0x20 ) );
++}
++
++static IRExpr* spe_count_leading_sign_bits ( IRExpr* src )
++{
++  IRTemp w0 = newTemp( Ity_I32 );
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  assign( w0, binop( Iop_Shr32,
++                     src,
++                     mkU8 ( 0x1f ) ) );
++  assign( c0, binop( Iop_CmpEQ32,
++                     mkexpr ( w0 ),
++                     mkU32 ( 0x1 ) ) );
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr ( c0 ) ) );
++  return IRExpr_Mux0X ( mkexpr ( b0 ),
++                        spe_count_leading_zero_bits ( src ),
++                        spe_count_leading_zero_bits ( unop ( Iop_Not32,
++                                                             src ) ) );
++}
++
+ static Bool dis_spe_bitwise ( UInt theInstr )
+ {
+    /* EVX-Form */
+@@ -12271,6 +12307,8 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+ 
+    case 0x20a:
+    case 0x20b:
++   case 0x20d:
++   case 0x20e:
+    case 0x211:
+    case 0x212:
+    case 0x216:
+@@ -12287,6 +12325,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         // evextsh (Vector Extend Sign Half Word)
+         DIP( "evextsh r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
+       }
++      if (opc2 == 0x20d) {
++        // evcntlzw (Vector count Leading Zeros Word)
++        DIP( "evcntlzw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
++      }
++      if (opc2 == 0x20e) {
++        // evcntlsw (Vector count Leading Signed Bits Word)
++        DIP( "evcntlsw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
++      }
+       if (opc2 == 0x211) {
+         // evand (Vector AND, SPEPEM p5-75)
+         DIP( "evand r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+@@ -12336,6 +12382,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         assign ( rDL, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAL ) ) ) ) );
+         assign ( rDU, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAU ) ) ) ) );
+       }
++      if (opc2 == 0x20e) { // evcntlsw
++        assign ( rDL, spe_count_leading_sign_bits ( mkexpr ( rAL ) ) );
++        assign ( rDU, spe_count_leading_sign_bits ( mkexpr ( rAU ) ) );
++      }
++      if (opc2 == 0x20d) { // evcntlzw
++        assign ( rDL, spe_count_leading_zero_bits ( mkexpr ( rAL ) ) );
++        assign ( rDU, spe_count_leading_zero_bits ( mkexpr ( rAU ) ) );
++      }
+       if (opc2 == 0x211) { // evand
+         assign ( rDL, binop( Iop_And32, mkexpr ( rAL ), mkexpr ( rBL ) ) );
+         assign ( rDU, binop( Iop_And32, mkexpr ( rAU ), mkexpr ( rBU ) ) );
+@@ -18707,6 +18761,8 @@ DisResult disInstr_PPC_WRK (
+          goto decode_failure;
+       case 0x20a: // evextsb
+       case 0x20b: // evextsh
++      case 0x20d: // evcntlzw
++      case 0x20e: // evcntlsw
+       case 0x211: // evand
+       case 0x212: // evandc
+       case 0x216: // evxor
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index f8647c8..5dcd978 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -5823,6 +5823,209 @@ int __ev_extsh_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_extsh_intrinsic, "__ev_extsh");
+ 
++uint32_t count_leading_sign_bits(int32_t n)
++{
++  uint32_t sign_bit = ((uint32_t) n) >> 31;
++  uint32_t i, count;
++
++#ifdef GEN_BASELINE
++  printf ("%s 0x%x: ", __func__, n);
++#endif
++  for (count = 0, i = 0; i < 32; n <<= 1, i++)
++    if ((((uint32_t) n) >> 31) == sign_bit)
++      count++;
++    else
++      break;
++#ifdef GEN_BASELINE
++  printf ("%d\n", count);
++#endif
++  return count;
++}
++
++int evcntlsw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  int i;
++
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x0, 0x0 },
++    (__ev64_s32__) { 0xffffffff, 0xffffffff },
++  };
++
++  for (i = 0; i < NELTS(spl); i++) {
++    regA = spl[i];
++    asm volatile ("evcntlsw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_sign_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_sign_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    regA = rA2s32[i];
++    asm volatile ("evcntlsw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_sign_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_sign_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA1s1_8); i += 2) {
++    regA = (__ev64_s32__) { rA1s1_8[i + 0], rA1s1_8[i + 1] };
++    asm volatile ("evcntlsw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_sign_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_sign_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA1u1_8); i += 2) {
++    regA = (__ev64_s32__) { rA1u1_8[i + 0], rA1u1_8[i + 1] };
++    asm volatile ("evcntlsw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_sign_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_sign_bits (regA[1]) == regD[1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcntlsw_asm, "evcntlsw");
++
++int __ev_cntlsw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x0, 0x0 },
++    (__ev64_s32__) { 0xffffffff, 0xffffffff },
++  };
++
++  for (i = 0; i < NELTS(spl); i++) {
++    va = __ev_create_s32 (__ev_get_upper_s32 (spl[i]), __ev_get_lower_s32 (spl[i]));
++    vd = __ev_cntlsw (va);
++    VERIFY(count_leading_sign_bits (__ev_get_upper_s32 (va)) == __ev_get_upper_s32 (vd));
++    VERIFY(count_leading_sign_bits (__ev_get_lower_s32 (va)) == __ev_get_lower_s32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    va = __ev_create_s32 (rA1s32[i + 0], rA1s32[i + 1]);
++    vd = __ev_cntlsw (va);
++    VERIFY(count_leading_sign_bits (__ev_get_upper_s32 (va)) == __ev_get_upper_s32 (vd));
++    VERIFY(count_leading_sign_bits (__ev_get_lower_s32 (va)) == __ev_get_lower_s32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1s1_8); i += 2) {
++    va = __ev_create_s32 (rA1s1_8[i + 0], rA1s1_8[i + 1]);
++    vd = __ev_cntlsw (va);
++    VERIFY(count_leading_sign_bits (__ev_get_upper_s32 (va)) == __ev_get_upper_s32 (vd));
++    VERIFY(count_leading_sign_bits (__ev_get_lower_s32 (va)) == __ev_get_lower_s32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1u1_8); i += 2) {
++    va = __ev_create_s32 (rA1u1_8[i + 0], rA1u1_8[i + 1]);
++    vd = __ev_cntlsw (va);
++    VERIFY(count_leading_sign_bits (__ev_get_upper_s32 (va)) == __ev_get_upper_s32 (vd));
++    VERIFY(count_leading_sign_bits (__ev_get_lower_s32 (va)) == __ev_get_lower_s32 (vd));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_cntlsw_intrinsic, "__ev_cntlsw");
++
++uint32_t count_leading_zero_bits(uint32_t n)
++{
++  uint32_t i, count;
++
++#ifdef GEN_BASELINE
++  printf ("%s 0x%x: ", __func__, n);
++#endif
++  for (count = 0, i = 0; i < 32; n <<= 1, i++)
++    if ((n >> 31) == 0x0)
++      count++;
++    else
++      break;
++#ifdef GEN_BASELINE
++  printf ("%d\n", count);
++#endif
++  return count;
++}
++
++int evcntlzw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++  __ev64_u32__ spl[] = {
++    (__ev64_u32__) { 0x0, 0x0 },
++    (__ev64_u32__) { 0xffffffff, 0xffffffff },
++  };
++
++  for (i = 0; i < NELTS(spl); i++) {
++    regA = spl[i];
++    asm volatile ("evcntlzw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_zero_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_zero_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    regA = rA2u32[i];
++    asm volatile ("evcntlzw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_zero_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_zero_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA1u1_8); i += 2) {
++    regA = (__ev64_u32__) { rA1u1_8[i + 0], rA1u1_8[i + 1] };
++    asm volatile ("evcntlzw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_zero_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_zero_bits (regA[1]) == regD[1]);
++  }
++  for (i = 0; i < NELTS(rA1s1_8); i += 2) {
++    regA = (__ev64_u32__) { rA1s1_8[i + 0], rA1s1_8[i + 1] };
++    asm volatile ("evcntlzw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(count_leading_zero_bits (regA[0]) == regD[0]);
++    VERIFY(count_leading_zero_bits (regA[1]) == regD[1]);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcntlzw_asm, "evcntlzw");
++
++int __ev_cntlzw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++
++  __ev64_u32__ spl[] = {
++    (__ev64_u32__) { 0x0, 0x0 },
++    (__ev64_u32__) { 0xffffffff, 0xffffffff },
++  };
++
++  for (i = 0; i < NELTS(spl); i++) {
++    va = __ev_create_u32 (__ev_get_upper_u32 (spl[i]), __ev_get_lower_u32 (spl[i]));
++    vd = __ev_cntlzw (va);
++    VERIFY(count_leading_zero_bits (__ev_get_upper_u32 (va)) == __ev_get_upper_u32 (vd));
++    VERIFY(count_leading_zero_bits (__ev_get_lower_u32 (va)) == __ev_get_lower_u32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i + 0], rA1u32[i + 1]);
++    vd = __ev_cntlzw (va);
++    VERIFY(count_leading_zero_bits (__ev_get_upper_u32 (va)) == __ev_get_upper_u32 (vd));
++    VERIFY(count_leading_zero_bits (__ev_get_lower_u32 (va)) == __ev_get_lower_u32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1u1_8); i += 2) {
++    va = __ev_create_u32 (rA1u1_8[i + 0], rA1u1_8[i + 1]);
++    vd = __ev_cntlzw (va);
++    VERIFY(count_leading_zero_bits (__ev_get_upper_u32 (va)) == __ev_get_upper_u32 (vd));
++    VERIFY(count_leading_zero_bits (__ev_get_lower_u32 (va)) == __ev_get_lower_u32 (vd));
++  }
++  for (i = 0; i < NELTS(rA1s1_8); i += 2) {
++    va = __ev_create_u32 (rA1s1_8[i + 0], rA1s1_8[i + 1]);
++    vd = __ev_cntlzw (va);
++    VERIFY(count_leading_zero_bits (__ev_get_upper_u32 (va)) == __ev_get_upper_u32 (vd));
++    VERIFY(count_leading_zero_bits (__ev_get_lower_u32 (va)) == __ev_get_lower_u32 (vd));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_cntlzw_intrinsic, "__ev_cntlzw");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -5923,6 +6126,8 @@ test_t spe_isa_bitwise_operators_test_table = {
+     F(evorc_asm),
+     F(evextsb_asm),
+     F(evextsh_asm),
++    F(evcntlsw_asm),
++    F(evcntlzw_asm),
+     NULL
+   }
+ };
+@@ -6054,6 +6259,8 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_srwis_intrinsic),
+     F(__ev_extsb_intrinsic),
+     F(__ev_extsh_intrinsic),
++    F(__ev_cntlsw_intrinsic),
++    F(__ev_cntlzw_intrinsic),
+     NULL
+   }
+ };
+@@ -6145,3 +6352,5 @@ int main(void)
+ // 15. Add floating point examples to the spe2pim tests. See: __ADDED_FP_SUPPORT__
+ // 16. Add accumulator support. See: __ADDED_ACCUMULATOR_SUPPORT__
+ // 17. Get around to: #if TODO
++// 18. We were not able to use __ev_get_s16 (), in __ev_extsh_intrinsic (); see comment in __ev_lwhos_intrinsic ()
++//     Fix this GCC bug, and re-code.
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 9b50826..0f80656 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4618,6 +4618,269 @@ const unsigned int rA1u32[] = {
+ 
+ unsigned int rD1u32[NELTS(rA1u32)];
+ 
++const unsigned int rA1s32[] = {
++
++  /*   0 */ 0x5c482e8e,
++  /*   1 */ 0xd12a461c,
++  /*   2 */ 0x9dfbc419,
++  /*   3 */ 0xbd85105f,
++  /*   4 */ 0x6c31c0b7,
++  /*   5 */ 0x6a1b3697,
++  /*   6 */ 0xd096770f,
++  /*   7 */ 0x5194f43e,
++  /*   8 */ 0x1bfa148f,
++  /*   9 */ 0xcfc874df,
++  /*  10 */ 0x2c9793a9,
++  /*  11 */ 0x09dc48ae,
++  /*  12 */ 0x4e14904c,
++  /*  13 */ 0xe35c7c26,
++  /*  14 */ 0x330dd241,
++  /*  15 */ 0x5c593d99,
++  /*  16 */ 0xd87dcfdc,
++  /*  17 */ 0x4bb45b65,
++  /*  18 */ 0xec7fb6ac,
++  /*  19 */ 0xb855854d,
++  /*  20 */ 0xd5fabea5,
++  /*  21 */ 0xa53dbba7,
++  /*  22 */ 0x28a208ac,
++  /*  23 */ 0x453cecef,
++  /*  24 */ 0x49eb5605,
++  /*  25 */ 0x4be59738,
++  /*  26 */ 0xcdde4e36,
++  /*  27 */ 0x246a5c00,
++  /*  28 */ 0x8521f361,
++  /*  29 */ 0x58dba842,
++  /*  30 */ 0x35316dc4,
++  /*  31 */ 0xa150677e,
++  /*  32 */ 0x390c0c75,
++  /*  33 */ 0x0b13a72d,
++  /*  34 */ 0xabc51835,
++  /*  35 */ 0x9a56b3f0,
++  /*  36 */ 0x6ea31760,
++  /*  37 */ 0x7aa79370,
++  /*  38 */ 0x1eeab761,
++  /*  39 */ 0xa0ede9fe,
++  /*  40 */ 0x4d58d912,
++  /*  41 */ 0xff883f82,
++  /*  42 */ 0x00ae0cf4,
++  /*  43 */ 0xf4311a91,
++  /*  44 */ 0xcabf4310,
++  /*  45 */ 0xbc76c00b,
++  /*  46 */ 0x039e39c3,
++  /*  47 */ 0x7228e535,
++  /*  48 */ 0xb5757da3,
++  /*  49 */ 0x05aa7da8,
++  /*  50 */ 0x4fb89caf,
++  /*  51 */ 0x4bca017d,
++  /*  52 */ 0x983edf69,
++  /*  53 */ 0xccbde62c,
++  /*  54 */ 0xb615bc5b,
++  /*  55 */ 0x2760d62c,
++  /*  56 */ 0xbcf2961b,
++  /*  57 */ 0x4631d0ca,
++  /*  58 */ 0xebac27d0,
++  /*  59 */ 0x8b5e2f45,
++  /*  60 */ 0x0ae724cf,
++  /*  61 */ 0x03ba7e74,
++  /*  62 */ 0xfdc3d189,
++  /*  63 */ 0xf2ff4fdb,
++  /*  64 */ 0xeba67e98,
++  /*  65 */ 0x410874e0,
++  /*  66 */ 0x12800766,
++  /*  67 */ 0x2a6e2fc0,
++  /*  68 */ 0x7b616679,
++  /*  69 */ 0x87bbb674,
++  /*  70 */ 0x18fd0c83,
++  /*  71 */ 0x35b77b80,
++  /*  72 */ 0xc7aa07e2,
++  /*  73 */ 0xe0fc9f68,
++  /*  74 */ 0xa861b4e1,
++  /*  75 */ 0x3df2770f,
++  /*  76 */ 0x409aedf8,
++  /*  77 */ 0x04b62dc7,
++  /*  78 */ 0x0898f544,
++  /*  79 */ 0x0a1a67e0,
++  /*  80 */ 0x6f9a8bb9,
++  /*  81 */ 0x480f6c43,
++  /*  82 */ 0x757ec015,
++  /*  83 */ 0xf5a7f8c2,
++  /*  84 */ 0x02418d96,
++  /*  85 */ 0x08dabb65,
++  /*  86 */ 0xb7dd7f37,
++  /*  87 */ 0x5eb57aab,
++  /*  88 */ 0x9053caca,
++  /*  89 */ 0x6a059d45,
++  /*  90 */ 0xce00dfef,
++  /*  91 */ 0x4d970d3d,
++  /*  92 */ 0x931f7203,
++  /*  93 */ 0x754580c1,
++  /*  94 */ 0xe1a6d660,
++  /*  95 */ 0x97dc60bc,
++  /*  96 */ 0xc3ec8a0c,
++  /*  97 */ 0x535a0f47,
++  /*  98 */ 0x005ac8ec,
++  /*  99 */ 0x9ad59042,
++  /* 100 */ 0xfb9f808a,
++  /* 101 */ 0xcba9ef9d,
++  /* 102 */ 0x6cb906a6,
++  /* 103 */ 0x1acafd82,
++  /* 104 */ 0xd7a59ea6,
++  /* 105 */ 0x2bc78f53,
++  /* 106 */ 0x6c931111,
++  /* 107 */ 0x7eaaa404,
++  /* 108 */ 0x1c91a320,
++  /* 109 */ 0x408f4b70,
++  /* 110 */ 0xd6596190,
++  /* 111 */ 0x5c310002,
++  /* 112 */ 0xc6abfb3e,
++  /* 113 */ 0x39f8ff07,
++  /* 114 */ 0xfad4dc3d,
++  /* 115 */ 0x34fdcb77,
++  /* 116 */ 0x492216e7,
++  /* 117 */ 0xfd6194b0,
++  /* 118 */ 0x8d690a54,
++  /* 119 */ 0xcaae0a9b,
++  /* 120 */ 0xfc99b81d,
++  /* 121 */ 0x293a6cd0,
++  /* 122 */ 0x058f8bab,
++  /* 123 */ 0xe5cbe13a,
++  /* 124 */ 0x3ca29715,
++  /* 125 */ 0x9024fae9,
++  /* 126 */ 0xb9b7bab5,
++  /* 127 */ 0xac3bb9df,
++  /* 128 */ 0x79dbcc87,
++  /* 129 */ 0x312dd2d9,
++  /* 130 */ 0xb6aab204,
++  /* 131 */ 0x272ee476,
++  /* 132 */ 0x3d28b249,
++  /* 133 */ 0x0199d413,
++  /* 134 */ 0xda47b67e,
++  /* 135 */ 0xb7429214,
++  /* 136 */ 0xbbb5f082,
++  /* 137 */ 0x7809a598,
++  /* 138 */ 0x5d3f80c4,
++  /* 139 */ 0x281e889a,
++  /* 140 */ 0x85eaa229,
++  /* 141 */ 0x576807d1,
++  /* 142 */ 0x777165af,
++  /* 143 */ 0x4162971c,
++  /* 144 */ 0x7416cce9,
++  /* 145 */ 0x129023e3,
++  /* 146 */ 0x0c265a58,
++  /* 147 */ 0x74a11769,
++  /* 148 */ 0x6f571996,
++  /* 149 */ 0x46336dc5,
++  /* 150 */ 0xa350c6bb,
++  /* 151 */ 0xabb0d446,
++  /* 152 */ 0xeb8e1b09,
++  /* 153 */ 0x64414a39,
++  /* 154 */ 0x894bbc91,
++  /* 155 */ 0xc13bda78,
++  /* 156 */ 0x6ca4bc20,
++  /* 157 */ 0x7dd3fdd6,
++  /* 158 */ 0x8cc289f2,
++  /* 159 */ 0x301dcbef,
++  /* 160 */ 0x46a51db7,
++  /* 161 */ 0xcca3e6da,
++  /* 162 */ 0x6e79bc7a,
++  /* 163 */ 0x61ff376f,
++  /* 164 */ 0xac20650f,
++  /* 165 */ 0x1c31ddaa,
++  /* 166 */ 0x5677b558,
++  /* 167 */ 0x7e4e866d,
++  /* 168 */ 0x0d049687,
++  /* 169 */ 0x018d1f29,
++  /* 170 */ 0x5a288956,
++  /* 171 */ 0x660ddb51,
++  /* 172 */ 0x4e4d7461,
++  /* 173 */ 0x8ab79bde,
++  /* 174 */ 0x0b2644a9,
++  /* 175 */ 0x6fca0ba3,
++  /* 176 */ 0xe994bcc3,
++  /* 177 */ 0x523bd1aa,
++  /* 178 */ 0x520781af,
++  /* 179 */ 0x95cac9f6,
++  /* 180 */ 0x5bcb3799,
++  /* 181 */ 0x13bc31ea,
++  /* 182 */ 0xfdde5034,
++  /* 183 */ 0xde88ce75,
++  /* 184 */ 0xd6aa2cab,
++  /* 185 */ 0x6c365516,
++  /* 186 */ 0xb2992062,
++  /* 187 */ 0xf369204f,
++  /* 188 */ 0x5f6c6860,
++  /* 189 */ 0xf012f094,
++  /* 190 */ 0xd31fdfaf,
++  /* 191 */ 0xcbafbca9,
++  /* 192 */ 0x66f692d3,
++  /* 193 */ 0xd43bdbbf,
++  /* 194 */ 0xd6bef52d,
++  /* 195 */ 0xe17930f5,
++  /* 196 */ 0x29739be7,
++  /* 197 */ 0xf21a9d91,
++  /* 198 */ 0x73e563b6,
++  /* 199 */ 0x7467e2d6,
++  /* 200 */ 0x9cb62c8f,
++  /* 201 */ 0x93ed62fd,
++  /* 202 */ 0xa7c37e04,
++  /* 203 */ 0x6bd906f5,
++  /* 204 */ 0xeb923315,
++  /* 205 */ 0x0fdfb6fc,
++  /* 206 */ 0x83b73589,
++  /* 207 */ 0x5f4063d1,
++  /* 208 */ 0xb98ac63a,
++  /* 209 */ 0x7ca0eaf9,
++  /* 210 */ 0x63e8acae,
++  /* 211 */ 0x77294e27,
++  /* 212 */ 0x78a44c93,
++  /* 213 */ 0xd89da982,
++  /* 214 */ 0x6c5156c6,
++  /* 215 */ 0x8bf774db,
++  /* 216 */ 0xfe2b3bb9,
++  /* 217 */ 0x8ee533c9,
++  /* 218 */ 0xebeeb3e3,
++  /* 219 */ 0xc146512f,
++  /* 220 */ 0x50807f9d,
++  /* 221 */ 0x7178b283,
++  /* 222 */ 0xf01e572f,
++  /* 223 */ 0x697ee718,
++  /* 224 */ 0x6bf67280,
++  /* 225 */ 0x4927244d,
++  /* 226 */ 0xbd36304e,
++  /* 227 */ 0x127b65e3,
++  /* 228 */ 0x83d257c8,
++  /* 229 */ 0xe99c402b,
++  /* 230 */ 0xd4837c47,
++  /* 231 */ 0x0e1a8e5e,
++  /* 232 */ 0xe503c270,
++  /* 233 */ 0x4c5441d4,
++  /* 234 */ 0x7f2b969c,
++  /* 235 */ 0x7f05f051,
++  /* 236 */ 0xb5e69c30,
++  /* 237 */ 0xb4f2f0f7,
++  /* 238 */ 0x4ea10f5f,
++  /* 239 */ 0x8d0601c1,
++  /* 240 */ 0xa9410bc9,
++  /* 241 */ 0x7f296d6b,
++  /* 242 */ 0x886dd486,
++  /* 243 */ 0x5f727ae0,
++  /* 244 */ 0x0553c7c3,
++  /* 245 */ 0xa4bbda13,
++  /* 246 */ 0x910e5ddf,
++  /* 247 */ 0x8ea30bda,
++  /* 248 */ 0x16bec15c,
++  /* 249 */ 0x5f706f09,
++  /* 250 */ 0x610d00a8,
++  /* 251 */ 0xfe72c13a,
++  /* 252 */ 0xd9f97f26,
++  /* 253 */ 0x18d75157,
++  /* 254 */ 0xacac872b,
++  /* 255 */ 0x34dafc96,
++
++};
++
++unsigned int rD1s32[NELTS(rA1s32)];
++
+ // Even Half Word
+ #define EHW(n) ((n) >> 16)
+ 
+@@ -4630,6 +4893,269 @@ unsigned int rD1u32[NELTS(rA1u32)];
+ // Access a given bit of a word
+ #define BIT_W(w, n) (((w) & (0x1 << (31 - (n)))) >> (31 - (n)))
+ 
++const signed short rA1u16[] = {
++
++  /*   0 */ 0x0241,
++  /*   1 */ 0x42cb,
++  /*   2 */ 0xc5d1,
++  /*   3 */ 0x11b5,
++  /*   4 */ 0xa9b7,
++  /*   5 */ 0x7f83,
++  /*   6 */ 0xc63b,
++  /*   7 */ 0x194b,
++  /*   8 */ 0xf6c5,
++  /*   9 */ 0xaf8e,
++  /*  10 */ 0x0368,
++  /*  11 */ 0x8c28,
++  /*  12 */ 0x8bd8,
++  /*  13 */ 0x4860,
++  /*  14 */ 0xf6e7,
++  /*  15 */ 0x0297,
++  /*  16 */ 0x989f,
++  /*  17 */ 0x0ce8,
++  /*  18 */ 0x2578,
++  /*  19 */ 0x22f6,
++  /*  20 */ 0x839c,
++  /*  21 */ 0x2725,
++  /*  22 */ 0x15f5,
++  /*  23 */ 0xab28,
++  /*  24 */ 0x9df5,
++  /*  25 */ 0x4bc3,
++  /*  26 */ 0x78f7,
++  /*  27 */ 0x7d21,
++  /*  28 */ 0x286c,
++  /*  29 */ 0x3772,
++  /*  30 */ 0xf69c,
++  /*  31 */ 0xc1dc,
++  /*  32 */ 0xd2ca,
++  /*  33 */ 0x0af6,
++  /*  34 */ 0xbecc,
++  /*  35 */ 0xa99a,
++  /*  36 */ 0x45c1,
++  /*  37 */ 0x7777,
++  /*  38 */ 0xabf1,
++  /*  39 */ 0x932e,
++  /*  40 */ 0x45ac,
++  /*  41 */ 0x7245,
++  /*  42 */ 0x2611,
++  /*  43 */ 0xf01f,
++  /*  44 */ 0xaad9,
++  /*  45 */ 0x9f80,
++  /*  46 */ 0xa609,
++  /*  47 */ 0x17f7,
++  /*  48 */ 0xb6b5,
++  /*  49 */ 0x3d65,
++  /*  50 */ 0xf51b,
++  /*  51 */ 0x0968,
++  /*  52 */ 0xa76d,
++  /*  53 */ 0x53dc,
++  /*  54 */ 0x684e,
++  /*  55 */ 0xc886,
++  /*  56 */ 0x7d4c,
++  /*  57 */ 0x0e6b,
++  /*  58 */ 0x675a,
++  /*  59 */ 0x0ae3,
++  /*  60 */ 0x3776,
++  /*  61 */ 0x8c28,
++  /*  62 */ 0x8163,
++  /*  63 */ 0xf8cc,
++  /*  64 */ 0x8eb4,
++  /*  65 */ 0x8910,
++  /*  66 */ 0x4197,
++  /*  67 */ 0x6f8a,
++  /*  68 */ 0x7297,
++  /*  69 */ 0x5ed9,
++  /*  70 */ 0xf6ec,
++  /*  71 */ 0x4a08,
++  /*  72 */ 0xe6c5,
++  /*  73 */ 0xea4e,
++  /*  74 */ 0xd0dd,
++  /*  75 */ 0x12fc,
++  /*  76 */ 0x20fe,
++  /*  77 */ 0x5812,
++  /*  78 */ 0x1f62,
++  /*  79 */ 0xab8c,
++  /*  80 */ 0xacbe,
++  /*  81 */ 0xab77,
++  /*  82 */ 0xddca,
++  /*  83 */ 0x54e8,
++  /*  84 */ 0x3b47,
++  /*  85 */ 0x16d1,
++  /*  86 */ 0x11bd,
++  /*  87 */ 0x540e,
++  /*  88 */ 0xa5b0,
++  /*  89 */ 0xe94a,
++  /*  90 */ 0x997c,
++  /*  91 */ 0xdd1c,
++  /*  92 */ 0xdf71,
++  /*  93 */ 0x3afa,
++  /*  94 */ 0xef45,
++  /*  95 */ 0x0412,
++  /*  96 */ 0x99b9,
++  /*  97 */ 0xfa2c,
++  /*  98 */ 0xd7cc,
++  /*  99 */ 0x677c,
++  /* 100 */ 0xba2a,
++  /* 101 */ 0x5925,
++  /* 102 */ 0xafe3,
++  /* 103 */ 0xf987,
++  /* 104 */ 0xd80f,
++  /* 105 */ 0x424e,
++  /* 106 */ 0x78b8,
++  /* 107 */ 0x03b6,
++  /* 108 */ 0x78dd,
++  /* 109 */ 0x1437,
++  /* 110 */ 0x6dad,
++  /* 111 */ 0x72b1,
++  /* 112 */ 0x2bf7,
++  /* 113 */ 0x52d2,
++  /* 114 */ 0x1e08,
++  /* 115 */ 0x00ca,
++  /* 116 */ 0x4f18,
++  /* 117 */ 0x316b,
++  /* 118 */ 0x28ce,
++  /* 119 */ 0xd392,
++  /* 120 */ 0x1487,
++  /* 121 */ 0x6df3,
++  /* 122 */ 0xadbd,
++  /* 123 */ 0x9f87,
++  /* 124 */ 0x9796,
++  /* 125 */ 0x489b,
++  /* 126 */ 0x9feb,
++  /* 127 */ 0xb696,
++  /* 128 */ 0x20c8,
++  /* 129 */ 0x5cee,
++  /* 130 */ 0xbcf9,
++  /* 131 */ 0xc19a,
++  /* 132 */ 0xbc79,
++  /* 133 */ 0x1eba,
++  /* 134 */ 0x9d1c,
++  /* 135 */ 0x471f,
++  /* 136 */ 0xad2f,
++  /* 137 */ 0xc481,
++  /* 138 */ 0x4083,
++  /* 139 */ 0x07ec,
++  /* 140 */ 0xdde4,
++  /* 141 */ 0x727c,
++  /* 142 */ 0x67b4,
++  /* 143 */ 0x8d42,
++  /* 144 */ 0x5d23,
++  /* 145 */ 0x0fde,
++  /* 146 */ 0x2c15,
++  /* 147 */ 0x859e,
++  /* 148 */ 0x383e,
++  /* 149 */ 0xd84d,
++  /* 150 */ 0xec1f,
++  /* 151 */ 0xdd26,
++  /* 152 */ 0xbe71,
++  /* 153 */ 0x6edd,
++  /* 154 */ 0xd5b3,
++  /* 155 */ 0x9209,
++  /* 156 */ 0xee80,
++  /* 157 */ 0x1075,
++  /* 158 */ 0xd30c,
++  /* 159 */ 0xb76c,
++  /* 160 */ 0x51cf,
++  /* 161 */ 0xc536,
++  /* 162 */ 0x6de1,
++  /* 163 */ 0x18c0,
++  /* 164 */ 0x597e,
++  /* 165 */ 0xd876,
++  /* 166 */ 0xeba6,
++  /* 167 */ 0x35c8,
++  /* 168 */ 0x8d7e,
++  /* 169 */ 0x2eec,
++  /* 170 */ 0x37ab,
++  /* 171 */ 0x61a5,
++  /* 172 */ 0x8f66,
++  /* 173 */ 0x6683,
++  /* 174 */ 0x4d49,
++  /* 175 */ 0x0780,
++  /* 176 */ 0x49f5,
++  /* 177 */ 0x4d26,
++  /* 178 */ 0xcf2b,
++  /* 179 */ 0x960f,
++  /* 180 */ 0x3cb4,
++  /* 181 */ 0xa14b,
++  /* 182 */ 0xaff0,
++  /* 183 */ 0xdc04,
++  /* 184 */ 0xd4dc,
++  /* 185 */ 0x6859,
++  /* 186 */ 0x7125,
++  /* 187 */ 0x3d43,
++  /* 188 */ 0xe954,
++  /* 189 */ 0xb0db,
++  /* 190 */ 0x474b,
++  /* 191 */ 0x3584,
++  /* 192 */ 0xba51,
++  /* 193 */ 0xd60b,
++  /* 194 */ 0x6edd,
++  /* 195 */ 0x4b8d,
++  /* 196 */ 0x0bb6,
++  /* 197 */ 0xe037,
++  /* 198 */ 0xa764,
++  /* 199 */ 0xeb7b,
++  /* 200 */ 0x44dd,
++  /* 201 */ 0x73f6,
++  /* 202 */ 0x6540,
++  /* 203 */ 0xea90,
++  /* 204 */ 0x1e76,
++  /* 205 */ 0xf9c1,
++  /* 206 */ 0xa311,
++  /* 207 */ 0x7d35,
++  /* 208 */ 0x6e05,
++  /* 209 */ 0xda83,
++  /* 210 */ 0x8538,
++  /* 211 */ 0x4a29,
++  /* 212 */ 0x382b,
++  /* 213 */ 0x3229,
++  /* 214 */ 0xf68e,
++  /* 215 */ 0xb65b,
++  /* 216 */ 0xe8b0,
++  /* 217 */ 0x0d8a,
++  /* 218 */ 0x47f7,
++  /* 219 */ 0xef5c,
++  /* 220 */ 0xc6d1,
++  /* 221 */ 0x0141,
++  /* 222 */ 0x35eb,
++  /* 223 */ 0x2491,
++  /* 224 */ 0xb466,
++  /* 225 */ 0x9bf5,
++  /* 226 */ 0xd1a4,
++  /* 227 */ 0x6325,
++  /* 228 */ 0x5020,
++  /* 229 */ 0xda71,
++  /* 230 */ 0x5408,
++  /* 231 */ 0xf883,
++  /* 232 */ 0x5501,
++  /* 233 */ 0xda5a,
++  /* 234 */ 0xfe5a,
++  /* 235 */ 0x4d7c,
++  /* 236 */ 0x4d3e,
++  /* 237 */ 0x1484,
++  /* 238 */ 0xa238,
++  /* 239 */ 0x09c0,
++  /* 240 */ 0x3b69,
++  /* 241 */ 0x8387,
++  /* 242 */ 0xc7eb,
++  /* 243 */ 0x3c7e,
++  /* 244 */ 0x5cc1,
++  /* 245 */ 0xb9a1,
++  /* 246 */ 0xbb9e,
++  /* 247 */ 0x15ed,
++  /* 248 */ 0x8f86,
++  /* 249 */ 0xb201,
++  /* 250 */ 0x9a05,
++  /* 251 */ 0xaccb,
++  /* 252 */ 0x0fa4,
++  /* 253 */ 0xf459,
++  /* 254 */ 0xba79,
++  /* 255 */ 0x0d0b,
++
++};
++
++signed short rD1u16[NELTS(rA1u16)];
++
+ const signed short rA1s16[] = {
+ 
+   /*   0 */ 0x2168,
+@@ -4900,3 +5426,525 @@ signed short rD1s16[NELTS(rA1s16)];
+ #define NOR(a, b)  (~((a) | (b)))
+ #define NOT(a)     (~(a))
+ #define ORC(a, b)  ((a) | ~(b))
++
++const uint32_t rA1u1_8[] = {
++
++  /*   0 */ 0xc,
++  /*   1 */ 0x4,
++  /*   2 */ 0x0,
++  /*   3 */ 0x9,
++  /*   4 */ 0x1,
++  /*   5 */ 0x7,
++  /*   6 */ 0x4,
++  /*   7 */ 0x4,
++  /*   8 */ 0x8,
++  /*   9 */ 0xa,
++  /*  10 */ 0xb,
++  /*  11 */ 0x1,
++  /*  12 */ 0x1,
++  /*  13 */ 0x6,
++  /*  14 */ 0x1,
++  /*  15 */ 0xc,
++  /*  16 */ 0x6,
++  /*  17 */ 0xf,
++  /*  18 */ 0xa,
++  /*  19 */ 0x2,
++  /*  20 */ 0x2,
++  /*  21 */ 0x1,
++  /*  22 */ 0x9,
++  /*  23 */ 0xf,
++  /*  24 */ 0xa,
++  /*  25 */ 0x2,
++  /*  26 */ 0x2,
++  /*  27 */ 0x3,
++  /*  28 */ 0xd,
++  /*  29 */ 0xc,
++  /*  30 */ 0xe,
++  /*  31 */ 0x6,
++  /*  32 */ 0xec,
++  /*  33 */ 0xed,
++  /*  34 */ 0x43,
++  /*  35 */ 0x3e,
++  /*  36 */ 0xf4,
++  /*  37 */ 0xb1,
++  /*  38 */ 0x54,
++  /*  39 */ 0xf7,
++  /*  40 */ 0xd1,
++  /*  41 */ 0x14,
++  /*  42 */ 0xc3,
++  /*  43 */ 0x29,
++  /*  44 */ 0x3a,
++  /*  45 */ 0x34,
++  /*  46 */ 0x34,
++  /*  47 */ 0xd1,
++  /*  48 */ 0xa5,
++  /*  49 */ 0x3b,
++  /*  50 */ 0x73,
++  /*  51 */ 0xda,
++  /*  52 */ 0x25,
++  /*  53 */ 0x9c,
++  /*  54 */ 0x6a,
++  /*  55 */ 0x65,
++  /*  56 */ 0x2e,
++  /*  57 */ 0x3c,
++  /*  58 */ 0x97,
++  /*  59 */ 0x82,
++  /*  60 */ 0x45,
++  /*  61 */ 0x94,
++  /*  62 */ 0x9e,
++  /*  63 */ 0x98,
++  /*  64 */ 0xf40,
++  /*  65 */ 0xbc5,
++  /*  66 */ 0x70e,
++  /*  67 */ 0x5f6,
++  /*  68 */ 0xf31,
++  /*  69 */ 0x735,
++  /*  70 */ 0x68d,
++  /*  71 */ 0xefe,
++  /*  72 */ 0xdd2,
++  /*  73 */ 0x02a,
++  /*  74 */ 0x293,
++  /*  75 */ 0xc1e,
++  /*  76 */ 0x89c,
++  /*  77 */ 0x543,
++  /*  78 */ 0xd9e,
++  /*  79 */ 0xa70,
++  /*  80 */ 0xbf4,
++  /*  81 */ 0x0cd,
++  /*  82 */ 0xcb9,
++  /*  83 */ 0xd34,
++  /*  84 */ 0xb3f,
++  /*  85 */ 0xf83,
++  /*  86 */ 0x591,
++  /*  87 */ 0x3e1,
++  /*  88 */ 0xcd5,
++  /*  89 */ 0x1cb,
++  /*  90 */ 0xf61,
++  /*  91 */ 0x2ff,
++  /*  92 */ 0xd20,
++  /*  93 */ 0xe92,
++  /*  94 */ 0x342,
++  /*  95 */ 0x173,
++  /*  96 */ 0x4501,
++  /*  97 */ 0x303a,
++  /*  98 */ 0x6177,
++  /*  99 */ 0xf262,
++  /* 100 */ 0xa7fb,
++  /* 101 */ 0xb0b1,
++  /* 102 */ 0x2b2f,
++  /* 103 */ 0x60b8,
++  /* 104 */ 0xab5f,
++  /* 105 */ 0xb0c1,
++  /* 106 */ 0x34b9,
++  /* 107 */ 0x3cca,
++  /* 108 */ 0x7651,
++  /* 109 */ 0x0a28,
++  /* 110 */ 0x4bd1,
++  /* 111 */ 0x3bf4,
++  /* 112 */ 0x6a96,
++  /* 113 */ 0x913c,
++  /* 114 */ 0xb41e,
++  /* 115 */ 0xa152,
++  /* 116 */ 0xc9cf,
++  /* 117 */ 0xc455,
++  /* 118 */ 0x413d,
++  /* 119 */ 0x6109,
++  /* 120 */ 0x298f,
++  /* 121 */ 0xd7ed,
++  /* 122 */ 0x2382,
++  /* 123 */ 0x038a,
++  /* 124 */ 0x3ece,
++  /* 125 */ 0x5e21,
++  /* 126 */ 0xb753,
++  /* 127 */ 0xf86c,
++  /* 128 */ 0xbb214,
++  /* 129 */ 0x8d4dd,
++  /* 130 */ 0x9d03c,
++  /* 131 */ 0x6f2f3,
++  /* 132 */ 0xec07a,
++  /* 133 */ 0x47735,
++  /* 134 */ 0x482b7,
++  /* 135 */ 0xef11b,
++  /* 136 */ 0x67bd8,
++  /* 137 */ 0x6e014,
++  /* 138 */ 0x82613,
++  /* 139 */ 0xe6de3,
++  /* 140 */ 0x537a0,
++  /* 141 */ 0x014a7,
++  /* 142 */ 0x230d8,
++  /* 143 */ 0x87389,
++  /* 144 */ 0xe0d5a,
++  /* 145 */ 0xfddd1,
++  /* 146 */ 0x8d864,
++  /* 147 */ 0xe2c30,
++  /* 148 */ 0xdd6d0,
++  /* 149 */ 0xa66d3,
++  /* 150 */ 0xff146,
++  /* 151 */ 0x60deb,
++  /* 152 */ 0x34238,
++  /* 153 */ 0xf9c06,
++  /* 154 */ 0x21c93,
++  /* 155 */ 0x80ae6,
++  /* 156 */ 0xd6ba6,
++  /* 157 */ 0xb992b,
++  /* 158 */ 0xcf340,
++  /* 159 */ 0xf250c,
++  /* 160 */ 0x24b6d09,
++  /* 161 */ 0xcaa0bb6,
++  /* 162 */ 0xa561278,
++  /* 163 */ 0x37e18a2,
++  /* 164 */ 0x358ce1e,
++  /* 165 */ 0x7ff790b,
++  /* 166 */ 0x06b2b75,
++  /* 167 */ 0x768e5e1,
++  /* 168 */ 0xb104828,
++  /* 169 */ 0x546dec6,
++  /* 170 */ 0x3eedb6c,
++  /* 171 */ 0xe06f819,
++  /* 172 */ 0x7001ff5,
++  /* 173 */ 0x93c2b22,
++  /* 174 */ 0x4f8f0cd,
++  /* 175 */ 0xc8fc159,
++  /* 176 */ 0xdd1c59e,
++  /* 177 */ 0x5c840c7,
++  /* 178 */ 0x95eafc0,
++  /* 179 */ 0x2ba9943,
++  /* 180 */ 0x7e13365,
++  /* 181 */ 0x042643f,
++  /* 182 */ 0x4cbb445,
++  /* 183 */ 0xd04e603,
++  /* 184 */ 0xfb663f0,
++  /* 185 */ 0x009ce0f,
++  /* 186 */ 0x10d6b2c,
++  /* 187 */ 0x8928c82,
++  /* 188 */ 0xd1ab578,
++  /* 189 */ 0x3b571f4,
++  /* 190 */ 0xc7590d8,
++  /* 191 */ 0xc3601cd,
++  /* 192 */ 0x4b68cd93,
++  /* 193 */ 0x6b6a33c2,
++  /* 194 */ 0x80fba91f,
++  /* 195 */ 0xc081c517,
++  /* 196 */ 0xf91c67c5,
++  /* 197 */ 0x183a312f,
++  /* 198 */ 0xef28b0ad,
++  /* 199 */ 0xb8c5778e,
++  /* 200 */ 0xb0b0198d,
++  /* 201 */ 0xf2f4bc26,
++  /* 202 */ 0x722a497a,
++  /* 203 */ 0xa0e16c9d,
++  /* 204 */ 0xefd28116,
++  /* 205 */ 0xfcf76df7,
++  /* 206 */ 0x86f6e0d0,
++  /* 207 */ 0xbf41b1d9,
++  /* 208 */ 0x70da6dd1,
++  /* 209 */ 0xf584c38d,
++  /* 210 */ 0x87fcad59,
++  /* 211 */ 0x4ef78751,
++  /* 212 */ 0x2e6d0781,
++  /* 213 */ 0x263c9aea,
++  /* 214 */ 0x59fa2fb3,
++  /* 215 */ 0x2068bffc,
++  /* 216 */ 0xf621f786,
++  /* 217 */ 0x1f8c52d6,
++  /* 218 */ 0x7eb660ec,
++  /* 219 */ 0x72427d15,
++  /* 220 */ 0x6c6e8047,
++  /* 221 */ 0x7d7f1e95,
++  /* 222 */ 0x98b98719,
++  /* 223 */ 0xad89bd1d,
++  /* 224 */ 0x4ba47087,
++  /* 225 */ 0x8cfb79b3,
++  /* 226 */ 0xcca4c48c,
++  /* 227 */ 0xf5f77713,
++  /* 228 */ 0xb61ea94c,
++  /* 229 */ 0x7bcadc53,
++  /* 230 */ 0xeff879e0,
++  /* 231 */ 0x749cd6b0,
++  /* 232 */ 0x52addef9,
++  /* 233 */ 0xffc40171,
++  /* 234 */ 0xe2552b4e,
++  /* 235 */ 0x961d17bc,
++  /* 236 */ 0xbda97527,
++  /* 237 */ 0x1569ea1d,
++  /* 238 */ 0xc445d11b,
++  /* 239 */ 0xbf1f1328,
++  /* 240 */ 0xe5be0cb9,
++  /* 241 */ 0x0d5f222a,
++  /* 242 */ 0xc273de72,
++  /* 243 */ 0x86b12010,
++  /* 244 */ 0x05b3dc87,
++  /* 245 */ 0xc809be39,
++  /* 246 */ 0xbedcdd5b,
++  /* 247 */ 0x7d7b1b0e,
++  /* 248 */ 0x2c6bcf56,
++  /* 249 */ 0xa8dc2510,
++  /* 250 */ 0x69226af4,
++  /* 251 */ 0x889c3e8f,
++  /* 252 */ 0x282530cf,
++  /* 253 */ 0xbe3aa59a,
++  /* 254 */ 0x0348b8ca,
++  /* 255 */ 0x5f539088,
++
++};
++
++const int32_t rA1s1_8[] = {
++
++  /*   0 */ 0xfffffffc,
++  /*   1 */ 0xfffffff4,
++  /*   2 */ 0xfffffff0,
++  /*   3 */ 0xfffffff9,
++  /*   4 */ 0xfffffff1,
++  /*   5 */ 0xfffffff7,
++  /*   6 */ 0xfffffff4,
++  /*   7 */ 0xfffffff4,
++  /*   8 */ 0xfffffff8,
++  /*   9 */ 0xfffffffa,
++  /*  10 */ 0xfffffffb,
++  /*  11 */ 0xfffffff1,
++  /*  12 */ 0xfffffff1,
++  /*  13 */ 0xfffffff6,
++  /*  14 */ 0xfffffff1,
++  /*  15 */ 0xfffffffc,
++  /*  16 */ 0xfffffff6,
++  /*  17 */ 0xffffffff,
++  /*  18 */ 0xfffffffa,
++  /*  19 */ 0xfffffff2,
++  /*  20 */ 0xfffffff2,
++  /*  21 */ 0xfffffff1,
++  /*  22 */ 0xfffffff9,
++  /*  23 */ 0xffffffff,
++  /*  24 */ 0xfffffffa,
++  /*  25 */ 0xfffffff2,
++  /*  26 */ 0xfffffff2,
++  /*  27 */ 0xfffffff3,
++  /*  28 */ 0xfffffffd,
++  /*  29 */ 0xfffffffc,
++  /*  30 */ 0xfffffffe,
++  /*  31 */ 0xfffffff6,
++  /*  32 */ 0xffffffec,
++  /*  33 */ 0xffffffed,
++  /*  34 */ 0xffffff43,
++  /*  35 */ 0xffffff3e,
++  /*  36 */ 0xfffffff4,
++  /*  37 */ 0xffffffb1,
++  /*  38 */ 0xffffff54,
++  /*  39 */ 0xfffffff7,
++  /*  40 */ 0xffffffd1,
++  /*  41 */ 0xffffff14,
++  /*  42 */ 0xffffffc3,
++  /*  43 */ 0xffffff29,
++  /*  44 */ 0xffffff3a,
++  /*  45 */ 0xffffff34,
++  /*  46 */ 0xffffff34,
++  /*  47 */ 0xffffffd1,
++  /*  48 */ 0xffffffa5,
++  /*  49 */ 0xffffff3b,
++  /*  50 */ 0xffffff73,
++  /*  51 */ 0xffffffda,
++  /*  52 */ 0xffffff25,
++  /*  53 */ 0xffffff9c,
++  /*  54 */ 0xffffff6a,
++  /*  55 */ 0xffffff65,
++  /*  56 */ 0xffffff2e,
++  /*  57 */ 0xffffff3c,
++  /*  58 */ 0xffffff97,
++  /*  59 */ 0xffffff82,
++  /*  60 */ 0xffffff45,
++  /*  61 */ 0xffffff94,
++  /*  62 */ 0xffffff9e,
++  /*  63 */ 0xffffff98,
++  /*  64 */ 0xffffff40,
++  /*  65 */ 0xfffffbc5,
++  /*  66 */ 0xfffff70e,
++  /*  67 */ 0xfffff5f6,
++  /*  68 */ 0xffffff31,
++  /*  69 */ 0xfffff735,
++  /*  70 */ 0xfffff68d,
++  /*  71 */ 0xfffffefe,
++  /*  72 */ 0xfffffdd2,
++  /*  73 */ 0xfffff02a,
++  /*  74 */ 0xfffff293,
++  /*  75 */ 0xfffffc1e,
++  /*  76 */ 0xfffff89c,
++  /*  77 */ 0xfffff543,
++  /*  78 */ 0xfffffd9e,
++  /*  79 */ 0xfffffa70,
++  /*  80 */ 0xfffffbf4,
++  /*  81 */ 0xfffff0cd,
++  /*  82 */ 0xfffffcb9,
++  /*  83 */ 0xfffffd34,
++  /*  84 */ 0xfffffb3f,
++  /*  85 */ 0xffffff83,
++  /*  86 */ 0xfffff591,
++  /*  87 */ 0xfffff3e1,
++  /*  88 */ 0xfffffcd5,
++  /*  89 */ 0xfffff1cb,
++  /*  90 */ 0xffffff61,
++  /*  91 */ 0xfffff2ff,
++  /*  92 */ 0xfffffd20,
++  /*  93 */ 0xfffffe92,
++  /*  94 */ 0xfffff342,
++  /*  95 */ 0xfffff173,
++  /*  96 */ 0xffff4501,
++  /*  97 */ 0xffff303a,
++  /*  98 */ 0xffff6177,
++  /*  99 */ 0xfffff262,
++  /* 100 */ 0xffffa7fb,
++  /* 101 */ 0xffffb0b1,
++  /* 102 */ 0xffff2b2f,
++  /* 103 */ 0xffff60b8,
++  /* 104 */ 0xffffab5f,
++  /* 105 */ 0xffffb0c1,
++  /* 106 */ 0xffff34b9,
++  /* 107 */ 0xffff3cca,
++  /* 108 */ 0xffff7651,
++  /* 109 */ 0xffff0a28,
++  /* 110 */ 0xffff4bd1,
++  /* 111 */ 0xffff3bf4,
++  /* 112 */ 0xffff6a96,
++  /* 113 */ 0xffff913c,
++  /* 114 */ 0xffffb41e,
++  /* 115 */ 0xffffa152,
++  /* 116 */ 0xffffc9cf,
++  /* 117 */ 0xffffc455,
++  /* 118 */ 0xffff413d,
++  /* 119 */ 0xffff6109,
++  /* 120 */ 0xffff298f,
++  /* 121 */ 0xffffd7ed,
++  /* 122 */ 0xffff2382,
++  /* 123 */ 0xffff038a,
++  /* 124 */ 0xffff3ece,
++  /* 125 */ 0xffff5e21,
++  /* 126 */ 0xffffb753,
++  /* 127 */ 0xfffff86c,
++  /* 128 */ 0xfffbb214,
++  /* 129 */ 0xfff8d4dd,
++  /* 130 */ 0xfff9d03c,
++  /* 131 */ 0xfff6f2f3,
++  /* 132 */ 0xfffec07a,
++  /* 133 */ 0xfff47735,
++  /* 134 */ 0xfff482b7,
++  /* 135 */ 0xfffef11b,
++  /* 136 */ 0xfff67bd8,
++  /* 137 */ 0xfff6e014,
++  /* 138 */ 0xfff82613,
++  /* 139 */ 0xfffe6de3,
++  /* 140 */ 0xfff537a0,
++  /* 141 */ 0xfff014a7,
++  /* 142 */ 0xfff230d8,
++  /* 143 */ 0xfff87389,
++  /* 144 */ 0xfffe0d5a,
++  /* 145 */ 0xffffddd1,
++  /* 146 */ 0xfff8d864,
++  /* 147 */ 0xfffe2c30,
++  /* 148 */ 0xfffdd6d0,
++  /* 149 */ 0xfffa66d3,
++  /* 150 */ 0xfffff146,
++  /* 151 */ 0xfff60deb,
++  /* 152 */ 0xfff34238,
++  /* 153 */ 0xffff9c06,
++  /* 154 */ 0xfff21c93,
++  /* 155 */ 0xfff80ae6,
++  /* 156 */ 0xfffd6ba6,
++  /* 157 */ 0xfffb992b,
++  /* 158 */ 0xfffcf340,
++  /* 159 */ 0xffff250c,
++  /* 160 */ 0xf24b6d09,
++  /* 161 */ 0xfcaa0bb6,
++  /* 162 */ 0xfa561278,
++  /* 163 */ 0xf37e18a2,
++  /* 164 */ 0xf358ce1e,
++  /* 165 */ 0xf7ff790b,
++  /* 166 */ 0xf06b2b75,
++  /* 167 */ 0xf768e5e1,
++  /* 168 */ 0xfb104828,
++  /* 169 */ 0xf546dec6,
++  /* 170 */ 0xf3eedb6c,
++  /* 171 */ 0xfe06f819,
++  /* 172 */ 0xf7001ff5,
++  /* 173 */ 0xf93c2b22,
++  /* 174 */ 0xf4f8f0cd,
++  /* 175 */ 0xfc8fc159,
++  /* 176 */ 0xfdd1c59e,
++  /* 177 */ 0xf5c840c7,
++  /* 178 */ 0xf95eafc0,
++  /* 179 */ 0xf2ba9943,
++  /* 180 */ 0xf7e13365,
++  /* 181 */ 0xf042643f,
++  /* 182 */ 0xf4cbb445,
++  /* 183 */ 0xfd04e603,
++  /* 184 */ 0xffb663f0,
++  /* 185 */ 0xf009ce0f,
++  /* 186 */ 0xf10d6b2c,
++  /* 187 */ 0xf8928c82,
++  /* 188 */ 0xfd1ab578,
++  /* 189 */ 0xf3b571f4,
++  /* 190 */ 0xfc7590d8,
++  /* 191 */ 0xfc3601cd,
++  /* 192 */ 0x4b68cd93,
++  /* 193 */ 0x6b6a33c2,
++  /* 194 */ 0x80fba91f,
++  /* 195 */ 0xc081c517,
++  /* 196 */ 0xf91c67c5,
++  /* 197 */ 0x183a312f,
++  /* 198 */ 0xef28b0ad,
++  /* 199 */ 0xb8c5778e,
++  /* 200 */ 0xb0b0198d,
++  /* 201 */ 0xf2f4bc26,
++  /* 202 */ 0x722a497a,
++  /* 203 */ 0xa0e16c9d,
++  /* 204 */ 0xefd28116,
++  /* 205 */ 0xfcf76df7,
++  /* 206 */ 0x86f6e0d0,
++  /* 207 */ 0xbf41b1d9,
++  /* 208 */ 0x70da6dd1,
++  /* 209 */ 0xf584c38d,
++  /* 210 */ 0x87fcad59,
++  /* 211 */ 0x4ef78751,
++  /* 212 */ 0x2e6d0781,
++  /* 213 */ 0x263c9aea,
++  /* 214 */ 0x59fa2fb3,
++  /* 215 */ 0x2068bffc,
++  /* 216 */ 0xf621f786,
++  /* 217 */ 0x1f8c52d6,
++  /* 218 */ 0x7eb660ec,
++  /* 219 */ 0x72427d15,
++  /* 220 */ 0x6c6e8047,
++  /* 221 */ 0x7d7f1e95,
++  /* 222 */ 0x98b98719,
++  /* 223 */ 0xad89bd1d,
++  /* 224 */ 0x4ba47087,
++  /* 225 */ 0x8cfb79b3,
++  /* 226 */ 0xcca4c48c,
++  /* 227 */ 0xf5f77713,
++  /* 228 */ 0xb61ea94c,
++  /* 229 */ 0x7bcadc53,
++  /* 230 */ 0xeff879e0,
++  /* 231 */ 0x749cd6b0,
++  /* 232 */ 0x52addef9,
++  /* 233 */ 0xffc40171,
++  /* 234 */ 0xe2552b4e,
++  /* 235 */ 0x961d17bc,
++  /* 236 */ 0xbda97527,
++  /* 237 */ 0x1569ea1d,
++  /* 238 */ 0xc445d11b,
++  /* 239 */ 0xbf1f1328,
++  /* 240 */ 0xe5be0cb9,
++  /* 241 */ 0x0d5f222a,
++  /* 242 */ 0xc273de72,
++  /* 243 */ 0x86b12010,
++  /* 244 */ 0x05b3dc87,
++  /* 245 */ 0xc809be39,
++  /* 246 */ 0xbedcdd5b,
++  /* 247 */ 0x7d7b1b0e,
++  /* 248 */ 0x2c6bcf56,
++  /* 249 */ 0xa8dc2510,
++  /* 250 */ 0x69226af4,
++  /* 251 */ 0x889c3e8f,
++  /* 252 */ 0x282530cf,
++  /* 253 */ 0xbe3aa59a,
++  /* 254 */ 0x0348b8ca,
++  /* 255 */ 0x5f539088,
++
++};
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 3460300..7ebf146 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6123)
++   by 0x........: main (test_spe.c:6330)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6123)
++   by 0x........: main (test_spe.c:6330)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6123)
++   by 0x........: main (test_spe.c:6330)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 2f66aa4..221edfe 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -63,6 +63,8 @@ SPE Regression Tests: PASS
+ ....evorc: PASS
+ ....evextsb: PASS
+ ....evextsh: PASS
++....evcntlsw: PASS
++....evcntlzw: PASS
+ ...SPE ISA Merge Instructions Tests: PASS
+ ....evmergehi: PASS
+ ....evmergehilo: PASS
+@@ -140,6 +142,8 @@ SPE Regression Tests: PASS
+ ....__ev_srwis: PASS
+ ....__ev_extsb: PASS
+ ....__ev_extsh: PASS
++....__ev_cntlsw: PASS
++....__ev_cntlzw: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index e0622e9..ce66932 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 68 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 72 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 73 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  3717 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7258 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  4279 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  7824 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  8993 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12557 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 13512 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 17035 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 30939 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2132 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  3957 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  7482 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0030-Implement-SPE-Instructions-evsplatfi-evsplati.patch b/recipes-devtools/valgrind/files/0030-Implement-SPE-Instructions-evsplatfi-evsplati.patch
new file mode 100644
index 0000000..5dd668d
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0030-Implement-SPE-Instructions-evsplatfi-evsplati.patch
@@ -0,0 +1,500 @@
+From 9cb0e82558725d39c3a9baa6390c12e3099d50ab Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 21 Feb 2013 12:58:05 -0800
+Subject: [PATCH 30/65] Implement SPE Instructions: { evsplatfi, evsplati }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   66 ++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  205 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   18 ++--
+ 5 files changed, 287 insertions(+), 12 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 8f1fdbd..641b8bb 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12574,6 +12574,49 @@ static IRExpr* spe_shift_amount ( IRExpr* src,
+                 msk );
+ }
+ 
++static IRExpr* spe_5Sto32 ( IRExpr* src )
++{
++  /* src is an IRExpr corresponding to a Ico_U8, but contains a 5-bit *signed*
++   * literal.
++   * If bit-0/5 is set, spe_5Sto32() return's a sign-extended 32-bit number.
++   */
++  IRTemp w0 = newTemp( Ity_I32 );
++  IRTemp w1 = newTemp( Ity_I32 );
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  // Convert from 8-bit to 32-bit first; doing an 8-bit right-shift,
++  // we hit the vassert(0) in:
++  // VEX/priv/host_ppc_isel.c/
++  // static HReg iselWordExpr_R_wrk ( ISelEnv* env, IRExpr* e )
++  //  if (shftOp == Pshft_SHR || shftOp == Pshft_SAR) {
++  //    if (ty == Ity_I8 || ty == Ity_I16) {
++  //      ...
++  //      vassert(0); /* AWAITING TEST CASE */
++  //    }
++  //  }
++  assign( w0, unop( Iop_8Uto32,
++                    src ) );
++
++  assign( w1, binop( Iop_Shr32,
++                     mkexpr( w0 ),
++                     mkU8( 0x4 ) ) );
++
++  assign( c0, binop( Iop_CmpEQ32,
++                     mkexpr( w1 ),
++                     mkU32( 0x1 ) ) );
++
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr( c0 ) ) );
++
++  return IRExpr_Mux0X ( mkexpr( b0 ),
++                        mkexpr( w0 ), /* else   (b1 holds False) */
++                        unop( Iop_8Sto32, /* if (b1 holds True)  */
++                              binop( Iop_Or8,
++                                     mkU8( 0xe0 ),
++                                     src ) ) );
++}
++
+ static Bool dis_spe_shift_rotate ( UInt theInstr )
+ {
+    /* EVX-Form */
+@@ -12583,6 +12626,7 @@ static Bool dis_spe_shift_rotate ( UInt theInstr )
+    UChar rA_addr = evxRA( theInstr );
+    UChar rB_addr = evxRB( theInstr );
+    UChar uimm    = evxRB( theInstr );
++   Char  simm    = evxRA( theInstr );
+ 
+    IRTemp rA = newTemp( Ity_I64 );
+    IRTemp rB = newTemp( Ity_I64 );
+@@ -12629,10 +12673,18 @@ static Bool dis_spe_shift_rotate ( UInt theInstr )
+       // evrlw (Vector Rotate Left Word, SPEPEM p5-216)
+       DIP( "evrlw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+       break;
++   case 0x229:
++      // evsplati (Vector Splat Immediate, SPEPEM p5-223)
++      DIP( "evsplati r%d, %d\n", rD_addr, simm );
++      break;
+    case 0x22a:
+       // evrlwi (Vector Rotate Left Word Immediate, SPEPEM p5-217)
+       DIP( "evrlwi r%d, r%d, %d\n", rD_addr, rA_addr, uimm );
+       break;
++   case 0x22b:
++      // evsplatfi (Vector Splat Fractional Immediate, SPEPEM p5-222)
++      DIP( "evsplatfi r%d, %d\n", rD_addr, simm );
++      break;
+    default:
+       return False;
+    }
+@@ -12710,12 +12762,24 @@ static Bool dis_spe_shift_rotate ( UInt theInstr )
+                          spe_shift_amount ( mkexpr ( rBU ),
+                                             mkU8   ( 0x1f ) ) ) );
+       break;
++   case 0x229: // evsplati
++        assign ( rDL, spe_5Sto32( mkU8 ( simm ) ) );
++        assign ( rDU, spe_5Sto32( mkU8 ( simm ) ) );
++      break;
+    case 0x22a: // evrlwi
+       assign( rDL, ROTL( mkexpr ( rAL ),
+                          mkU8 ( uimm ) ) );
+       assign( rDU, ROTL( mkexpr ( rAU ),
+                          mkU8 ( uimm ) ) );
+       break;
++   case 0x22b: // evsplatfi
++      assign( rDL, binop( Iop_Shl32,
++                          mkU32 ( simm ),
++                          mkU8 ( 0x1b ) ) );
++      assign( rDU, binop( Iop_Shl32,
++                          mkU32 ( simm ),
++                          mkU8 ( 0x1b ) ) );
++      break;
+    default:
+       return False;
+    }
+@@ -18781,7 +18845,9 @@ DisResult disInstr_PPC_WRK (
+       case 0x224: // evslw
+       case 0x226: // evslwi
+       case 0x228: // evrlw
++      case 0x229: // evsplati
+       case 0x22a: // evrlwi
++      case 0x22b: // evsplatfi
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_shift_rotate( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 5dcd978..af513bd 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -6026,6 +6026,207 @@ int __ev_cntlzw_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_cntlzw_intrinsic, "__ev_cntlzw");
+ 
++int evsplatfi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regD asm ("30");
++
++#define EVSPLATFI(simm)                                     \
++  asm volatile ("evsplatfi %[d]," #simm : [d] "=r" (regD)); \
++  VERIFY(regD[0] == ((simm) << 27));                        \
++  VERIFY(regD[1] == ((simm) << 27));
++
++  EVSPLATFI(-16);
++  EVSPLATFI(-15);
++  EVSPLATFI(-14);
++  EVSPLATFI(-13);
++  EVSPLATFI(-12);
++  EVSPLATFI(-11);
++  EVSPLATFI(-10);
++  EVSPLATFI(-9);
++  EVSPLATFI(-8);
++  EVSPLATFI(-7);
++  EVSPLATFI(-6);
++  EVSPLATFI(-5);
++  EVSPLATFI(-4);
++  EVSPLATFI(-3);
++  EVSPLATFI(-2);
++  EVSPLATFI(-1);
++  EVSPLATFI(0);
++  EVSPLATFI(1);
++  EVSPLATFI(2);
++  EVSPLATFI(3);
++  EVSPLATFI(4);
++  EVSPLATFI(5);
++  EVSPLATFI(6);
++  EVSPLATFI(7);
++  EVSPLATFI(8);
++  EVSPLATFI(9);
++  EVSPLATFI(10);
++  EVSPLATFI(11);
++  EVSPLATFI(12);
++  EVSPLATFI(13);
++  EVSPLATFI(14);
++  EVSPLATFI(15);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsplatfi_asm, "evsplatfi");
++
++int __ev_splatfi_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd;
++
++#define __EV_SPLATFI(simm)                          \
++  vd = __ev_splatfi((simm));                        \
++  VERIFY(__ev_get_upper_s32(vd) == ((simm) << 27)); \
++  VERIFY(__ev_get_lower_s32(vd) == ((simm) << 27));
++
++  __EV_SPLATFI(-16);
++  __EV_SPLATFI(-15);
++  __EV_SPLATFI(-14);
++  __EV_SPLATFI(-13);
++  __EV_SPLATFI(-12);
++  __EV_SPLATFI(-11);
++  __EV_SPLATFI(-10);
++  __EV_SPLATFI(-9);
++  __EV_SPLATFI(-8);
++  __EV_SPLATFI(-7);
++  __EV_SPLATFI(-6);
++  __EV_SPLATFI(-5);
++  __EV_SPLATFI(-4);
++  __EV_SPLATFI(-3);
++  __EV_SPLATFI(-2);
++  __EV_SPLATFI(-1);
++  __EV_SPLATFI(0);
++  __EV_SPLATFI(1);
++  __EV_SPLATFI(2);
++  __EV_SPLATFI(3);
++  __EV_SPLATFI(4);
++  __EV_SPLATFI(5);
++  __EV_SPLATFI(6);
++  __EV_SPLATFI(7);
++  __EV_SPLATFI(8);
++  __EV_SPLATFI(9);
++  __EV_SPLATFI(10);
++  __EV_SPLATFI(11);
++  __EV_SPLATFI(12);
++  __EV_SPLATFI(13);
++  __EV_SPLATFI(14);
++  __EV_SPLATFI(15);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_splatfi_intrinsic, "__ev_splatfi");
++
++int evsplati_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regD asm ("30");
++
++
++#define EVSPLATI(simm)                                     \
++  asm volatile ("evsplati %[d]," #simm : [d] "=r" (regD)); \
++  VERIFY(regD[0] == ((((simm) >> 4) == 0x0) ?              \
++                     ((simm) & 0x1f) :                     \
++                     (0xffffffe0 + ((simm) & 0x1f))));     \
++  VERIFY(regD[1] == regD[0]);
++
++  EVSPLATI(-16);
++  EVSPLATI(-15);
++  EVSPLATI(-14);
++  EVSPLATI(-13);
++  EVSPLATI(-12);
++  EVSPLATI(-11);
++  EVSPLATI(-10);
++  EVSPLATI(-9);
++  EVSPLATI(-8);
++  EVSPLATI(-7);
++  EVSPLATI(-6);
++  EVSPLATI(-5);
++  EVSPLATI(-4);
++  EVSPLATI(-3);
++  EVSPLATI(-2);
++  EVSPLATI(-1);
++  EVSPLATI(0);
++  EVSPLATI(1);
++  EVSPLATI(2);
++  EVSPLATI(3);
++  EVSPLATI(4);
++  EVSPLATI(5);
++  EVSPLATI(6);
++  EVSPLATI(7);
++  EVSPLATI(8);
++  EVSPLATI(9);
++  EVSPLATI(10);
++  EVSPLATI(11);
++  EVSPLATI(12);
++  EVSPLATI(13);
++  EVSPLATI(14);
++  EVSPLATI(15);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsplati_asm, "evsplati");
++
++int __ev_splati_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd;
++
++#define __EV_SPLATI(simm)                                              \
++  vd = __ev_splati ((simm));                                           \
++  VERIFY(__ev_get_upper_s32 (vd) == ((((simm) >> 4) == 0x0) ?          \
++                                     ((simm) & 0x1f) :                 \
++                                     (0xffffffe0 + ((simm) & 0x1f)))); \
++  VERIFY(__ev_get_lower_s32 (vd) == __ev_get_upper_s32 (vd));
++
++  __EV_SPLATI(-16);
++  __EV_SPLATI(-15);
++  __EV_SPLATI(-14);
++  __EV_SPLATI(-13);
++  __EV_SPLATI(-12);
++  __EV_SPLATI(-11);
++  __EV_SPLATI(-10);
++  __EV_SPLATI(-9);
++  __EV_SPLATI(-8);
++  __EV_SPLATI(-7);
++  __EV_SPLATI(-6);
++  __EV_SPLATI(-5);
++  __EV_SPLATI(-4);
++  __EV_SPLATI(-3);
++  __EV_SPLATI(-2);
++  __EV_SPLATI(-1);
++  __EV_SPLATI(0);
++  __EV_SPLATI(1);
++  __EV_SPLATI(2);
++  __EV_SPLATI(3);
++  __EV_SPLATI(4);
++  __EV_SPLATI(5);
++  __EV_SPLATI(6);
++  __EV_SPLATI(7);
++  __EV_SPLATI(8);
++  __EV_SPLATI(9);
++  __EV_SPLATI(10);
++  __EV_SPLATI(11);
++  __EV_SPLATI(12);
++  __EV_SPLATI(13);
++  __EV_SPLATI(14);
++  __EV_SPLATI(15);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_splati_intrinsic, "__ev_splati");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -6158,6 +6359,8 @@ test_t spe_isa_shift_rotate_insns_test_table = {
+     F(evsrwiu_asm),
+     F(evsrws_asm),
+     F(evsrwis_asm),
++    F(evsplatfi_asm),
++    F(evsplati_asm),
+     NULL
+   }
+ };
+@@ -6261,6 +6464,8 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_extsh_intrinsic),
+     F(__ev_cntlsw_intrinsic),
+     F(__ev_cntlzw_intrinsic),
++    F(__ev_splatfi_intrinsic),
++    F(__ev_splati_intrinsic),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 7ebf146..c01d454 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6330)
++   by 0x........: main (test_spe.c:6535)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6330)
++   by 0x........: main (test_spe.c:6535)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6330)
++   by 0x........: main (test_spe.c:6535)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 221edfe..adc6e0a 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -79,6 +79,8 @@ SPE Regression Tests: PASS
+ ....evsrwiu: PASS
+ ....evsrws: PASS
+ ....evsrwis: PASS
++....evsplatfi: PASS
++....evsplati: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+@@ -144,6 +146,8 @@ SPE Regression Tests: PASS
+ ....__ev_extsh: PASS
+ ....__ev_cntlsw: PASS
+ ....__ev_cntlzw: PASS
++....__ev_splatfi: PASS
++....__ev_splati: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index ce66932..a660b62 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 69 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7258 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  6832 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  7824 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  7392 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12557 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12133 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 17035 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 16608 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  2132 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  1707 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  7482 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  7056 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0031-Implement-SPE-Instructions-evneg-evabs-evrndw.patch b/recipes-devtools/valgrind/files/0031-Implement-SPE-Instructions-evneg-evabs-evrndw.patch
new file mode 100644
index 0000000..e8a7db2
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0031-Implement-SPE-Instructions-evneg-evabs-evrndw.patch
@@ -0,0 +1,565 @@
+From 2769ef3054e3aa2630274fd1c302b68a4e8411fd Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 22 Feb 2013 16:54:18 -0800
+Subject: [PATCH 31/65] Implement SPE Instructions: { evneg, evabs, evrndw }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   62 +++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  174 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    3 +
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    6 +
+ regtest-power7-64.log                    |   34 +++---
+ 6 files changed, 265 insertions(+), 20 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 641b8bb..90c7862 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12275,6 +12275,38 @@ static IRExpr* spe_count_leading_sign_bits ( IRExpr* src )
+                                                              src ) ) );
+ }
+ 
++static IRExpr* spe_neg ( IRExpr* src )
++{
++  return binop ( Iop_Add32,
++                 unop ( Iop_Not32,
++                        src ),
++                 mkU32 ( 0x1 ) );
++}
++
++static IRExpr* spe_abs ( IRExpr* src )
++{
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  assign( c0, binop( Iop_CmpLT32S,
++                     src,
++                     mkU32 ( 0x0 ) ) );
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr ( c0 ) ) );
++  return IRExpr_Mux0X ( mkexpr ( b0 ),
++                        src,
++                        spe_neg ( src ) );
++}
++
++static IRExpr* spe_round_word ( IRExpr* src )
++{
++  return binop( Iop_And32,
++                binop( Iop_Add32,
++                       src,
++                       mkU32 ( 0x8000 ) ),
++                mkU32 ( 0xFFFF0000 ) );
++}
++
+ static Bool dis_spe_bitwise ( UInt theInstr )
+ {
+    /* EVX-Form */
+@@ -12305,8 +12337,11 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    }
+    switch (opc2) {
+ 
++   case 0x208:
++   case 0x209:
+    case 0x20a:
+    case 0x20b:
++   case 0x20c:
+    case 0x20d:
+    case 0x20e:
+    case 0x211:
+@@ -12317,6 +12352,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+    case 0x219:
+    case 0x21b:
+    case 0x21e:
++      if (opc2 == 0x208) {
++        // evabs (Vector Absolute Value, SPEPEM p5-68)
++        DIP( "evabs r%d, r%d\n", rD_addr, rA_addr);
++      }
++      if (opc2 == 0x209) {
++        // evneg (Vector Negate, SPEPEM p5-212)
++        DIP( "evneg r%d, r%d\n", rD_addr, rA_addr);
++      }
+       if (opc2 == 0x20a) {
+         // evextsb (Vector Extend Sign Byte)
+         DIP( "evextsb r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
+@@ -12325,6 +12368,10 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         // evextsh (Vector Extend Sign Half Word)
+         DIP( "evextsh r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
+       }
++      if (opc2 == 0x20c) {
++        // evrndw (Vector Round Word, SPEPEM p5-218)
++        DIP( "evrndw r%d, r%d\n", rD_addr, rA_addr);
++      }
+       if (opc2 == 0x20d) {
+         // evcntlzw (Vector count Leading Zeros Word)
+         DIP( "evcntlzw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr);
+@@ -12374,6 +12421,14 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+       assign ( rBL, unop( Iop_64to32,   mkexpr ( rB ) ) );
+       assign ( rBU, unop( Iop_64HIto32, mkexpr ( rB ) ) );
+ 
++      if (opc2 == 0x208) { // evabs
++        assign ( rDL, spe_abs (  mkexpr ( rAL ) ) );
++        assign ( rDU, spe_abs (  mkexpr ( rAU ) ) );
++      }
++      if (opc2 == 0x209) { // evneg
++        assign ( rDL, spe_neg ( mkexpr ( rAL ) ) );
++        assign ( rDU, spe_neg ( mkexpr ( rAU ) ) );
++      }
+       if (opc2 == 0x20a) { // evextsb
+         assign ( rDL, unop ( Iop_8Sto32, ( unop ( Iop_32to8, mkexpr ( rAL ) ) ) ) );
+         assign ( rDU, unop ( Iop_8Sto32, ( unop ( Iop_32to8, mkexpr ( rAU ) ) ) ) );
+@@ -12382,6 +12437,10 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+         assign ( rDL, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAL ) ) ) ) );
+         assign ( rDU, unop ( Iop_16Sto32, ( unop ( Iop_32to16, mkexpr ( rAU ) ) ) ) );
+       }
++      if (opc2 == 0x20c) { // evrndw
++        assign ( rDL, spe_round_word ( mkexpr ( rAL ) ) );
++        assign ( rDU, spe_round_word ( mkexpr ( rAU ) ) );
++      }
+       if (opc2 == 0x20e) { // evcntlsw
+         assign ( rDL, spe_count_leading_sign_bits ( mkexpr ( rAL ) ) );
+         assign ( rDU, spe_count_leading_sign_bits ( mkexpr ( rAU ) ) );
+@@ -18823,8 +18882,11 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x208: // evabs
++      case 0x209: // evneg
+       case 0x20a: // evextsb
+       case 0x20b: // evextsh
++      case 0x20c: // evrndw
+       case 0x20d: // evcntlzw
+       case 0x20e: // evcntlsw
+       case 0x211: // evand
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index af513bd..c897981 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -6227,6 +6227,169 @@ int __ev_splati_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_splati_intrinsic, "__ev_splati");
+ 
++int evneg_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x80000000, 0x80000000 },
++  };
++  int i;
++
++  for (i = 0; i < NELTS(rB2s32); i++) {
++    regA = rB2s32[i];
++    asm volatile ("evneg %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == NEG(regA[0]));
++    VERIFY(regD[1] == NEG(regA[1]));
++  }
++
++  // Per the accompannying note in the SPEPEM, verify that the negative of the most
++  // negative number is itself:
++  // evneg ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  //  ==   ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  regA = spl[0];
++  asm volatile ("evneg %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == regA[0]);
++  VERIFY(regD[1] == regA[1]);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evneg_asm, "evneg");
++
++int __ev_neg_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x80000000, 0x80000000 },
++  };
++  int i;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++    vd = __ev_neg (va);
++    VERIFY(__ev_get_upper_s32 (vd) == NEG(__ev_get_upper_s32 (va)));
++    VERIFY(__ev_get_lower_s32 (vd) == NEG(__ev_get_lower_s32 (va)));
++  }
++
++  // Per the accompannying note in the SPEPEM, verify that the negative of the most
++  // negative number is itself:
++  // evneg ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  //  ==   ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  va = __ev_create_s32 (__ev_get_upper_s32 (spl[0]), __ev_get_lower_s32 (spl[0]));
++  vd = __ev_neg (va);
++  VERIFY(__ev_get_upper_s32 (vd) == __ev_get_upper_s32 (va));
++  VERIFY(__ev_get_lower_s32 (vd) == __ev_get_lower_s32 (va));
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_neg_intrinsic, "__ev_neg");
++
++int evabs_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x80000000, 0x80000000 },
++  };
++  int i;
++
++  for (i = 0; i < NELTS(rB2s32); i++) {
++    regA = rB2s32[i];
++    asm volatile ("evabs %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == ABS(regA[0]));
++    VERIFY(regD[1] == ABS(regA[1]));
++  }
++
++  // Per the accompannying note in the SPEPEM, verify that the absolute value of the most
++  // negative number is itself:
++  // evabs ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  //  ==   ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  regA = spl[0];
++  asm volatile ("evabs %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == regA[0]);
++  VERIFY(regD[1] == regA[1]);
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evabs_asm, "evabs");
++
++int __ev_abs_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  __ev64_s32__ spl[] = {
++    (__ev64_s32__) { 0x80000000, 0x80000000 },
++  };
++  int i;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++    vd = __ev_abs (va);
++    VERIFY(__ev_get_upper_s32 (vd) == ABS(__ev_get_upper_s32 (va)));
++    VERIFY(__ev_get_lower_s32 (vd) == ABS(__ev_get_lower_s32 (va)));
++  }
++
++  // Per the accompannying note in the SPEPEM, verify that the absolute value of the most
++  // negative number is itself:
++  // evabs ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  //  ==   ((__ev64_s32__) { 0x80000000, 0x80000000 })
++  va = __ev_create_s32 (__ev_get_upper_s32 (spl[0]), __ev_get_lower_s32 (spl[0]));
++  vd = __ev_abs (va);
++  VERIFY(__ev_get_upper_s32 (vd) == __ev_get_upper_s32 (va));
++  VERIFY(__ev_get_lower_s32 (vd) == __ev_get_lower_s32 (va));
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_abs_intrinsic, "__ev_abs");
++
++int evrndw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int i;
++
++  for (i = 0; i < NELTS(rB2u32); i++) {
++    regA = rB2u32[i];
++    asm volatile ("evrndw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == RNDW(regA[0]));
++    VERIFY(regD[1] == RNDW(regA[1]));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evrndw_asm, "evrndw");
++
++int __ev_rndw_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ vd, va;
++  int i;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++    vd = __ev_rndw (va);
++    VERIFY(__ev_get_upper_u32 (vd) == RNDW(__ev_get_upper_u32 (va)));
++    VERIFY(__ev_get_lower_u32 (vd) == RNDW(__ev_get_lower_u32 (va)));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_rndw_intrinsic, "__ev_rndw");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -6329,6 +6492,9 @@ test_t spe_isa_bitwise_operators_test_table = {
+     F(evextsh_asm),
+     F(evcntlsw_asm),
+     F(evcntlzw_asm),
++    F(evneg_asm),
++    F(evabs_asm),
++    F(evrndw_asm),
+     NULL
+   }
+ };
+@@ -6466,6 +6632,9 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_cntlzw_intrinsic),
+     F(__ev_splatfi_intrinsic),
+     F(__ev_splati_intrinsic),
++    F(__ev_neg_intrinsic),
++    F(__ev_abs_intrinsic),
++    F(__ev_rndw_intrinsic),
+     NULL
+   }
+ };
+@@ -6559,3 +6728,8 @@ int main(void)
+ // 17. Get around to: #if TODO
+ // 18. We were not able to use __ev_get_s16 (), in __ev_extsh_intrinsic (); see comment in __ev_lwhos_intrinsic ()
+ //     Fix this GCC bug, and re-code.
++// 19. In evnot_asm(), need: VERIFY(regD[1] == NOT(regA[1]));
++// 20. For each hex number that you have (randomly generated) as input data,put its base-10 form alongside in comment form
++// 21. Have a dynamic random number generator to be able to to test for literally zillions of values (instead of using
++//     the pre-generated values from the data pools - since all the semantics are already coded and yuou do not depend
++//     upon raw values (ensure that this is so).
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 0f80656..f190761 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -5426,6 +5426,9 @@ signed short rD1s16[NELTS(rA1s16)];
+ #define NOR(a, b)  (~((a) | (b)))
+ #define NOT(a)     (~(a))
+ #define ORC(a, b)  ((a) | ~(b))
++#define NEG(a)     (NOT((a)) + 1)
++#define ABS(a)     ((a) >= 0 ? (a) : -(a))
++#define RNDW(a)    (((a) + 0x00008000) & 0xffff0000)
+ 
+ const uint32_t rA1u1_8[] = {
+ 
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index c01d454..50f9e98 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6535)
++   by 0x........: main (test_spe.c:6704)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6535)
++   by 0x........: main (test_spe.c:6704)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:42)
+    by 0x........: run (test_spe.h:48)
+    by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6535)
++   by 0x........: main (test_spe.c:6704)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index adc6e0a..c6c4e1c 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -65,6 +65,9 @@ SPE Regression Tests: PASS
+ ....evextsh: PASS
+ ....evcntlsw: PASS
+ ....evcntlzw: PASS
++....evneg: PASS
++....evabs: PASS
++....evrndw: PASS
+ ...SPE ISA Merge Instructions Tests: PASS
+ ....evmergehi: PASS
+ ....evmergehilo: PASS
+@@ -148,6 +151,9 @@ SPE Regression Tests: PASS
+ ....__ev_cntlzw: PASS
+ ....__ev_splatfi: PASS
+ ....__ev_splati: PASS
++....__ev_neg: PASS
++....__ev_abs: PASS
++....__ev_rndw: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index a660b62..0aa7018 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 73 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 68 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 74 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 74 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  6832 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  5703 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  7392 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  6264 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12133 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 11019 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16608 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 15497 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  1707 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:   467 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  7056 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  5940 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0032-Implement-SPE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch b/recipes-devtools/valgrind/files/0032-Implement-SPE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch
new file mode 100644
index 0000000..9715c4d
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0032-Implement-SPE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch
@@ -0,0 +1,1478 @@
+From 2fc497fc183c2179301a024b8c4383420a66ab1e Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Feb 2013 07:49:33 -0800
+Subject: [PATCH 32/65] Implement SPE Instructions: { evcmpeq, evcmpgts, evcmpgtu, evcmplts, evcmpltu }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  136 ++++
+ memcheck/tests/ppc32/test_spe.c          | 1031 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    3 +
+ memcheck/tests/ppc32/test_spe.stderr.exp |   24 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   21 +
+ regtest-power7-64.log                    |   28 +-
+ 6 files changed, 1217 insertions(+), 26 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 90c7862..7b1dce4 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -364,6 +364,10 @@ static inline UChar evxOpcode( UInt instr ) {
+    return ifieldOPC( instr );
+ }
+ 
++static inline UChar evxBF( UInt instr ) {
++   return toUChar( IFIELD( instr, 23, 3 ) );
++}
++
+ static inline UChar evxRS( UInt instr ) {
+    return toUChar( IFIELD( instr, 21, 5 ) );
+ }
+@@ -12852,6 +12856,130 @@ static Bool dis_spe_shift_rotate ( UInt theInstr )
+    return True;
+ }
+ 
++static Bool dis_spe_compare ( UInt theInstr )
++{
++   /* EVX-Form */
++   UChar opc1      = evxOpcode( theInstr );
++   UInt  opc2      = evxXO( theInstr );
++   UChar CR_field  = evxBF( theInstr );
++   UChar rA_addr   = evxRA( theInstr );
++   UChar rB_addr   = evxRB( theInstr );
++   UChar uimm      = evxRB( theInstr );
++   Char  simm      = evxRA( theInstr );
++
++   IRTemp rA = newTemp( Ity_I64 );
++   IRTemp rB = newTemp( Ity_I64 );
++
++   IRTemp rAU  = newTemp( Ity_I32 );
++   IRTemp rAL  = newTemp( Ity_I32 );
++   IRTemp rBU  = newTemp( Ity_I32 );
++   IRTemp rBL  = newTemp( Ity_I32 );
++
++  IRTemp ch = newTemp( Ity_I1 );
++  IRTemp cl = newTemp( Ity_I1 );
++
++   if (opc1 != 0x4) {
++      vex_printf( "dis_spe_compare(ppc)(opc1 != 0x4)\n" );
++      return False;
++   }
++   switch (opc2) {
++   case 0x230:
++      // evcmpgtu (Vector Compare Greater Than Unsigned, SPEPEM p5-79)
++      DIP( "evcmpgtu CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );
++      break;
++   case 0x231:
++      // evcmpgts (Vector Compare Greater Than Signed, SPEPEM p5-78)
++      DIP( "evcmpgts CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );
++      break;
++   case 0x232:
++      // evcmpltu (Vector Compare Less Than Unsigned, SPEPEM p5-81)
++      DIP( "evcmpltu CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );
++      break;
++   case 0x233:
++      // evcmplts (Vector Compare Less Than Signed, SPEPEM p5-80)
++      DIP( "evcmplts CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );
++      break;
++   case 0x234:
++      // evcmpeq (Vector Compare Equal, SPEPEM p5-77)
++      DIP( "evcmpeq CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );
++      break;
++   default:
++      return False;
++   }
++
++   assign ( rA, getSPEReg( rA_addr ) );
++   assign ( rB, getSPEReg( rB_addr ) );
++
++   assign ( rAL, unop( Iop_64to32,
++                       mkexpr ( rA ) ) );
++   assign ( rAU, unop( Iop_64HIto32,
++                       mkexpr ( rA ) ) );
++   assign ( rBL, unop( Iop_64to32,
++                       mkexpr ( rB ) ) );
++   assign ( rBU, unop( Iop_64HIto32,
++                       mkexpr ( rB ) ) );
++
++   switch (opc2) {
++   case 0x230: // evcmpgtu
++      assign( ch, binop( Iop_CmpLT32U,
++                         mkexpr ( rBU ),
++                         mkexpr ( rAU ) ) );
++      assign( cl, binop( Iop_CmpLT32U,
++                         mkexpr ( rBL ),
++                         mkexpr ( rAL ) ) );
++      break;
++   case 0x231: // evcmpgts
++      assign( ch, binop( Iop_CmpLT32S,
++                         mkexpr ( rBU ),
++                         mkexpr ( rAU ) ) );
++      assign( cl, binop( Iop_CmpLT32S,
++                         mkexpr ( rBL ),
++                         mkexpr ( rAL ) ) );
++      break;
++   case 0x232: // evcmpltu
++      assign( ch, binop( Iop_CmpLT32U,
++                         mkexpr ( rAU ),
++                         mkexpr ( rBU ) ) );
++      assign( cl, binop( Iop_CmpLT32U,
++                         mkexpr ( rAL ),
++                         mkexpr ( rBL ) ) );
++      break;
++   case 0x233: // evcmplts
++      assign( ch, binop( Iop_CmpLT32S,
++                         mkexpr ( rAU ),
++                         mkexpr ( rBU ) ) );
++      assign( cl, binop( Iop_CmpLT32S,
++                         mkexpr ( rAL ),
++                         mkexpr ( rBL ) ) );
++      break;
++   case 0x234: // evcmpeq
++      assign( ch, binop( Iop_CmpEQ32,
++                         mkexpr ( rAU ),
++                         mkexpr ( rBU ) ) );
++      assign( cl, binop( Iop_CmpEQ32,
++                         mkexpr ( rAL ),
++                         mkexpr ( rBL ) ) );
++      break;
++   default:
++      return False;
++   }
++   putCRbit ( CR_field * 4 + 0, unop ( Iop_1Uto32,
++                                       mkexpr ( ch ) ) );
++   putCRbit ( CR_field * 4 + 1, unop ( Iop_1Uto32,
++                                       mkexpr ( cl ) ) );
++   putCRbit ( CR_field * 4 + 2, binop  ( Iop_Or32,
++                                         unop ( Iop_1Uto32,
++                                                mkexpr ( ch ) ),
++                                         unop ( Iop_1Uto32,
++                                                mkexpr ( cl ) ) ) );
++   putCRbit ( CR_field * 4 + 3, binop  ( Iop_And32,
++                                         unop ( Iop_1Uto32,
++                                                mkexpr ( ch ) ),
++                                         unop ( Iop_1Uto32,
++                                                mkexpr ( cl ) ) ) );
++   return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -18913,6 +19041,14 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_shift_rotate( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x230: // evcmpgtu
++      case 0x231: // evcmpgts
++      case 0x232: // evcmpltu
++      case 0x233: // evcmplts
++      case 0x234: // evcmpeq
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_compare( theInstr )) goto decode_success;
++         goto decode_failure;
+       default:
+          vex_printf("disInstr_PPC_WRK (ppc): unhandled SPE instruction: "
+                     "0x%x\n", theInstr);
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index c897981..6293e10 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -6390,6 +6390,1001 @@ int __ev_rndw_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_rndw_intrinsic, "__ev_rndw");
+ 
++int evcmpeq_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register uint32_t     CR   asm ("28");
++  int i, j, ch, cl, field, crD;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rA2u32); j++) {
++
++      regA = rA2u32[i];
++      regB = rA2u32[j];
++
++#define EVCMPEQ(CR_field)                                                                     \
++      field = CR_field;                                                                       \
++      asm volatile ("evcmpeq " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB));  \
++      asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                           \
++      ch = (regA[0] == regB[0]);                                                              \
++      cl = (regA[1] == regB[1]);                                                              \
++      crD = ((ch << 3) | (cl << 2) | ((ch | cl) << 1) | ((ch & cl) << 0));                    \
++      VERIFY(EXTRACT_CR_FIELD(CR, field) == crD);
++
++      /* CR0 */ EVCMPEQ(0);
++      /* CR1 */ EVCMPEQ(1);
++      /* CR5 */ EVCMPEQ(5);
++      /* CR6 */ EVCMPEQ(6);
++      /* CR7 */ EVCMPEQ(7);
++    }
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcmpeq_asm, "evcmpeq");
++
++#if 0
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32# make test_spe
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVGPV_ppc32_linux_vanilla=1   -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++test_spe.c: In function '__ev_all_eq_intrinsic':
++test_spe.c:6467:1: error: unrecognizable insn:
++(insn 54 53 55 5 (set (reg:SI 129 [ D.10955 ])
++        (unspec:SI [
++                (reg:CC 163)
++            ] 9)) test_spe.c:6460 -1
++     (nil))
++test_spe.c:6467:1: internal compiler error: in extract_insn, at recog.c:2109
++Please submit a full bug report,
++with preprocessed source if appropriate.
++See <http://gcc.gnu.org/bugs.html> for instructions.
++make: *** [test_spe.o] Error 1
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32#
++#endif
++#if 0
++int __ev_all_eq_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_all_eq (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) &&
++                   (__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ? true : false));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_all_eq_intrinsic, "__ev_all_eq");
++#endif
++
++int __ev_any_eq_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_any_eq (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) ||
++                   (__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[j+1]);
++      d = __ev_any_eq (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_any_eq (va, vb);
++      VERIFY(d == true);
++
++      // both halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      d = __ev_any_eq (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_any_eq_intrinsic, "__ev_any_eq");
++
++int __ev_lower_eq_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_lower_eq (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[j+1]);
++      d = __ev_lower_eq (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ? true : false));
++
++      // lower halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_lower_eq (va, vb);
++      VERIFY(d == true);
++
++      // both halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      d = __ev_lower_eq (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lower_eq_intrinsic, "__ev_lower_eq");
++
++int __ev_upper_eq_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_upper_eq (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) ? true : false));
++
++      // upper halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[j+1]);
++      d = __ev_upper_eq (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_upper_eq (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) ? true : false));
++
++      // both halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      d = __ev_upper_eq (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_upper_eq_intrinsic, "__ev_upper_eq");
++
++int evcmpgts_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register uint32_t     CR   asm ("28");
++  int i, j, ch, cl, field, crD;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rA2s32); j++) {
++
++      regA = rA2s32[i];
++      regB = rA2s32[j];
++
++#define EVCMPGTS(CR_field)                                                                    \
++      field = CR_field;                                                                       \
++      asm volatile ("evcmpgts " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB)); \
++      asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                           \
++      ch = (regA[0] > regB[0]);                                                               \
++      cl = (regA[1] > regB[1]);                                                               \
++      crD = ((ch << 3) | (cl << 2) | ((ch | cl) << 1) | ((ch & cl) << 0));                    \
++      VERIFY(EXTRACT_CR_FIELD(CR, field) == crD);
++
++      /* CR0 */ EVCMPGTS(0);
++      /* CR1 */ EVCMPGTS(1);
++      /* CR5 */ EVCMPGTS(5);
++      /* CR6 */ EVCMPGTS(6);
++      /* CR7 */ EVCMPGTS(7);
++    }
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcmpgts_asm, "evcmpgts");
++
++#if 0
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32# make test_spe
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVGPV_ppc32_linux_vanilla=1   -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++test_spe.c: In function '__ev_all_gts_intrinsic':
++test_spe.c:6666:1: error: unrecognizable insn:
++(insn 58 57 59 5 (set (reg:SI 133 [ D.10970 ])
++        (unspec:SI [
++                (reg:CC 167)
++            ] 9)) test_spe.c:6659 -1
++     (nil))
++test_spe.c:6666:1: internal compiler error: in extract_insn, at recog.c:2109
++Please submit a full bug report,
++with preprocessed source if appropriate.
++See <http://gcc.gnu.org/bugs.html> for instructions.
++make: *** [test_spe.o] Error 1
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32#
++#endif
++#if 0
++int __ev_all_gts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_all_gts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) &&
++                   (__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ? true : false));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_all_gts_intrinsic, "__ev_all_gts");
++#endif
++
++int __ev_any_gts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_any_gts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) ||
++                   (__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_any_gts (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always greater
++      va = __ev_create_s32 (rA1s32[i+0],  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0], -abs (rA1s32[i+1]));
++      d = __ev_any_gts (va, vb);
++      VERIFY(d == true);
++
++      // both halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      d = __ev_any_gts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_any_gts_intrinsic, "__ev_any_gts");
++
++int __ev_lower_gts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_lower_gts (va, vb);
++      VERIFY(d == ((__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_lower_gts (va, vb);
++      VERIFY(d == ((__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ? true : false));
++
++      // lower halves always greater
++      va = __ev_create_s32 (rA1s32[i+0],  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0], -abs (rA1s32[i+1]));
++      d = __ev_lower_gts (va, vb);
++      VERIFY(d == true);
++
++      // both halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      d = __ev_lower_gts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lower_gts_intrinsic, "__ev_lower_gts");
++
++int __ev_upper_gts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_upper_gts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_upper_gts (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always greater
++      va = __ev_create_s32 (rA1s32[i+0],  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0], -abs (rA1s32[i+1]));
++      d = __ev_upper_gts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) ? true : false));
++
++      // both halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      d = __ev_upper_gts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_upper_gts_intrinsic, "__ev_upper_gts");
++
++int evcmpgtu_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register uint32_t     CR   asm ("28");
++  int i, j, ch, cl, field, crD;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rA2u32); j++) {
++
++      regA = rA2u32[i];
++      regB = rA2u32[j];
++
++#define EVCMPGTU(CR_field)                                                                    \
++      field = CR_field;                                                                       \
++      asm volatile ("evcmpgtu " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB)); \
++      asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                           \
++      ch = (regA[0] > regB[0]);                                                               \
++      cl = (regA[1] > regB[1]);                                                               \
++      crD = ((ch << 3) | (cl << 2) | ((ch | cl) << 1) | ((ch & cl) << 0));                    \
++      VERIFY(EXTRACT_CR_FIELD(CR, field) == crD);
++
++      /* CR0 */ EVCMPGTU(0);
++      /* CR1 */ EVCMPGTU(1);
++      /* CR5 */ EVCMPGTU(5);
++      /* CR6 */ EVCMPGTU(6);
++      /* CR7 */ EVCMPGTU(7);
++    }
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcmpgtu_asm, "evcmpgtu");
++
++#if 0
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32# make test_spe
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVGPV_ppc32_linux_vanilla=1   -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++test_spe.c: In function '__ev_all_gtu_intrinsic':
++test_spe.c:6865:1: error: unrecognizable insn:
++(insn 54 53 55 5 (set (reg:SI 129 [ D.10969 ])
++        (unspec:SI [
++                (reg:CC 163)
++            ] 9)) test_spe.c:6858 -1
++     (nil))
++test_spe.c:6865:1: internal compiler error: in extract_insn, at recog.c:2109
++Please submit a full bug report,
++with preprocessed source if appropriate.
++See <http://gcc.gnu.org/bugs.html> for instructions.
++make: *** [test_spe.o] Error 1
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32#
++#endif
++#if 0
++int __ev_all_gtu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_all_gtu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) &&
++                   (__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ? true : false));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_all_gtu_intrinsic, "__ev_all_gtu");
++#endif
++
++int __ev_any_gtu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_any_gtu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) ||
++                   (__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[j+1]);
++      d = __ev_any_gtu (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always greater
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]/2);
++      d = __ev_any_gtu (va, vb);
++      VERIFY(d == true);
++
++      // both halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      d = __ev_any_gtu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_any_gtu_intrinsic, "__ev_any_gtu");
++
++int __ev_lower_gtu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_lower_gtu (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[j+1]);
++      d = __ev_lower_gtu (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ? true : false));
++
++      // lower halves always greater
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]/2);
++      d = __ev_lower_gtu (va, vb);
++      VERIFY(d == true);
++
++      // both halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      d = __ev_lower_gtu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lower_gtu_intrinsic, "__ev_lower_gtu");
++
++int __ev_upper_gtu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_upper_gtu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) ? true : false));
++
++      // upper halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[j+1]);
++      d = __ev_upper_gtu (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always greater
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]/2);
++      d = __ev_upper_gtu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) ? true : false));
++
++      // both halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      d = __ev_upper_gtu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_upper_gtu_intrinsic, "__ev_upper_gtu");
++
++int evcmplts_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register uint32_t     CR   asm ("28");
++  int i, j, ch, cl, field, crD;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rA2s32); j++) {
++
++      regA = rA2s32[i];
++      regB = rA2s32[j];
++
++#define EVCMPLTS(CR_field)                                                                    \
++      field = CR_field;                                                                       \
++      asm volatile ("evcmplts " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB)); \
++      asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                           \
++      ch = (regA[0] < regB[0]);                                                               \
++      cl = (regA[1] < regB[1]);                                                               \
++      crD = ((ch << 3) | (cl << 2) | ((ch | cl) << 1) | ((ch & cl) << 0));                    \
++      VERIFY(EXTRACT_CR_FIELD(CR, field) == crD);
++
++      /* CR0 */ EVCMPLTS(0);
++      /* CR1 */ EVCMPLTS(1);
++      /* CR5 */ EVCMPLTS(5);
++      /* CR6 */ EVCMPLTS(6);
++      /* CR7 */ EVCMPLTS(7);
++    }
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcmplts_asm, "evcmplts");
++
++#if 0
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32# make test_spe
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVGPV_ppc32_linux_vanilla=1   -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++test_spe.c: In function '__ev_all_lts_intrinsic':
++test_spe.c:7064:1: error: unrecognizable insn:
++(insn 58 57 59 5 (set (reg:SI 133 [ D.11122 ])
++        (unspec:SI [
++                (reg:CC 167)
++            ] 9)) test_spe.c:7057 -1
++     (nil))
++test_spe.c:7064:1: internal compiler error: in extract_insn, at recog.c:2109
++Please submit a full bug report,
++with preprocessed source if appropriate.
++See <http://gcc.gnu.org/bugs.html> for instructions.
++make: *** [test_spe.o] Error 1
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32#
++#endif
++#if 0
++int __ev_all_lts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_all_lts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) &&
++                   (__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ? true : false));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_all_lts_intrinsic, "__ev_all_lts");
++#endif
++
++int __ev_any_lts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_any_lts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) ||
++                   (__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_any_lts (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always lesser
++      va = __ev_create_s32 (rA1s32[i+0], -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0],  abs (rA1s32[i+1]));
++      d = __ev_any_lts (va, vb);
++      VERIFY(d == true);
++
++      // both halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      d = __ev_any_lts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_any_lts_intrinsic, "__ev_any_lts");
++
++int __ev_lower_lts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_lower_lts (va, vb);
++      VERIFY(d == ((__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_lower_lts (va, vb);
++      VERIFY(d == ((__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ? true : false));
++
++      // lower halves always lesser
++      va = __ev_create_s32 (rA1s32[i+0], -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0],  abs (rA1s32[i+1]));
++      d = __ev_lower_lts (va, vb);
++      VERIFY(d == true);
++
++      // both halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      d = __ev_lower_lts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lower_lts_intrinsic, "__ev_lower_lts");
++
++int __ev_upper_lts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      d = __ev_upper_lts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[j+1]);
++      d = __ev_upper_lts (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always lesser
++      va = __ev_create_s32 (rA1s32[i+0], -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0],  abs (rA1s32[i+1]));
++      d = __ev_upper_lts (va, vb);
++      VERIFY(d == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) ? true : false));
++
++      // both halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      d = __ev_upper_lts (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_upper_lts_intrinsic, "__ev_upper_lts");
++
++int evcmpltu_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register uint32_t     CR   asm ("28");
++  int i, j, ch, cl, field, crD;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rA2u32); j++) {
++
++      regA = rA2u32[i];
++      regB = rA2u32[j];
++
++#define EVCMPLTU(CR_field)                                                                    \
++      field = CR_field;                                                                       \
++      asm volatile ("evcmpltu " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB)); \
++      asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                           \
++      ch = (regA[0] < regB[0]);                                                               \
++      cl = (regA[1] < regB[1]);                                                               \
++      crD = ((ch << 3) | (cl << 2) | ((ch | cl) << 1) | ((ch & cl) << 0));                    \
++      VERIFY(EXTRACT_CR_FIELD(CR, field) == crD);
++
++      /* CR0 */ EVCMPLTU(0);
++      /* CR1 */ EVCMPLTU(1);
++      /* CR5 */ EVCMPLTU(5);
++      /* CR6 */ EVCMPLTU(6);
++      /* CR7 */ EVCMPLTU(7);
++    }
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evcmpltu_asm, "evcmpltu");
++
++#if 0
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32# make test_spe
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc32=1 -DVGO_linux=1 -DVGP_ppc32_linux=1 -DVGPV_ppc32_linux_vanilla=1   -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++test_spe.c: In function '__ev_all_ltu_intrinsic':
++test_spe.c:7263:1: error: unrecognizable insn:
++(insn 54 53 55 5 (set (reg:SI 129 [ D.11123 ])
++        (unspec:SI [
++                (reg:CC 163)
++            ] 9)) test_spe.c:7256 -1
++     (nil))
++test_spe.c:7263:1: internal compiler error: in extract_insn, at recog.c:2109
++Please submit a full bug report,
++with preprocessed source if appropriate.
++See <http://gcc.gnu.org/bugs.html> for instructions.
++make: *** [test_spe.o] Error 1
++root at p1022ds:~/valgrind-3.8.1/memcheck/tests/ppc32#
++#endif
++#if 0
++int __ev_all_ltu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_all_ltu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) &&
++                   (__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ? true : false));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_all_ltu_intrinsic, "__ev_all_ltu");
++#endif
++
++int __ev_any_ltu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_any_ltu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) ||
++                   (__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[j+1]);
++      d = __ev_any_ltu (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_any_ltu (va, vb);
++      VERIFY(d == true);
++
++      // both halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
++      d = __ev_any_ltu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_any_ltu_intrinsic, "__ev_any_ltu");
++
++int __ev_lower_ltu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_lower_ltu (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[j+1]);
++      d = __ev_lower_ltu (va, vb);
++      VERIFY(d == ((__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ? true : false));
++
++      // lower halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_lower_ltu (va, vb);
++      VERIFY(d == true);
++
++      // both halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      d = __ev_lower_ltu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_lower_ltu_intrinsic, "__ev_lower_ltu");
++
++int __ev_upper_ltu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb;
++  int i, j;
++  bool d;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      d = __ev_upper_ltu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) ? true : false));
++
++      // upper halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[j+1]);
++      d = __ev_upper_ltu (va, vb);
++      VERIFY(d == true);
++
++      // lower halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      d = __ev_upper_ltu (va, vb);
++      VERIFY(d == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) ? true : false));
++
++      // both halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      d = __ev_upper_ltu (va, vb);
++      VERIFY(d == true);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_upper_ltu_intrinsic, "__ev_upper_ltu");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -6531,6 +7526,20 @@ test_t spe_isa_shift_rotate_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_compare_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Compare Instructions Tests",
++  .table = {
++    F(evcmpeq_asm),
++    F(evcmpgts_asm),
++    F(evcmpgtu_asm),
++    F(evcmplts_asm),
++    F(evcmpltu_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -6540,6 +7549,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_bitwise_operators_test_table,
+     &spe_isa_merge_insns_test_table,
+     &spe_isa_shift_rotate_insns_test_table,
++    &spe_isa_compare_insns_test_table,
+     NULL
+   }
+ };
+@@ -6635,6 +7645,26 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_neg_intrinsic),
+     F(__ev_abs_intrinsic),
+     F(__ev_rndw_intrinsic),
++    // F(__ev_all_eq_intrinsic),
++    F(__ev_any_eq_intrinsic),
++    F(__ev_lower_eq_intrinsic),
++    F(__ev_upper_eq_intrinsic),
++    // F(__ev_all_gts_intrinsic),
++    F(__ev_any_gts_intrinsic),
++    F(__ev_lower_gts_intrinsic),
++    F(__ev_upper_gts_intrinsic),
++    // F(__ev_all_gtu_intrinsic),
++    F(__ev_any_gtu_intrinsic),
++    F(__ev_lower_gtu_intrinsic),
++    F(__ev_upper_gtu_intrinsic),
++    // F(__ev_all_lts_intrinsic),
++    F(__ev_any_lts_intrinsic),
++    F(__ev_lower_lts_intrinsic),
++    F(__ev_upper_lts_intrinsic),
++    // F(__ev_all_ltu_intrinsic),
++    F(__ev_any_ltu_intrinsic),
++    F(__ev_lower_ltu_intrinsic),
++    F(__ev_upper_ltu_intrinsic),
+     NULL
+   }
+ };
+@@ -6733,3 +7763,4 @@ int main(void)
+ // 21. Have a dynamic random number generator to be able to to test for literally zillions of values (instead of using
+ //     the pre-generated values from the data pools - since all the semantics are already coded and yuou do not depend
+ //     upon raw values (ensure that this is so).
++// 22. Add a switch --run-in-random-order ie. the tests will run in a random order.
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index f190761..be513d7 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4,6 +4,7 @@
+ #include <string.h>
+ #include <malloc.h>
+ #include <assert.h>
++#include <stdbool.h>
+ #ifdef __SPE__
+ #include <spe.h>
+ #endif
+@@ -5951,3 +5952,5 @@ const int32_t rA1s1_8[] = {
+   /* 255 */ 0x5f539088,
+ 
+ };
++
++#define EXTRACT_CR_FIELD(CR, field) ((((CR) & (0xf << (7 - (field)) * 4)) >> (7 - (field)) * 4))
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 50f9e98..1b92f28 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -2,18 +2,18 @@
+ Invalid write of size 4
+    at 0x........: vg_quick_start_guide_aux (test_spe.c:28)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:42)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6704)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:7734)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:42)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6704)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:7734)
+ 
+ 
+ HEAP SUMMARY:
+@@ -24,10 +24,10 @@ HEAP SUMMARY:
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:42)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: run (test_spe.h:48)
+-   by 0x........: main (test_spe.c:6704)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:7734)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index c6c4e1c..75bfa06 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -84,6 +84,12 @@ SPE Regression Tests: PASS
+ ....evsrwis: PASS
+ ....evsplatfi: PASS
+ ....evsplati: PASS
++...SPE ISA Compare Instructions Tests: PASS
++....evcmpeq: PASS
++....evcmpgts: PASS
++....evcmpgtu: PASS
++....evcmplts: PASS
++....evcmpltu: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+@@ -154,6 +160,21 @@ SPE Regression Tests: PASS
+ ....__ev_neg: PASS
+ ....__ev_abs: PASS
+ ....__ev_rndw: PASS
++....__ev_any_eq: PASS
++....__ev_lower_eq: PASS
++....__ev_upper_eq: PASS
++....__ev_any_gts: PASS
++....__ev_lower_gts: PASS
++....__ev_upper_gts: PASS
++....__ev_any_gtu: PASS
++....__ev_lower_gtu: PASS
++....__ev_upper_gtu: PASS
++....__ev_any_lts: PASS
++....__ev_lower_lts: PASS
++....__ev_upper_lts: PASS
++....__ev_any_ltu: PASS
++....__ev_lower_ltu: PASS
++....__ev_upper_ltu: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 0aa7018..4939299 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 70 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 74 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 74 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 74 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 74 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  5703 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 23594 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  6264 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 24152 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 11019 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 28835 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 15497 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:   900 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:   467 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18450 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  5940 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 23787 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0033-Power-ISA-V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch b/recipes-devtools/valgrind/files/0033-Power-ISA-V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch
new file mode 100644
index 0000000..3472f50
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0033-Power-ISA-V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch
@@ -0,0 +1,49 @@
+From 380db738bfbc41bc5df518daf7b76d6e37d20d98 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Feb 2013 08:43:15 -0800
+Subject: [PATCH 33/65] Power ISA V2.06B V2 Sec. 1.6.25 EVS-FORM extractors.
+
+---
+ VEX/priv/guest_ppc_toIR.c |   26 ++++++++++++++++++++++++++
+ 1 files changed, 26 insertions(+), 0 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 7b1dce4..2c9351f 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -388,6 +388,32 @@ static inline UInt evxXO ( UInt instr) {
+    return IFIELD( instr, 0, 11 );
+ }
+ 
++/* Power ISA V2.06B V2 Sec. 1.6.25 EVS-FORM extractors. */
++
++static inline UInt evsBFA( UInt instr) {
++   return IFIELD( instr, 0, 3 );
++}
++
++static inline UInt evsXO( UInt instr) {
++   return IFIELD( instr, 3, 8 );
++}
++
++static inline UChar evsRB( UInt instr ) {
++   return toUChar( IFIELD( instr, 11, 5 ) );
++}
++
++static inline UChar evsRA( UInt instr ) {
++   return toUChar( IFIELD( instr, 16, 5 ) );
++}
++
++static inline UChar evsRT( UInt instr ) {
++   return toUChar( IFIELD( instr, 21, 5 ) );
++}
++
++static inline UChar evsOpcode( UInt instr ) {
++   return ifieldOPC( instr );
++}
++
+ /*------------------------------------------------------------*/
+ /*--- Guest-state identifiers                              ---*/
+ /*------------------------------------------------------------*/
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0034-Implement-SPE-Instructions-evsel.patch b/recipes-devtools/valgrind/files/0034-Implement-SPE-Instructions-evsel.patch
new file mode 100644
index 0000000..fe3682a
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0034-Implement-SPE-Instructions-evsel.patch
@@ -0,0 +1,705 @@
+From 1c07db3719bba28d087f57f9bfc23bcefe28142f Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Feb 2013 18:56:27 -0800
+Subject: [PATCH 34/65] Implement SPE Instructions: { evsel }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |   88 ++++++++
+ memcheck/tests/ppc32/test_spe.c          |  336 +++++++++++++++++++++++++++++-
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    7 +
+ regtest-power7-64.log                    |   32 ++--
+ 5 files changed, 449 insertions(+), 20 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 2c9351f..09aa6f7 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -13006,6 +13006,83 @@ static Bool dis_spe_compare ( UInt theInstr )
+    return True;
+ }
+ 
++static Bool dis_spe_evsel ( UInt theInstr )
++{
++  /* EVS-Form */
++  UChar opc1     = evsOpcode( theInstr );
++  UInt  opc2     = evsXO( theInstr );
++  UChar CR_field = evsBFA( theInstr );
++  UChar rA_addr  = evsRA( theInstr );
++  UChar rB_addr  = evsRB( theInstr );
++  UChar rT_addr  = evsRT( theInstr );
++
++  IRTemp rA = newTemp( Ity_I64 );
++  IRTemp rB = newTemp( Ity_I64 );
++  IRTemp rT = newTemp( Ity_I64 );
++
++  IRTemp rAU  = newTemp( Ity_I32 );
++  IRTemp rAL  = newTemp( Ity_I32 );
++  IRTemp rBU  = newTemp( Ity_I32 );
++  IRTemp rBL  = newTemp( Ity_I32 );
++  IRTemp rTU  = newTemp( Ity_I32 );
++  IRTemp rTL  = newTemp( Ity_I32 );
++
++  IRTemp ch  = newTemp( Ity_I1 );
++  IRTemp cl  = newTemp( Ity_I1 );
++  IRTemp bch = newTemp( Ity_I8 );
++  IRTemp bcl = newTemp( Ity_I8 );
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_evsel(ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x4f:
++     // evsel (Vector Select, SPEPEM p5-219)
++     DIP( "evsel r%d, r%d, r%d, CR%d\n", rT_addr, rA_addr, rB_addr, CR_field );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( rA, getSPEReg( rA_addr ) );
++  assign ( rB, getSPEReg( rB_addr ) );
++
++  assign ( rAU, unop( Iop_64HIto32,
++                      mkexpr ( rA ) ) );
++  assign ( rAL, unop( Iop_64to32,
++                      mkexpr ( rA ) ) );
++  assign ( rBU, unop( Iop_64HIto32,
++                      mkexpr ( rB ) ) );
++  assign ( rBL, unop( Iop_64to32,
++                      mkexpr ( rB ) ) );
++
++  assign ( ch, unop ( Iop_32to1,
++                      getCRbit( CR_field * 4 + 0 ) ) );
++  assign ( cl, unop ( Iop_32to1,
++                      getCRbit( CR_field * 4 + 1 ) ) );
++
++  assign ( bch, unop ( Iop_1Uto8,
++                       mkexpr ( ch ) ) );
++  assign ( bcl, unop ( Iop_1Uto8,
++                       mkexpr ( cl ) ) );
++
++  assign ( rTU, IRExpr_Mux0X ( mkexpr ( bch ),
++                               mkexpr ( rBU ),
++                               mkexpr ( rAU ) ) );
++  assign ( rTL, IRExpr_Mux0X ( mkexpr ( bcl ),
++                               mkexpr ( rBL ),
++                               mkexpr ( rAL ) ) );
++
++  assign ( rT, binop( Iop_32HLto64,
++                      mkexpr ( rTU ),
++                      mkexpr ( rTL ) ) );
++
++  putSPEReg( rT_addr, mkexpr ( rT ) );
++
++  return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -19076,6 +19153,17 @@ DisResult disInstr_PPC_WRK (
+          if (dis_spe_compare( theInstr )) goto decode_success;
+          goto decode_failure;
+       default:
++         // Check for evsel before giving up.
++         opc2 = evsXO(theInstr);
++         switch (opc2) {
++         case 0x4f: // evsel
++            if (!allow_SPE) goto decode_noSPE;
++            if (dis_spe_evsel( theInstr )) goto decode_success;
++            goto decode_failure;
++         default:
++            // Just fall through...
++            break;
++         }
+          vex_printf("disInstr_PPC_WRK (ppc): unhandled SPE instruction: "
+                     "0x%x\n", theInstr);
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 6293e10..fc25f7f 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -7294,6 +7294,11 @@ int __ev_any_ltu_intrinsic(void)
+       VERIFY(d == true);
+ 
+       // both halves always lesser
++      // FIXME TODO:
++      // Change to:
++      // va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      // vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      // This works, only because of "_any_"! :)
+       va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]/2);
+       vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
+       d = __ev_any_ltu (va, vb);
+@@ -7385,6 +7390,318 @@ int __ev_upper_ltu_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_upper_ltu_intrinsic, "__ev_upper_ltu");
+ 
++int evsel_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  register uint32_t     CR   asm ("27");
++  int i, j, ch, cl, field;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++      for (ch = 0; ch < 2; ch++) {
++        for (cl = 0; cl < 2; cl++) {
++
++#define EVSEL(CR_field)                                                                                          \
++          field = CR_field;                                                                                      \
++          CR = 0x0;                                                                                              \
++          CR = CR | (ch << (((7 - (field)) * 4) + 3));                                                           \
++          CR = CR | (cl << (((7 - (field)) * 4) + 2));                                                           \
++          asm volatile ("mtcrf (0x1 << (7 - " #CR_field ")), %[r]" : : [r] "r" (CR));                            \
++          asm volatile ("evsel %[d], %[a], %[b]," #CR_field : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB)); \
++          VERIFY(regD[0] == ((ch == 1) ? regA[0] : regB[0]));                                                    \
++          VERIFY(regD[1] == ((cl == 1) ? regA[1] : regB[1]));
++
++          /* CR0 */ EVSEL(0);
++          /* CR1 */ EVSEL(1);
++          /* CR5 */ EVSEL(5);
++          /* CR6 */ EVSEL(6);
++          /* CR7 */ EVSEL(7);
++        }
++      }
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsel_asm, "evsel");
++
++int __ev_select_eq_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb, vc, vd, ve;
++  int i, j;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      vc = rA2u32[i];
++      vd = rB2u32[j];
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      ve = __ev_select_eq (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // upper halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[j+1]);
++      ve = __ev_select_eq (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) == __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // lower halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      ve = __ev_select_eq (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) == __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++
++      // both halves always equal
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      ve = __ev_select_eq (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_select_eq_intrinsic, "__ev_select_eq");
++
++int __ev_select_gts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb, vc, vd, ve;
++  int i, j;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      vc = rA2u32[i];
++      vd = rB2u32[j];
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      ve = __ev_select_gts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // upper halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[j+1]);
++      ve = __ev_select_gts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_s32 (va) > __ev_get_lower_s32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // lower halves always greater
++      va = __ev_create_s32 (rA1s32[i+0],  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0], -abs (rA1s32[i+1]));
++      ve = __ev_select_gts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_s32 (va) > __ev_get_upper_s32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++
++      // both halves always greater
++      va = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      ve = __ev_select_gts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_select_gts_intrinsic, "__ev_select_gts");
++
++int __ev_select_gtu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb, vc, vd, ve;
++  int i, j;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      vc = rA2u32[i];
++      vd = rB2u32[j];
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      ve = __ev_select_gtu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // upper halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[j+1]);
++      ve = __ev_select_gtu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) > __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // lower halves always greater
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]/2);
++      ve = __ev_select_gtu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) > __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++
++      // both halves always greater
++      va = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      ve = __ev_select_gtu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_select_gtu_intrinsic, "__ev_select_gtu");
++
++int __ev_select_lts_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb, vc, vd, ve;
++  int i, j;
++
++  for (i = 0; i < NELTS(rA1s32); i += 2) {
++    for (j = 0; j < NELTS(rA1s32); j += 2) {
++
++      vc = rA2u32[i];
++      vd = rB2u32[j];
++
++      va = __ev_create_s32 (rA1s32[i+0], rA1s32[i+1]);
++      vb = __ev_create_s32 (rA1s32[j+0], rA1s32[j+1]);
++      ve = __ev_select_lts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // upper halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), rA1s32[i+1]);
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]), rA1s32[j+1]);
++      ve = __ev_select_lts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_s32 (va) < __ev_get_lower_s32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // lower halves always lesser
++      va = __ev_create_s32 (rA1s32[i+0], -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 (rA1s32[j+0],  abs (rA1s32[i+1]));
++      ve = __ev_select_lts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_s32 (va) < __ev_get_upper_s32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++
++      // both halves always lesser
++      va = __ev_create_s32 (-abs (rA1s32[i+0]), -abs (rA1s32[i+1]));
++      vb = __ev_create_s32 ( abs (rA1s32[i+0]),  abs (rA1s32[i+1]));
++      ve = __ev_select_lts (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_select_lts_intrinsic, "__ev_select_lts");
++
++int __ev_select_ltu_intrinsic(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  __ev64_opaque__ va, vb, vc, vd, ve;
++  int i, j;
++
++  for (i = 0; i < NELTS(rA1u32); i += 2) {
++    for (j = 0; j < NELTS(rA1u32); j += 2) {
++
++      vc = rA2u32[i];
++      vd = rB2u32[j];
++
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[j+1]);
++      ve = __ev_select_ltu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // upper halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[j+1]);
++      ve = __ev_select_ltu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == ((__ev_get_lower_u32 (va) < __ev_get_lower_u32 (vb)) ?
++                                          __ev_get_lower_u32 (vc) :
++                                          __ev_get_lower_u32 (vd)));
++
++      // lower halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0], rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[j+0], rA1u32[i+1]);
++      ve = __ev_select_ltu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == ((__ev_get_upper_u32 (va) < __ev_get_upper_u32 (vb)) ?
++                                          __ev_get_upper_u32 (vc) :
++                                          __ev_get_upper_u32 (vd)));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++
++      // both halves always lesser
++      va = __ev_create_u32 (rA1u32[i+0]/2, rA1u32[i+1]/2);
++      vb = __ev_create_u32 (rA1u32[i+0],   rA1u32[i+1]);
++      ve = __ev_select_ltu (va, vb, vc, vd);
++      VERIFY(__ev_get_upper_u32 (ve) == __ev_get_upper_u32 (vc));
++      VERIFY(__ev_get_lower_u32 (ve) == __ev_get_lower_u32 (vc));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(__ev_select_ltu_intrinsic, "__ev_select_ltu");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -7540,6 +7857,16 @@ test_t spe_isa_compare_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_select_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Select Instructions Tests",
++  .table = {
++    F(evsel_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -7550,6 +7877,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_merge_insns_test_table,
+     &spe_isa_shift_rotate_insns_test_table,
+     &spe_isa_compare_insns_test_table,
++    &spe_isa_select_insns_test_table,
+     NULL
+   }
+ };
+@@ -7665,6 +7993,11 @@ test_t chapter3_spe2pim_intrinsics_tests_table = {
+     F(__ev_any_ltu_intrinsic),
+     F(__ev_lower_ltu_intrinsic),
+     F(__ev_upper_ltu_intrinsic),
++    F(__ev_select_eq_intrinsic),
++    F(__ev_select_gts_intrinsic),
++    F(__ev_select_gtu_intrinsic),
++    F(__ev_select_lts_intrinsic),
++    F(__ev_select_ltu_intrinsic),
+     NULL
+   }
+ };
+@@ -7763,4 +8096,5 @@ int main(void)
+ // 21. Have a dynamic random number generator to be able to to test for literally zillions of values (instead of using
+ //     the pre-generated values from the data pools - since all the semantics are already coded and yuou do not depend
+ //     upon raw values (ensure that this is so).
+-// 22. Add a switch --run-in-random-order ie. the tests will run in a random order.
++// 22. Add a switch --run-in-random-order i.e. the tests will run in a random order.
++// 23. Add a switch --number-of-runs <number> to repeat the tests without exiting.
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 1b92f28..7fb9005 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:7734)
++   by 0x........: main (test_spe.c:8067)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:7734)
++   by 0x........: main (test_spe.c:8067)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:7734)
++   by 0x........: main (test_spe.c:8067)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 75bfa06..d59b808 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -90,6 +90,8 @@ SPE Regression Tests: PASS
+ ....evcmpgtu: PASS
+ ....evcmplts: PASS
+ ....evcmpltu: PASS
++...SPE ISA Select Instructions Tests: PASS
++....evsel: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+@@ -175,6 +177,11 @@ SPE Regression Tests: PASS
+ ....__ev_any_ltu: PASS
+ ....__ev_lower_ltu: PASS
+ ....__ev_upper_ltu: PASS
++....__ev_select_eq: PASS
++....__ev_select_gts: PASS
++....__ev_select_gtu: PASS
++....__ev_select_lts: PASS
++....__ev_select_ltu: PASS
+ ..SPE ISA Miscellaneous Tests: PASS
+ ...Memory transfer using evldd-evstdd: PASS
+ ...Value pool demo: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 4939299..b0aeaf6 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 69 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 75 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 23594 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 22362 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 24152 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 22920 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 28835 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 27603 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:   900 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 32071 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 18450 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 17216 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 23787 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 22552 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0035-Provide-for-being-able-to-iterate-the-regression-tes.patch b/recipes-devtools/valgrind/files/0035-Provide-for-being-able-to-iterate-the-regression-tes.patch
new file mode 100644
index 0000000..bdf502a
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0035-Provide-for-being-able-to-iterate-the-regression-tes.patch
@@ -0,0 +1,139 @@
+From f5b24f5779ede4b5a81bfc9b5e789b8013f77a73 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 1 Mar 2013 08:08:42 -0800
+Subject: [PATCH 35/65] Provide for being able to iterate the regression tests without exiting the invocation.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |    7 ++++++-
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +++---
+ regtest-power7-64.log                    |   16 ++++++++--------
+ 3 files changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index fc25f7f..e9838b4 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -8064,7 +8064,12 @@ test_t spe_test_table = {
+ int main(void)
+ {
+   int failures;
+-  failures = run (&spe_test_table);
++  int i;
++  const int iteration_count = 1;
++
++  for (i = 0; i < iteration_count; i++)
++    failures = run (&spe_test_table);
++
+   report (&spe_test_table);
+   return failures;
+ }
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 7fb9005..2c37168 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8067)
++   by 0x........: main (test_spe.c:8071)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8067)
++   by 0x........: main (test_spe.c:8071)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8067)
++   by 0x........: main (test_spe.c:8071)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index b0aeaf6..9a26cf3 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 69 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 22362 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 18799 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 22920 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 19357 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 27603 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 24038 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 32071 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 28508 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 17216 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 13653 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 22552 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18991 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0036-Implement-SPE-Instructions-evmra-evaddsmiaaw-evaddum.patch b/recipes-devtools/valgrind/files/0036-Implement-SPE-Instructions-evmra-evaddsmiaaw-evaddum.patch
new file mode 100644
index 0000000..56c7b70
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0036-Implement-SPE-Instructions-evmra-evaddsmiaaw-evaddum.patch
@@ -0,0 +1,564 @@
+From 65b6e215093003951c79ac62b653b9d2bcb168cd Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 4 Mar 2013 11:45:32 -0800
+Subject: [PATCH 36/65] Implement SPE Instructions: { evmra, evaddsmiaaw, evaddumiaaw, evsubfsmiaaw, evsubfumiaaw }.
+ Declare the Accumulator Register (ACC) to the PPC32 guest state.
+
+---
+ VEX/priv/guest_ppc_helpers.c             |    4 +
+ VEX/priv/guest_ppc_toIR.c                |  166 ++++++++++++++++++++++++++++++
+ VEX/pub/libvex_guest_ppc32.h             |    3 +
+ memcheck/tests/ppc32/test_spe.c          |  122 ++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    6 +
+ regtest-power7-64.log                    |   28 +++---
+ 7 files changed, 318 insertions(+), 17 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 4f457e0..48f8475 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -543,6 +543,10 @@ void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state )
+    vex_state->guest_SPRG3_RO = 0;
+ 
+    vex_state->padding = 0;
++
++   vex_state->guest_ACC = 0;
++   for (i = 0; i < 24; i++)
++     vex_state->aux_pad[i] = 0;
+ }
+ 
+ 
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 09aa6f7..08fd8ec 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -1416,6 +1416,19 @@ static void putSPEReg ( UInt archreg, IRExpr* e )
+    stmt( IRStmt_Put( speGuestRegOffset(archreg), e) );
+ }
+ 
++/* Get contents of the SPE 64-bit ACC register */
++static IRExpr* getSPE_ACCReg ( void )
++{
++   return IRExpr_Get( offsetof(VexGuestPPC32State, guest_ACC), Ity_I64 );
++}
++
++/* Ditto, but write to the SPE 64-bit ACC instead. */
++static void putSPE_ACCReg ( IRExpr* e )
++{
++   vassert(typeOfIRExpr(irsb->tyenv, e) == Ity_I64 );
++   stmt( IRStmt_Put( offsetof(VexGuestPPC32State, guest_ACC), e) );
++}
++
+ static Int guestCR321offset ( UInt cr )
+ {
+    switch (cr) {
+@@ -13083,6 +13096,148 @@ static Bool dis_spe_evsel ( UInt theInstr )
+   return True;
+ }
+ 
++static Bool dis_spe_initialize_ACC ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++
++  IRTemp ACC = newTemp( Ity_I64 );
++  IRTemp rA  = newTemp( Ity_I64 );
++  IRTemp rD  = newTemp( Ity_I64 );
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_initialize_ACC (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x4c4:
++     // evmra (Initialize Accumulator, SPEPEM p5-183)
++     DIP( "evmra r%d, r%d\n", rD_addr, rA_addr );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( rA,  getSPEReg( rA_addr ) );
++
++  switch (opc2) {
++  case 0x4c4: // evmra
++     assign ( ACC, mkexpr ( rA ) );
++     assign ( rD,  mkexpr ( rA ) );
++     break;
++  default:
++     return False;
++  }
++
++  putSPEReg ( rD_addr, mkexpr ( rD ) );
++  putSPE_ACCReg ( mkexpr ( ACC ) );
++
++  return True;
++}
++
++static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRB( theInstr );
++  Char  simm    = evxRA( theInstr );
++
++  IRTemp ACC  = newTemp( Ity_I64 );
++  IRTemp rA   = newTemp( Ity_I64 );
++  IRTemp rB   = newTemp( Ity_I64 );
++
++  IRTemp ACCU  = newTemp( Ity_I32 );
++  IRTemp ACCL  = newTemp( Ity_I32 );
++  IRTemp rAU   = newTemp( Ity_I32 );
++  IRTemp rAL   = newTemp( Ity_I32 );
++  IRTemp rBU   = newTemp( Ity_I32 );
++  IRTemp rBL   = newTemp( Ity_I32 );
++  IRTemp rDU   = newTemp( Ity_I32 );
++  IRTemp rDL   = newTemp( Ity_I32 );
++
++  IRTemp rD = newTemp( Ity_I64 );
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_ACC_based_add_insns (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x4c8:
++     // evaddumiaaw (Vector Add Unsigned, Modulo, Integer to Accumulator Word, SPEPEM p5-72)
++     DIP( "evaddumiaaw r%d, r%d\n", rD_addr, rA_addr );
++     break;
++  case 0x4c9:
++     // evaddsmiaaw (Vector Add Signed, Modulo, Integer to Accumulator Word, SPEPEM p5-70)
++     DIP( "evaddsmiaaw r%d, r%d\n", rD_addr, rA_addr );
++     break;
++  case 0x4ca:
++     // evsubfumiaaw (Vector Subtract Unsigned, Modulo, Integer to Accumulator Word, SPEPEM p5-244)
++     DIP( "evsubfumiaaw r%d, r%d\n", rD_addr, rA_addr );
++     break;
++  case 0x4cb:
++     // evsubfsmiaaw (Vector Subtract Signed, Modulo, Integer to Accumulator Word, SPEPEM p5-242)
++     DIP( "evsubfsmiaaw r%d, r%d\n", rD_addr, rA_addr );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( ACC, getSPE_ACCReg( ) );
++  assign ( rA,  getSPEReg( rA_addr ) );
++  assign ( rB,  getSPEReg( rB_addr ) );
++
++  assign ( ACCL, unop( Iop_64to32,
++                       mkexpr ( ACC ) ) );
++  assign ( ACCU, unop( Iop_64HIto32,
++                       mkexpr ( ACC ) ) );
++  assign ( rAL,  unop( Iop_64to32,
++                       mkexpr ( rA ) ) );
++  assign ( rAU,  unop( Iop_64HIto32,
++                       mkexpr ( rA ) ) );
++  assign ( rBL,  unop( Iop_64to32,
++                       mkexpr ( rB ) ) );
++  assign ( rBU,  unop( Iop_64HIto32,
++                       mkexpr ( rB ) ) );
++
++  switch (opc2) {
++  case 0x4c8: // evaddumiaaw
++  case 0x4c9: // evaddsmiaaw
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rAL ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rAU ) ) );
++     break;
++  case 0x4ca: // evsubfumiaaw
++  case 0x4cb: // evsubfsmiaaw
++     assign ( rDL, binop ( Iop_Sub32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rAL ) ) );
++     assign ( rDU, binop ( Iop_Sub32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rAU ) ) );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( rD, binop( Iop_32HLto64,
++                      mkexpr ( rDU ),
++                      mkexpr ( rDL ) ) );
++
++  putSPEReg ( rD_addr, mkexpr ( rD ) );
++  putSPE_ACCReg ( mkexpr ( rD ) );
++
++  return True;
++}
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -19152,6 +19307,17 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_compare( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x4c4: // evmra
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_initialize_ACC( theInstr )) goto decode_success;
++         goto decode_failure;
++      case 0x4c8: // evaddumiaaw
++      case 0x4c9: // evaddsmiaaw
++      case 0x4ca: // evsubfumiaaw
++      case 0x4cb: // evsubfsmiaaw
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_ACC_based_add_insns( theInstr )) goto decode_success;
++         goto decode_failure;
+       default:
+          // Check for evsel before giving up.
+          opc2 = evsXO(theInstr);
+diff --git a/VEX/pub/libvex_guest_ppc32.h b/VEX/pub/libvex_guest_ppc32.h
+index b31fc5e..90a03e6 100644
+--- a/VEX/pub/libvex_guest_ppc32.h
++++ b/VEX/pub/libvex_guest_ppc32.h
+@@ -273,6 +273,9 @@ typedef
+ 
+       /* Padding to make it have an 8-aligned size */
+       /* 1356 */ UInt  padding;
++      /* 1364 */ ULong guest_ACC;
++      /* aux_pad: padding to ensure we're 0 mod 32 */
++                 UChar aux_pad[24];
+ 
+    }
+    VexGuestPPC32State;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index e9838b4..8e69f48 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -7702,6 +7702,113 @@ int __ev_select_ltu_intrinsic(void)
+ }
+ TEST_SPE_DECL(__ev_select_ltu_intrinsic, "__ev_select_ltu");
+ 
++int evaddsmiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  int32_t i;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  regA = (__ev64_s32__) { +1, -1 };
++  for (i = 0; i < 64; i++) {
++    asm volatile ("evaddsmiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  }
++  VERIFY(regD[0] == +64 && regD[1] == -64);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evaddsmiaaw_asm, "evaddsmiaaw");
++
++int evmra_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  // Since we cannot read the ACC explicitly, we can only test our
++  // implementation of evmra implicitly, i.e. via another insn that uses the ACC.
++  // I suppose, by that logic, every insn that uses the ACC ought to be invoked
++  // here as well? Well, if evmra is hosed, all the ACC based insns are too, so
++  // we'll just keep this one test here:
++  VERIFY(evaddsmiaaw_asm() == 0);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmra_asm, "evmra");
++
++int evaddumiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int32_t i;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  regA = (__ev64_u32__) { 1, 2 };
++  for (i = 0; i < 64; i++) {
++    asm volatile ("evaddumiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  }
++  VERIFY(regD[0] == 64 && regD[1] == 128);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evaddumiaaw_asm, "evaddumiaaw");
++
++int evsubfsmiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regD asm ("29");
++  int32_t i;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  regA = (__ev64_s32__) { -1, +1 };
++  for (i = 0; i < 64; i++) {
++    asm volatile ("evsubfsmiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  }
++  VERIFY(regD[0] == +64 && regD[1] == -64);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsubfsmiaaw_asm, "evsubfsmiaaw");
++
++int evsubfumiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int32_t i;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 64, 128 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 64 && regD[1] == 128);
++
++  regA = (__ev64_u32__) { 1, 2 };
++  for (i = 0; i < 64; i++) {
++    asm volatile ("evsubfumiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  }
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsubfumiaaw_asm, "evsubfumiaaw");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -7867,6 +7974,20 @@ test_t spe_isa_select_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_ACC_based_add_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA ACC Based Add/Subtract Instructions Tests",
++  .table = {
++    F(evmra_asm),
++    F(evaddsmiaaw_asm),
++    F(evaddumiaaw_asm),
++    F(evsubfsmiaaw_asm),
++    F(evsubfumiaaw_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -7878,6 +7999,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_shift_rotate_insns_test_table,
+     &spe_isa_compare_insns_test_table,
+     &spe_isa_select_insns_test_table,
++    &spe_isa_ACC_based_add_insns_test_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 2c37168..802317d 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8071)
++   by 0x........: main (test_spe.c:8193)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8071)
++   by 0x........: main (test_spe.c:8193)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8071)
++   by 0x........: main (test_spe.c:8193)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index d59b808..2e969b1 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -92,6 +92,12 @@ SPE Regression Tests: PASS
+ ....evcmpltu: PASS
+ ...SPE ISA Select Instructions Tests: PASS
+ ....evsel: PASS
++...SPE ISA ACC Based Add/Subtract Instructions Tests: PASS
++....evmra: PASS
++....evaddsmiaaw: PASS
++....evaddumiaaw: PASS
++....evsubfsmiaaw: PASS
++....evsubfumiaaw: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 9a26cf3..6ed8521 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 69 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 75 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 75 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 18799 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 10331 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 19357 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 10889 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 24038 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 15584 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 28508 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 20058 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 13653 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  5208 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 18991 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 10540 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0037-Implement-SPE-Instructions-evaddiw-evaddw-evsubifw-e.patch b/recipes-devtools/valgrind/files/0037-Implement-SPE-Instructions-evaddiw-evaddw-evsubifw-e.patch
new file mode 100644
index 0000000..0b76575
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0037-Implement-SPE-Instructions-evaddiw-evaddw-evsubifw-e.patch
@@ -0,0 +1,450 @@
+From f775efc189a949f2d47add5af7f3124b8f84ac69 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 4 Mar 2013 17:42:04 -0800
+Subject: [PATCH 37/65] Implement SPE Instructions: { evaddiw, evaddw, evsubifw, evsubfw }.
+
+---
+ VEX/priv/guest_ppc_toIR.c                |  114 ++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  172 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    5 +
+ regtest-power7-64.log                    |   12 +-
+ 5 files changed, 300 insertions(+), 9 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 08fd8ec..2b0b082 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -13238,6 +13238,113 @@ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+ 
+   return True;
+ }
++
++static Bool dis_spe_add_insns ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRA( theInstr );
++  // Char  simm    = evxRA( theInstr );
++
++  IRTemp rA = newTemp( Ity_I64 );
++  IRTemp rB = newTemp( Ity_I64 );
++
++  IRTemp rAU  = newTemp( Ity_I32 );
++  IRTemp rAL  = newTemp( Ity_I32 );
++  IRTemp rBU  = newTemp( Ity_I32 );
++  IRTemp rBL  = newTemp( Ity_I32 );
++  IRTemp rDU  = newTemp( Ity_I32 );
++  IRTemp rDL  = newTemp( Ity_I32 );
++
++  IRTemp rD = newTemp( Ity_I64 );
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_add_insns(ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++
++  switch (opc2) {
++  case 0x200:
++     // evaddw (Vector Add Word, SPEPEM p5-74)
++     DIP( "evaddw r%d, r%d, %d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x202:
++     // evaddiw (Vector Add Immediate Word, SPEPEM p5-69)
++     DIP( "evaddiw r%d, r%d, %d\n", rD_addr, rB_addr, uimm );
++     break;
++  case 0x204:
++     // evsubfw (Vector Subtract from Word, SPEPEM p5-246)
++     DIP( "evsubfw r%d, r%d, %d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x206:
++     // evsubifw (Vector Subtract Immediate from Word, SPEPEM p5-247)
++     DIP( "evsubifw r%d, r%d, %d\n", rD_addr, rB_addr, uimm );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( rA, getSPEReg( rA_addr ) );
++  assign ( rB, getSPEReg( rB_addr ) );
++
++  assign ( rAL, unop( Iop_64to32,
++                      mkexpr ( rA ) ) );
++  assign ( rAU, unop( Iop_64HIto32,
++                      mkexpr ( rA ) ) );
++  assign ( rBL, unop( Iop_64to32,
++                      mkexpr ( rB ) ) );
++  assign ( rBU, unop( Iop_64HIto32,
++                      mkexpr ( rB ) ) );
++
++  switch (opc2) {
++  case 0x200: // evaddw
++     assign ( rDL, binop( Iop_Add32,
++                          mkexpr ( rAL ),
++                          mkexpr ( rBL ) ) );
++     assign ( rDU, binop( Iop_Add32,
++                          mkexpr ( rAU ),
++                          mkexpr ( rBU ) ) );
++     break;
++  case 0x202: // evaddiw
++     assign ( rDL, binop( Iop_Add32,
++                          mkexpr ( rBL ),
++                          mkU32  ( uimm ) ) );
++     assign ( rDU, binop( Iop_Add32,
++                          mkexpr ( rBU ),
++                          mkU32  ( uimm ) ) );
++     break;
++  case 0x204: // evsubfw
++     assign ( rDL, binop( Iop_Sub32,
++                          mkexpr ( rBL ),
++                          mkexpr ( rAL ) ) );
++     assign ( rDU, binop( Iop_Sub32,
++                          mkexpr ( rBU ),
++                          mkexpr ( rAU ) ) );
++     break;
++  case 0x206: // evsubifw
++     assign ( rDL, binop( Iop_Sub32,
++                          mkexpr ( rBL ),
++                          mkU32  ( uimm ) ) );
++     assign ( rDU, binop( Iop_Sub32,
++                          mkexpr ( rBU ),
++                          mkU32  ( uimm ) ) );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( rD, binop( Iop_32HLto64,
++                      mkexpr ( rDU ),
++                      mkexpr ( rDL ) ) );
++
++  putSPEReg( rD_addr, mkexpr ( rD ) );
++
++  return True;
++}
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -19268,6 +19375,13 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_store( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x200: // evaddw
++      case 0x202: // evaddiw
++      case 0x204: // evsubfw
++      case 0x206: // evsubifw
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_add_insns( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x208: // evabs
+       case 0x209: // evneg
+       case 0x20a: // evextsb
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 8e69f48..7a259d6 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -7809,6 +7809,164 @@ int evsubfumiaaw_asm(void)
+ }
+ TEST_SPE_DECL(evsubfumiaaw_asm, "evsubfumiaaw");
+ 
++int evaddiw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regB asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int32_t i;
++
++  for (i = 0; i < NELTS(rB2u32); i++) {
++
++    regB = rB2u32[i];
++
++#define EVADDIW(uimm)                                                               \
++    asm volatile ("evaddiw %[d], %[b], " #uimm : [d] "=r" (regD) : [b] "r" (regB)); \
++    VERIFY(regD[0] == regB[0] + uimm);                                              \
++    VERIFY(regD[1] == regB[1] + uimm);
++
++    EVADDIW(0);
++    EVADDIW(1);
++    EVADDIW(2);
++    EVADDIW(3);
++    EVADDIW(4);
++    EVADDIW(5);
++    EVADDIW(6);
++    EVADDIW(7);
++    EVADDIW(8);
++    EVADDIW(9);
++    EVADDIW(10);
++    EVADDIW(11);
++    EVADDIW(12);
++    EVADDIW(13);
++    EVADDIW(14);
++    EVADDIW(15);
++    EVADDIW(16);
++    EVADDIW(17);
++    EVADDIW(18);
++    EVADDIW(19);
++    EVADDIW(20);
++    EVADDIW(21);
++    EVADDIW(22);
++    EVADDIW(23);
++    EVADDIW(24);
++    EVADDIW(25);
++    EVADDIW(26);
++    EVADDIW(27);
++    EVADDIW(28);
++    EVADDIW(29);
++    EVADDIW(30);
++    EVADDIW(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evaddiw_asm, "evaddiw");
++
++int evaddw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
++    asm volatile ("evaddw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regA[0] + regB[0]);
++    VERIFY(regD[1] == regA[1] + regB[1]);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evaddw_asm, "evaddw");
++
++int evsubifw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regB asm ("30");
++  register __ev64_u32__ regD asm ("29");
++  int32_t i;
++
++  for (i = 0; i < NELTS(rB2u32); i++) {
++
++    regB = rB2u32[i];
++
++#define EVSUBIFW(uimm)                                                                  \
++    asm volatile ("evsubifw %[d], " #uimm ", %[b]" : [d] "=r" (regD) : [b] "r" (regB)); \
++    VERIFY(regD[0] == regB[0] - uimm);                                                  \
++    VERIFY(regD[1] == regB[1] - uimm);
++
++    EVSUBIFW(0);
++    EVSUBIFW(1);
++    EVSUBIFW(2);
++    EVSUBIFW(3);
++    EVSUBIFW(4);
++    EVSUBIFW(5);
++    EVSUBIFW(6);
++    EVSUBIFW(7);
++    EVSUBIFW(8);
++    EVSUBIFW(9);
++    EVSUBIFW(10);
++    EVSUBIFW(11);
++    EVSUBIFW(12);
++    EVSUBIFW(13);
++    EVSUBIFW(14);
++    EVSUBIFW(15);
++    EVSUBIFW(16);
++    EVSUBIFW(17);
++    EVSUBIFW(18);
++    EVSUBIFW(19);
++    EVSUBIFW(20);
++    EVSUBIFW(21);
++    EVSUBIFW(22);
++    EVSUBIFW(23);
++    EVSUBIFW(24);
++    EVSUBIFW(25);
++    EVSUBIFW(26);
++    EVSUBIFW(27);
++    EVSUBIFW(28);
++    EVSUBIFW(29);
++    EVSUBIFW(30);
++    EVSUBIFW(31);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsubifw_asm, "evsubifw");
++
++int evsubfw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    regB = rB2s32[i];
++
++    asm volatile ("evsubfw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == regB[0] - regA[0]);
++    VERIFY(regD[1] == regB[1] - regA[1]);
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evsubfw_asm, "evsubfw");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -7988,6 +8146,19 @@ test_t spe_isa_ACC_based_add_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_add_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Add/Subtract Instructions Tests",
++  .table = {
++    F(evaddiw_asm),
++    F(evaddw_asm),
++    F(evsubifw_asm),
++    F(evsubfw_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -8000,6 +8171,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_compare_insns_test_table,
+     &spe_isa_select_insns_test_table,
+     &spe_isa_ACC_based_add_insns_test_table,
++    &spe_isa_add_insns_test_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 802317d..ab92040 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8193)
++   by 0x........: main (test_spe.c:8365)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8193)
++   by 0x........: main (test_spe.c:8365)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8193)
++   by 0x........: main (test_spe.c:8365)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 2e969b1..a04fb12 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -98,6 +98,11 @@ SPE Regression Tests: PASS
+ ....evaddumiaaw: PASS
+ ....evsubfsmiaaw: PASS
+ ....evsubfumiaaw: PASS
++...SPE ISA Add/Subtract Instructions Tests: PASS
++....evaddiw: PASS
++....evaddw: PASS
++....evsubifw: PASS
++....evsubfw: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 6ed8521..fb51db2 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 10331 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7218 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 10889 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  7776 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 15584 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12471 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 20058 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 16939 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  5208 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2090 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 10540 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  7427 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0038-Implement-SPE-Instructions.patch b/recipes-devtools/valgrind/files/0038-Implement-SPE-Instructions.patch
new file mode 100644
index 0000000..02bb331
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0038-Implement-SPE-Instructions.patch
@@ -0,0 +1,2332 @@
+From 6fca2e7f8503107a9ded366ddf1fcc0569227ca8 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 8 Mar 2013 11:09:46 -0800
+Subject: [PATCH 38/65] Implement SPE Instructions: {
+
+ evmhesmi, evmhesmia, evmhesmiaaw, evmhesmianw,
+ evmheumi, evmheumia, evmheumiaaw, evmheumianw,
+ evmhosmi, evmhosmia, evmhosmiaaw, evmhosmianw,
+ evmhoumi, evmhoumia, evmhoumiaaw, evmhoumianw,
+ evmwlumi, evmwlumia, evmwlumiaaw, evmwlumianw,
+ evmwsmi,  evmwsmia,  evmwsmiaa,   evmwsmian,
+ evmwumi,  evmwumia,  evmwumiaa,   evmwumian,
+
+ evmwhsmi, evmwhsmia,
+ evmwhumi, evmwhumia,
+
+ evmwlsmiaaw, evmwlsmianw,
+
+}.
+---
+ VEX/priv/guest_ppc_toIR.c                |  850 ++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          | 1130 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   35 +
+ regtest-power7-64.log                    |   44 +-
+ 5 files changed, 2040 insertions(+), 25 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 2b0b082..d10e7a0 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -13345,6 +13345,819 @@ static Bool dis_spe_add_insns ( UInt theInstr )
+ 
+   return True;
+ }
++
++static IRExpr* spe_neg64 ( IRExpr* src )
++{
++  vassert(typeOfIRExpr(irsb->tyenv, src) == Ity_I64 );
++  return binop ( Iop_Add64,
++                 unop ( Iop_Not64,
++                        src ),
++                 mkU64 ( 0x1 ) );
++}
++
++static IRExpr* spe_exts_16_in_32 ( IRExpr* src )
++{
++  /* src is an IRExpr corresponding to a Ity_I32, but contains a half-word.
++   * If bit-24 is set, spe_exts_16_in_32() return's a sign-extended
++   * 32-bit number.
++   */
++  IRTemp w0 = newTemp( Ity_I32 );
++  IRTemp c0 = newTemp( Ity_I1 );
++  IRTemp b0 = newTemp( Ity_I8 );
++
++  assign( w0, binop( Iop_Shr32,
++                     src,
++                     mkU8( 0xf ) ) );
++
++  assign( c0, binop( Iop_CmpEQ32,
++                     mkexpr( w0 ),
++                     mkU32( 0x1 ) ) );
++
++  assign( b0, unop( Iop_1Uto8,
++                    mkexpr( c0 ) ) );
++
++  return IRExpr_Mux0X ( mkexpr( b0 ),
++                        src, /* else   (b1 holds False) */
++                        binop( Iop_Or32, /* if (b1 holds True)  */
++                               mkU32( 0xffff0000 ),
++                               src ) );
++}
++
++static IRExpr* spe_extz_16_in_32 ( IRExpr* src )
++{
++  /* src is an IRExpr corresponding to a Ity_I32; but contains a half-word.
++   * return a zero-extended 32-bit number.
++   */
++  return binop( Iop_And32,
++                mkU32( 0x0000ffff ),
++                src );
++}
++
++static Bool dis_spe_ACC_based_multiply_insns ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRB( theInstr );
++  Char  simm    = evxRA( theInstr );
++
++  IRTemp ACC   = newTemp( Ity_I64 );
++  IRTemp rA    = newTemp( Ity_I64 );
++  IRTemp rB    = newTemp( Ity_I64 );
++  IRTemp rT    = newTemp( Ity_I64 );
++  IRTemp rLIP  = newTemp( Ity_I64 );
++  IRTemp rUIP  = newTemp( Ity_I64 );
++
++  IRTemp ACCU  = newTemp( Ity_I32 );
++  IRTemp ACCL  = newTemp( Ity_I32 );
++  IRTemp rAU   = newTemp( Ity_I32 );
++  IRTemp rAL   = newTemp( Ity_I32 );
++  IRTemp rBU   = newTemp( Ity_I32 );
++  IRTemp rBL   = newTemp( Ity_I32 );
++  IRTemp rDU   = newTemp( Ity_I32 );
++  IRTemp rDL   = newTemp( Ity_I32 );
++  IRTemp rsu   = newTemp( Ity_I32 );
++  IRTemp rsl   = newTemp( Ity_I32 );
++  IRTemp rtu   = newTemp( Ity_I32 );
++  IRTemp rtl   = newTemp( Ity_I32 );
++  IRTemp rvu   = newTemp( Ity_I32 );
++  IRTemp rvl   = newTemp( Ity_I32 );
++  IRTemp rwu   = newTemp( Ity_I32 );
++  IRTemp rwl   = newTemp( Ity_I32 );
++
++  IRTemp hwa0   = newTemp( Ity_I16 );
++  IRTemp hwa1   = newTemp( Ity_I16 );
++  IRTemp hwa2   = newTemp( Ity_I16 );
++  IRTemp hwa3   = newTemp( Ity_I16 );
++  IRTemp hwb0   = newTemp( Ity_I16 );
++  IRTemp hwb1   = newTemp( Ity_I16 );
++  IRTemp hwb2   = newTemp( Ity_I16 );
++  IRTemp hwb3   = newTemp( Ity_I16 );
++
++  IRTemp rD = newTemp( Ity_I64 );
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_ACC_based_multiply_insns (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x408:
++     // evmheumi (Vector Multiply Half Words, Even, Unsigned, Modulo, Integer, SPEPEM p5-155)
++     DIP( "evmheumi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x409:
++     // evmhesmi (Vector Multiply Half Words, Even, Signed, Modulo, Integer, SPEPEM p5-147)
++     DIP( "evmhesmi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x40c:
++     // evmhoumi (Vector Multiply Half Words, Odd, Unsigned, Modulo, Integer, SPEPEM p5-178)
++     DIP( "evmhoumi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x40d:
++     // evmhosmi (Vector Multiply Half Words, Odd, Signed, Modulo, Integer, SPEPEM p5-169)
++     DIP( "evmhosmi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x428:
++     // evmheumia (Vector Multiply Half Words, Even, Unsigned, Modulo, Integer (to Accumulator), SPEPEM p5-155)
++     DIP( "evmheumia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x429:
++     // evmhesmia (Vector Multiply Half Words, Even, Signed, Modulo, Integer (to Accumulator), SPEPEM p5-148)
++     DIP( "evmhesmia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x42c:
++     // evmhoumia (Vector Multiply Half Words, Odd, Unsigned, Modulo, Integer (to Accumulator), SPEPEM p5-178)
++     DIP( "evmhoumia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x42d:
++     // evmhosmia (Vector Multiply Half Words, Odd, Signed, Modulo, Integer (to Accumulator), SPEPEM p5-169)
++     DIP( "evmhosmia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x448:
++     // evmwlumi (Vector Multiply Word Low Unsigned, Modulo, Integer, SPEPEM p5-194)
++     DIP( "evmwlumi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x44c:
++     // evmwhumi (Vector Multiply Word High Unsigned, Modulo, Integer, SPEPEM p5-188)
++     DIP( "evmwhumi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x44d:
++     // evmwhsmi (Vector Multiply Word High Signed, Modulo, Integer, SPEPEM p5-185)
++     DIP( "evmwhsmi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x458:
++     // evmwumi (Vector Multiply Word Unsigned, Modulo, Integer, SPEPEM p5-208)
++     DIP( "evmwumi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x468:
++     // evmwlumia (Vector Multiply Word Low Unsigned, Modulo, Integer to Accumulator, SPEPEM p5-194)
++     DIP( "evmwlumia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x46c:
++     // evmwhumia (Vector Multiply Word High Unsigned, Modulo, Integer to Accumulator, SPEPEM p5-188)
++     DIP( "evmwhumia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x46d:
++     // evmwhsmia (Vector Multiply Word High Unsigned, Modulo, Integer to Accumulator, SPEPEM p5-185)
++     DIP( "evmwhsmia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x478:
++     // evmwumia (Vector Multiply Word Unsigned, Modulo, Integer to Accumulator, SPEPEM p5-208)
++     DIP( "evmwumia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x459:
++     // evmwsmi (Vector Multiply Word Signed, Modulo, Integer, SPEPEM p5-202)
++     DIP( "evmwsmi r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x479:
++     // evmwsmia (Vector Multiply Word Signed, Modulo, Integer to Accumulator, SPEPEM p5-202)
++     DIP( "evmwsmia r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x508:
++     // evmheumiaaw (Vector Multiply Half Words, Even, Unsigned, Modulo, Integer and Accumulate into Words, SPEPEM p5-156)
++     DIP( "evmheumiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x509:
++     // evmhesmiaaw (Vector Multiply Half Words, Even, Signed, Modulo, Integer and Accumulate into Words, SPEPEM p5-148)
++     DIP( "evmhesmiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x50c:
++     // evmhoumiaaw (Vector Multiply Half Words, Odd, Unsigned, Modulo, Integer and Accumulate into Words, SPEPEM p5-179)
++     DIP( "evmhoumiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x50d:
++     // evmhosmiaaw (Vector Multiply Half Words, Odd, Signed, Modulo, Integer and Accumulate into Words, SPEPEM p5-170)
++     DIP( "evmhosmiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x548:
++     // evmwlumiaaw (Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate in Words, SPEPEM p5-195)
++     DIP( "evmwlumiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x549:
++     // evmwlsmiaaw (Vector Multiply Word Low Signed, Modulo, Integer and Accumulate in Words, SPEPEM p5-189)
++     DIP( "evmwlsmiaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x558:
++     // evmwumiaa (Vector Multiply Word Unsigned, Modulo, Integer and Accumulate, SPEPEM p5-209)
++     DIP( "evmwumiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x588:
++     // evmheumianw (Vector Multiply Half Words, Even, Unsigned, Modulo, Integer and Accumulate Negative into Words, SPEPEM p5-157)
++     DIP( "evmheumianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x589:
++     // evmhesmianw (Vector Multiply Half Words, Even, Signed, Modulo, Integer and Accumulate Negative into Words, SPEPEM p5-149)
++     DIP( "evmhesmianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x58c:
++     // evmhoumianw (Vector Multiply Half Words, Odd, Unsigned, Modulo, Integer and Accumulate Negative into Words, SPEPEM p5-180)
++     DIP( "evmhoumianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x58d:
++     // evmhosmianw (Vector Multiply Half Words, Odd, Signed, Modulo, Integer and Accumulate Negative into Words, SPEPEM p5-171)
++     DIP( "evmhosmianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x5c8:
++     // evmwlumianw (Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate Negative in Words, SPEPEM p5-196)
++     DIP( "evmwlumianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x5c9:
++     // evmwlsmianw (Vector Multiply Word Low Signed, Modulo, Integer and Accumulate Negative in Words, SPEPEM p5-190)
++     DIP( "evmwlsmianw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x5d8:
++     // evmwumian (Vector Multiply Word Unsigned, Modulo, Integer and Accumulate Negative, SPEPEM p5-210)
++     DIP( "evmwumian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x559:
++     // evmwsmiaa (Vector Multiply Word Signed, Modulo, Integer and Accumulate, SPEPEM p5-203)
++     DIP( "evmwsmiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  case 0x5d9:
++     // evmwsmian (Vector Multiply Word Signed, Modulo, Integer and Accumulate Negative, SPEPEM p5-204)
++     DIP( "evmwsmian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     break;
++  default:
++     return False;
++  }
++
++  assign ( ACC, getSPE_ACCReg( ) );
++  assign ( rA,  getSPEReg( rA_addr ) );
++  assign ( rB,  getSPEReg( rB_addr ) );
++
++  assign ( ACCL, unop( Iop_64to32,
++                       mkexpr ( ACC ) ) );
++  assign ( ACCU, unop( Iop_64HIto32,
++                       mkexpr ( ACC ) ) );
++  assign ( rAL,  unop( Iop_64to32,
++                       mkexpr ( rA ) ) );
++  assign ( rAU,  unop( Iop_64HIto32,
++                       mkexpr ( rA ) ) );
++  assign ( rBL,  unop( Iop_64to32,
++                       mkexpr ( rB ) ) );
++  assign ( rBU,  unop( Iop_64HIto32,
++                       mkexpr ( rB ) ) );
++
++  switch (opc2) {
++  case 0x408: // evmheumi  (See: evmheumianw)
++  case 0x428: // evmheumia (See: evmheumianw)
++
++     // Get the zero extended even half-words first:
++     assign ( rsl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rDL, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rDU, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x409: // evmhesmi  (See: evmheumianw)
++  case 0x429: // evmhesmia (See: evmheumianw)
++
++     // Get the sign extended even half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rDL, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rDU, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x40c: // evmhoumi  (See: evmhoumianw)
++  case 0x42c: // evmhoumia (See: evmhoumianw)
++
++     // Get the odd half-words first:
++     assign ( rsl, binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) );
++     assign ( rsu, binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) );
++     assign ( rtl, binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) );
++     assign ( rtu, binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rDL, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rDU, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x40d: // evmhosmi  (See: evmhoumianw)
++  case 0x42d: // evmhosmia (See: evmhoumianw)
++
++     // Get the sign extended odd half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rDL, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rDU, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x448: // evmwlumi
++  case 0x468: // evmwlumia
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rAU ),
++                            mkexpr ( rBU ) ) );
++
++     assign ( rtl, unop ( Iop_64to32,
++                          mkexpr ( rLIP ) ) );
++     assign ( rtu, unop ( Iop_64to32,
++                          mkexpr ( rUIP ) ) );
++
++     assign ( rDL, mkexpr ( rtl ) );
++     assign ( rDU, mkexpr ( rtu ) );
++
++     assign ( rD,  binop(  Iop_32HLto64,
++                           mkexpr ( rDU ),
++                           mkexpr ( rDL ) ) );
++     break;
++  case 0x44c: // evmwhumi
++  case 0x46c: // evmwhumia
++     assign ( rDL, unop ( Iop_64HIto32,
++                          binop ( Iop_MullU32,
++                                  mkexpr ( rAL ),
++                                  mkexpr ( rBL ) ) ) );
++     assign ( rDU, unop ( Iop_64HIto32,
++                          binop ( Iop_MullU32,
++                                  mkexpr ( rAU ),
++                                  mkexpr ( rBU ) ) ) );
++     assign ( rD,  binop(  Iop_32HLto64,
++                           mkexpr ( rDU ),
++                           mkexpr ( rDL ) ) );
++     break;
++  case 0x44d: // evmwhsmi
++  case 0x46d: // evmwhsmia
++     assign ( rDL, unop ( Iop_64HIto32,
++                          binop ( Iop_MullS32,
++                                  mkexpr ( rAL ),
++                                  mkexpr ( rBL ) ) ) );
++     assign ( rDU, unop ( Iop_64HIto32,
++                          binop ( Iop_MullS32,
++                                  mkexpr ( rAU ),
++                                  mkexpr ( rBU ) ) ) );
++     assign ( rD,  binop(  Iop_32HLto64,
++                           mkexpr ( rDU ),
++                           mkexpr ( rDL ) ) );
++     break;
++  case 0x458: // evmwumi
++  case 0x478: // evmwumia
++     assign ( rD, binop ( Iop_MullU32,
++                          mkexpr ( rAL ),
++                          mkexpr ( rBL ) ) );
++     break;
++  case 0x459: // evmwsmi
++  case 0x479: // evmwsmia
++     assign ( rD, binop ( Iop_MullS32,
++                          mkexpr ( rAL ),
++                          mkexpr ( rBL ) ) );
++     break;
++  case 0x508: // evmheumiaaw (See: evmhoumianw)
++
++     // Get the zero extended even half-words first:
++     assign ( rsl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rwu, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x509: // evmhesmiaaw (See: evmheumianw)
++
++     // Get the sign extended even half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rwu, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x50c: // evmhoumiaaw (See: evmhoumianw)
++
++     // Get the odd half-words first:
++     assign ( rsl, binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) );
++     assign ( rsu, binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) );
++     assign ( rtl, binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) );
++     assign ( rtu, binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rwu, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x50d: // evmhosmiaaw (See: evmhoumianw)
++
++     // Get the sign extended odd half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, unop ( Iop_64to32, mkexpr ( rLIP ) ) );
++     assign ( rwu, unop ( Iop_64to32, mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x548: // evmwlumiaaw
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rAU ),
++                            mkexpr ( rBU ) ) );
++
++     assign ( rtl, unop ( Iop_64to32,
++                          mkexpr ( rLIP ) ) );
++     assign ( rtu, unop ( Iop_64to32,
++                          mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rtl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rtu ) ) );
++
++     assign ( rD,  binop(  Iop_32HLto64,
++                           mkexpr ( rDU ),
++                           mkexpr ( rDL ) ) );
++     break;
++  case 0x549: // evmwlsmiaaw
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rAU ),
++                            mkexpr ( rBU ) ) );
++
++     assign ( rtl, unop ( Iop_64to32,
++                          mkexpr ( rLIP ) ) );
++     assign ( rtu, unop ( Iop_64to32,
++                          mkexpr ( rUIP ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rtl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rtu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x558: // evmwumiaa
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rD,  binop (  Iop_Add64,
++                            mkexpr ( ACC ),
++                            mkexpr ( rLIP ) ) );
++     break;
++  case 0x559: // evmwsmiaa
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rD,  binop (  Iop_Add64,
++                            mkexpr ( ACC ),
++                            mkexpr ( rLIP ) ) );
++     break;
++  case 0x588: // evmheumianw See evmhoumianw (we have the same issue here as well) with Iop_MullS16
++
++     // Get the zero extended even half-words first:
++     assign ( rsl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_extz_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, spe_neg ( unop ( Iop_64to32, mkexpr ( rLIP ) ) ) );
++     assign ( rwu, spe_neg ( unop ( Iop_64to32, mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x589: // evmhesmianw See evmhoumianw (we have the same issue here as well) with Iop_MullS16
++
++     // Get the sign extended even half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rAU ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBL ), mkU8 ( 0x10 ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_Shr32, mkexpr ( rBU ), mkU8 ( 0x10 ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, spe_neg ( unop ( Iop_64to32, mkexpr ( rLIP ) ) ) );
++     assign ( rwu, spe_neg ( unop ( Iop_64to32, mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x58c: // evmhoumianw
++
++     // We had to really workaround this one: Iop_MullU16 does not reduce.
++
++     // Get the odd half-words first:
++     assign ( rsl, binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) );
++     assign ( rsu, binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) );
++     assign ( rtl, binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) );
++     assign ( rtu, binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) );
++
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, spe_neg ( unop ( Iop_64to32, mkexpr ( rLIP ) ) ) );
++     assign ( rwu, spe_neg ( unop ( Iop_64to32, mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x58d: // evmhosmianw See evmhoumianw (we have the same issue here as well) with Iop_MullS16
++
++     // Get the sign extended odd half-words first:
++     assign ( rsl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rsu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rAU ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtl, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBL ), mkU32 ( 0xffff ) ) ) );
++     assign ( rtu, spe_exts_16_in_32 ( binop ( Iop_And32, mkexpr ( rBU ), mkU32 ( 0xffff ) ) ) );
++
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rsl ),
++                            mkexpr ( rtl ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rsu ),
++                            mkexpr ( rtu ) ) );
++
++     assign ( rwl, spe_neg ( unop ( Iop_64to32, mkexpr ( rLIP ) ) ) );
++     assign ( rwu, spe_neg ( unop ( Iop_64to32, mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rwl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rwu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x5c8: // evmwlumianw
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rUIP, binop ( Iop_MullU32,
++                            mkexpr ( rAU ),
++                            mkexpr ( rBU ) ) );
++
++     assign ( rtl, spe_neg ( unop ( Iop_64to32,
++                                    mkexpr ( rLIP ) ) ) );
++     assign ( rtu, spe_neg ( unop ( Iop_64to32,
++                                    mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rtl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rtu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x5c9: // evmwlsmianw
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rUIP, binop ( Iop_MullS32,
++                            mkexpr ( rAU ),
++                            mkexpr ( rBU ) ) );
++
++     assign ( rtl, spe_neg ( unop ( Iop_64to32,
++                                    mkexpr ( rLIP ) ) ) );
++     assign ( rtu, spe_neg ( unop ( Iop_64to32,
++                                    mkexpr ( rUIP ) ) ) );
++
++     assign ( rDL, binop ( Iop_Add32,
++                           mkexpr ( ACCL ),
++                           mkexpr ( rtl ) ) );
++     assign ( rDU, binop ( Iop_Add32,
++                           mkexpr ( ACCU ),
++                           mkexpr ( rtu ) ) );
++
++     assign ( rD, binop( Iop_32HLto64,
++                         mkexpr ( rDU ),
++                         mkexpr ( rDL ) ) );
++     break;
++  case 0x5d8: // evmwumian
++     assign ( rLIP, binop ( Iop_MullU32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rT,  spe_neg64 ( mkexpr ( rLIP ) ) );
++     assign ( rD,  binop (     Iop_Add64,
++                               mkexpr ( ACC ),
++                               mkexpr ( rT ) ) );
++     break;
++  case 0x5d9: // evmwsmian
++     assign ( rLIP, binop ( Iop_MullS32,
++                            mkexpr ( rAL ),
++                            mkexpr ( rBL ) ) );
++     assign ( rT,  spe_neg64 ( mkexpr ( rLIP ) ) );
++     assign ( rD,  binop (     Iop_Add64,
++                               mkexpr ( ACC ),
++                               mkexpr ( rT ) ) );
++     break;
++  default:
++     return False;
++  }
++  putSPEReg ( rD_addr, mkexpr ( rD ) );
++
++  switch (opc2) {
++  case 0x428: // evmheumia
++  case 0x429: // evmhesmia
++  case 0x42c: // evmhoumia
++  case 0x42d: // evmhosmia
++  case 0x468: // evmwlumia
++  case 0x46c: // evmwhumia
++  case 0x46d: // evmwhsmia
++  case 0x478: // evmwumia
++  case 0x479: // evmwsmia
++  case 0x509: // evmhesmiaaw
++  case 0x508: // evmheumiaaw
++  case 0x50c: // evmhoumiaaw
++  case 0x50d: // evmhoumiaaw
++  case 0x548: // evmwlumiaaw
++  case 0x549: // evmwlsmiaaw
++  case 0x558: // evmwumiaa
++  case 0x559: // evmwsmiaa
++  case 0x588: // evmheumianw
++  case 0x589: // evmhesmianw
++  case 0x5c8: // evmwlumianw
++  case 0x58c: // evmhoumianw
++  case 0x58d: // evmhosmianw
++  case 0x5c9: // evmwlsmianw
++  case 0x5d8: // evmwumian
++  case 0x5d9: // evmwsmian
++     putSPE_ACCReg ( mkexpr ( rD ) );
++  default:
++     break;
++  }
++
++  return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -19421,6 +20234,43 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_compare( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x408: // evmheumi
++      case 0x409: // evmhesmi
++      case 0x40c: // evmhoumi
++      case 0x40d: // evmhosmi
++      case 0x428: // evmheumia
++      case 0x429: // evmhesmia
++      case 0x42c: // evmhoumic
++      case 0x42d: // evmhosmic
++      case 0x448: // evmwlumi
++      case 0x44c: // evmwhumi
++      case 0x44d: // evmwhsmi
++      case 0x458: // evmwumi
++      case 0x478: // evmwumia
++      case 0x459: // evmwsmi
++      case 0x468: // evmwlumia
++      case 0x46c: // evmwhumia
++      case 0x46d: // evmwhsmia
++      case 0x479: // evmwsmia
++      case 0x508: // evmheumiaaw
++      case 0x509: // evmhesmiaaw
++      case 0x50c: // evmhoumiaaw
++      case 0x50d: // evmhosmiaaw
++      case 0x548: // evmwlumiaaw
++      case 0x549: // evmwlsmiaaw
++      case 0x558: // evmwumiaa
++      case 0x588: // evmheumianw
++      case 0x589: // evmhesmianw
++      case 0x58c: // evmhoumianw
++      case 0x58d: // evmhosmianw
++      case 0x5c8: // evmwlumianw
++      case 0x5c9: // evmwlsmianw
++      case 0x5d8: // evmwumian
++      case 0x559: // evmwsmiaa
++      case 0x5d9: // evmwsmian
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_ACC_based_multiply_insns( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x4c4: // evmra
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_initialize_ACC( theInstr )) goto decode_success;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 7a259d6..d8f1a7c 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -7967,6 +7967,1092 @@ int evsubfw_asm(void)
+ }
+ TEST_SPE_DECL(evsubfw_asm, "evsubfw");
+ 
++int evmwsmi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2s32); j++) {
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++      asm volatile ("evmwsmi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(__ev_convert_s64 (regD) == (int64_t) ((int64_t) regA[1] * (int64_t) regB[1]));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmi_asm, "evmwsmi");
++
++int evmwsmia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2s32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_s32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      // Verify the multiplication.
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++      asm volatile ("evmwsmia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(__ev_convert_s64 (regD) == (int64_t) ((int64_t) regA[1] * (int64_t) regB[1]));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_s32__) { 0x0, 0x0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmia_asm, "evmwsmia");
++
++int evmwumi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++      asm volatile ("evmwumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(__ev_convert_u64 (regD) == (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwumi_asm, "evmwumi");
++
++int evmwumia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_u32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      // Verify the multiplication.
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++      asm volatile ("evmwumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(__ev_convert_u64 (regD) == (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_u32__) { 0, 0 };
++      asm volatile ("evaddumiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwumia_asm, "evmwumia");
++
++int evmwumiaa_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint64_t i, sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, sum = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
++    asm volatile ("evmwumiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    // Verify that regD always contains the sum (j : (0 <= j and j < i) : (regA[j] * regB[j]))
++    sum += (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(__ev_convert_u64 (regD) == sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwumiaa_asm, "evmwumiaa");
++
++int evmwumian_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint64_t i, sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, sum = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
++    asm volatile ("evmwumian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    // Verify that regD always contains the negative of the sum (j : (0 <= j and j < i) : (regA[j] * regB[j]))
++    sum -= (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(__ev_convert_u64 (regD) == sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwumian_asm, "evmwumian");
++
++int evmwsmiaa_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  uint64_t i, sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, sum = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    regB = rB2s32[i];
++
++    asm volatile ("evmwsmiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    // Verify that regD always contains the sum (j : (0 <= j and j < i) : (regA[j] * regB[j]))
++    sum += (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(__ev_convert_u64 (regD) == sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmiaa_asm, "evmwsmiaa");
++
++int evmwsmian_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  uint64_t i, sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, sum = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    regB = rB2s32[i];
++
++    asm volatile ("evmwsmian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    // Verify that regD always contains the negative of the sum (j : (0 <= j and j < i) : (regA[j] * regB[j]))
++    sum -= (uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(__ev_convert_u64 (regD) == sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmian_asm, "evmwsmian");
++
++int evmwlumianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
++    asm volatile ("evmwlumianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlumianw_asm, "evmwlumianw");
++
++int evmwlumiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA2u32); i++) {
++
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
++    asm volatile ("evmwlumiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlumiaaw_asm, "evmwlumiaaw");
++
++int evmwlumi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++  uint32_t i, j;
++
++  // Unsigned test:
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++
++      asm volatile ("evmwlumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1])));
++    }
++  }
++
++  // Signed test:
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++
++      asm volatile ("evmwlumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1])));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlumi_asm, "evmwlumi");
++
++int evmwlumia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_opaque__ regA asm ("30");
++  register __ev64_opaque__ regB asm ("29");
++  register __ev64_opaque__ regD asm ("28");
++  uint32_t i, j;
++
++  // Unsigned test:
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_u32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++
++      asm volatile ("evmwlumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_u32__) { 0x0, 0x0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++
++  // Signed test:
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_s32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++
++      asm volatile ("evmwlumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint64_t) regA[0] * (uint64_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint64_t) regA[1] * (uint64_t) regB[1])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_s32__) { 0x0, 0x0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlumia_asm, "evmwlumia");
++
++int evmwlsmianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    regB = rB2s32[i];
++
++    asm volatile ("evmwlsmianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (int32_t) ((int64_t) regA[0] * (int64_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (int32_t) ((int64_t) regA[1] * (int64_t) regB[1]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlsmianw_asm, "evmwlsmianw");
++
++int evmwlsmiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s32__) { 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA2s32); i++) {
++
++    regA = rA2s32[i];
++    regB = rB2s32[i];
++
++    asm volatile ("evmwlsmiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (int32_t) ((int64_t) regA[0] * (int64_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (int32_t) ((int64_t) regA[1] * (int64_t) regB[1]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwlsmiaaw_asm, "evmwlsmiaaw");
++
++int evmwhumi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++      asm volatile ("evmwhumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == (((uint64_t) ((uint64_t) regA[0] * (uint64_t) regB[0])) >> (sizeof (uint32_t) * 8)));
++      VERIFY(regD[1] == (((uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1])) >> (sizeof (uint32_t) * 8)));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhumi_asm, "evmwhumi");
++
++int evmwhumia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++    for (j = 0; j < NELTS(rB2u32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_u32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      // Verify the multiplication.
++      regA = rA2u32[i];
++      regB = rB2u32[j];
++      asm volatile ("evmwhumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == (((uint64_t) ((uint64_t) regA[0] * (uint64_t) regB[0])) >> (sizeof (uint32_t) * 8)));
++      VERIFY(regD[1] == (((uint64_t) ((uint64_t) regA[1] * (uint64_t) regB[1])) >> (sizeof (uint32_t) * 8)));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_u32__) { 0, 0 };
++      asm volatile ("evaddumiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhumia_asm, "evmwhumia");
++
++int evmwhsmi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2s32); j++) {
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++      asm volatile ("evmwhsmi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == (((int64_t) ((int64_t) regA[0] * (int64_t) regB[0])) >> (sizeof (int32_t) * 8)));
++      VERIFY(regD[1] == (((int64_t) ((int64_t) regA[1] * (int64_t) regB[1])) >> (sizeof (int32_t) * 8)));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhsmi_asm, "evmwhsmi");
++
++int evmwhsmia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s32__ regA asm ("30");
++  register __ev64_s32__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int64_t i, j;
++
++  for (i = 0; i < NELTS(rA2s32); i++) {
++    for (j = 0; j < NELTS(rB2s32); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_s32__) { 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      // Verify the multiplication.
++      regA = rA2s32[i];
++      regB = rB2s32[j];
++      asm volatile ("evmwhsmia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == (((int64_t) ((int64_t) regA[0] * (int64_t) regB[0])) >> (sizeof (int32_t) * 8)));
++      VERIFY(regD[1] == (((int64_t) ((int64_t) regA[1] * (int64_t) regB[1])) >> (sizeof (int32_t) * 8)));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_s32__) { 0, 0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regB) : [a] "r" (regA));
++      VERIFY(regB[0] == regD[0] && regB[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhsmia_asm, "evmwhsmia");
++
++int evmhoumianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4u16); i++) {
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhoumianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (uint32_t) ((uint32_t) regA[1] * (uint32_t) regB[1]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (uint32_t) ((uint32_t) regA[3] * (uint32_t) regB[3]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhoumianw_asm, "evmhoumianw");
++
++int evmhoumiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4u16); i++) {
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhoumiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (uint32_t) ((uint32_t) regA[1] * (uint32_t) regB[1]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (uint32_t) ((uint32_t) regA[3] * (uint32_t) regB[3]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhoumiaaw_asm, "evmhoumiaaw");
++
++int evmhoumi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++    for (j = 0; j < NELTS(rB4u16); j++) {
++
++      regA = rA4u16[i];
++      regB = rB4u16[j];
++
++      asm volatile ("evmhoumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint32_t) regA[1] * (uint32_t) regB[1])));
++      VERIFY(regD[1] == ((uint32_t) ((uint32_t) regA[3] * (uint32_t) regB[3])));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhoumi_asm, "evmhoumi");
++
++int evmhoumia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regC asm ("28");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++    for (j = 0; j < NELTS(rB4u16); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_u16__) { 0, 0, 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA4u16[i];
++      regB = rB4u16[j];
++
++      asm volatile ("evmhoumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint32_t) regA[1] * (uint32_t) regB[1])));
++      VERIFY(regD[1] == ((uint32_t) ((uint32_t) regA[3] * (uint32_t) regB[3])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_u16__) { 0, 0, 0, 0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regC) : [a] "r" (regA));
++      VERIFY(regC[0] == regD[0] && regC[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhoumia_asm, "evmhoumia");
++
++int evmhosmianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (int32_t) ((int32_t) regA[1] * (int32_t) regB[1]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (int32_t) ((int32_t) regA[3] * (int32_t) regB[3]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmianw_asm, "evmhosmianw");
++
++int evmhosmiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (int32_t) ((int32_t) regA[1] * (int32_t) regB[1]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (int32_t) ((int32_t) regA[3] * (int32_t) regB[3]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmiaaw_asm, "evmhosmiaaw");
++
++int evmhosmi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++    for (j = 0; j < NELTS(rB4s16); j++) {
++
++      regA = rA4s16[i];
++      regB = rB4s16[j];
++
++      asm volatile ("evmhosmi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((int32_t) ((int32_t) regA[1] * (int32_t) regB[1])));
++      VERIFY(regD[1] == ((int32_t) ((int32_t) regA[3] * (int32_t) regB[3])));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmi_asm, "evmhosmi");
++
++int evmhosmia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regC asm ("28");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++    for (j = 0; j < NELTS(rB4s16); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_s16__) { 0, 0, 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA4s16[i];
++      regB = rB4s16[j];
++
++      asm volatile ("evmhosmia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((int32_t) ((int32_t) regA[1] * (int32_t) regB[1])));
++      VERIFY(regD[1] == ((int32_t) ((int32_t) regA[3] * (int32_t) regB[3])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_s16__) { 0, 0, 0, 0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regC) : [a] "r" (regA));
++      VERIFY(regC[0] == regD[0] && regC[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmia_asm, "evmhosmia");
++
++int evmheumianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4u16); i++) {
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmheumianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (uint32_t) ((uint32_t) regA[0] * (uint32_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (uint32_t) ((uint32_t) regA[2] * (uint32_t) regB[2]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmheumianw_asm, "evmheumianw");
++
++int evmheumiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4u16); i++) {
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmheumiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (uint32_t) ((uint32_t) regA[0] * (uint32_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (uint32_t) ((uint32_t) regA[2] * (uint32_t) regB[2]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmheumiaaw_asm, "evmheumiaaw");
++
++int evmheumi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++    for (j = 0; j < NELTS(rB4u16); j++) {
++
++      regA = rA4u16[i];
++      regB = rB4u16[j];
++
++      asm volatile ("evmheumi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint32_t) regA[0] * (uint32_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint32_t) regA[2] * (uint32_t) regB[2])));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmheumi_asm, "evmheumi");
++
++int evmheumia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u32__ regC asm ("28");
++  register __ev64_u32__ regD asm ("28");
++  uint32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_u16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++    for (j = 0; j < NELTS(rB4u16); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_u16__) { 0, 0, 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA4u16[i];
++      regB = rB4u16[j];
++
++      asm volatile ("evmheumia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((uint32_t) ((uint32_t) regA[0] * (uint32_t) regB[0])));
++      VERIFY(regD[1] == ((uint32_t) ((uint32_t) regA[2] * (uint32_t) regB[2])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_u16__) { 0, 0, 0, 0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regC) : [a] "r" (regA));
++      VERIFY(regC[0] == regD[0] && regC[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmheumia_asm, "evmheumia");
++
++int evmhesmianw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmianw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum -= (int32_t) ((int32_t) regA[0] * (int32_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum -= (int32_t) ((int32_t) regA[2] * (int32_t) regB[2]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmianw_asm, "evmhesmianw");
++
++int evmhesmiaaw_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, upper_sum, lower_sum;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0, upper_sum = 0, lower_sum = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmiaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    upper_sum += (int32_t) ((int32_t) regA[0] * (int32_t) regB[0]);
++    VERIFY(regD[0] == upper_sum);
++    lower_sum += (int32_t) ((int32_t) regA[2] * (int32_t) regB[2]);
++    VERIFY(regD[1] == lower_sum);
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmiaaw_asm, "evmhesmiaaw");
++
++int evmhesmi_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++    for (j = 0; j < NELTS(rB4s16); j++) {
++
++      regA = rA4s16[i];
++      regB = rB4s16[j];
++
++      asm volatile ("evmhesmi %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((int32_t) ((int32_t) regA[0] * (int32_t) regB[0])));
++      VERIFY(regD[1] == ((int32_t) ((int32_t) regA[2] * (int32_t) regB[2])));
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmi_asm, "evmhesmi");
++
++int evmhesmia_asm(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regC asm ("28");
++  register __ev64_s32__ regD asm ("28");
++  int32_t i, j;
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0, 0, 0, 0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0 && regD[1] == 0);
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++    for (j = 0; j < NELTS(rB4s16); j++) {
++
++      // Initialize the ACC.
++      regA = (__ev64_s16__) { 0, 0, 0, 0 };
++      asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++      VERIFY(regD[0] == 0 && regD[1] == 0);
++
++      regA = rA4s16[i];
++      regB = rB4s16[j];
++
++      asm volatile ("evmhesmia %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++      VERIFY(regD[0] == ((int32_t) ((int32_t) regA[0] * (int32_t) regB[0])));
++      VERIFY(regD[1] == ((int32_t) ((int32_t) regA[2] * (int32_t) regB[2])));
++
++      // (Indirectly) Verify that the product of the multiplication is also recorded in the ACC.
++      regA = (__ev64_s16__) { 0, 0, 0, 0 };
++      asm volatile ("evaddsmiaaw %[b], %[a]" : [b] "=r" (regC) : [a] "r" (regA));
++      VERIFY(regC[0] == regD[0] && regC[1] == regD[1]);
++    }
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmia_asm, "evmhesmia");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -8146,6 +9232,49 @@ test_t spe_isa_ACC_based_add_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_ACC_based_multiply_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA ACC Based Multiply Instructions Tests",
++  .table = {
++    F(evmwsmi_asm),
++    F(evmwsmia_asm),
++    F(evmwumi_asm),
++    F(evmwumia_asm),
++    F(evmwumiaa_asm),
++    F(evmwumian_asm),
++    F(evmwsmiaa_asm),
++    F(evmwsmian_asm),
++    F(evmwlumianw_asm),
++    F(evmwlumiaaw_asm),
++    F(evmwlumi_asm),
++    F(evmwlumia_asm),
++    F(evmwlsmianw_asm),
++    F(evmwlsmiaaw_asm),
++    F(evmwhumi_asm),
++    F(evmwhumia_asm),
++    F(evmwhsmi_asm),
++    F(evmwhsmia_asm),
++    F(evmhoumianw_asm),
++    F(evmhoumiaaw_asm),
++    F(evmhoumi_asm),
++    F(evmhoumia_asm),
++    F(evmhosmianw_asm),
++    F(evmhosmiaaw_asm),
++    F(evmhosmi_asm),
++    F(evmhosmia_asm),
++    F(evmheumianw_asm),
++    F(evmheumiaaw_asm),
++    F(evmheumi_asm),
++    F(evmheumia_asm),
++    F(evmhesmianw_asm),
++    F(evmhesmiaaw_asm),
++    F(evmhesmi_asm),
++    F(evmhesmia_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_add_insns_test_table = {
+ 
+   .type = table,
+@@ -8172,6 +9301,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_select_insns_test_table,
+     &spe_isa_ACC_based_add_insns_test_table,
+     &spe_isa_add_insns_test_table,
++    &spe_isa_ACC_based_multiply_insns_test_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index ab92040..391eac1 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8365)
++   by 0x........: main (test_spe.c:9495)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8365)
++   by 0x........: main (test_spe.c:9495)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:8365)
++   by 0x........: main (test_spe.c:9495)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index a04fb12..3f086f2 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -103,6 +103,41 @@ SPE Regression Tests: PASS
+ ....evaddw: PASS
+ ....evsubifw: PASS
+ ....evsubfw: PASS
++...SPE ISA ACC Based Multiply Instructions Tests: PASS
++....evmwsmi: PASS
++....evmwsmia: PASS
++....evmwumi: PASS
++....evmwumia: PASS
++....evmwumiaa: PASS
++....evmwumian: PASS
++....evmwsmiaa: PASS
++....evmwsmian: PASS
++....evmwlumianw: PASS
++....evmwlumiaaw: PASS
++....evmwlumi: PASS
++....evmwlumia: PASS
++....evmwlsmianw: PASS
++....evmwlsmiaaw: PASS
++....evmwhumi: PASS
++....evmwhumia: PASS
++....evmwhsmi: PASS
++....evmwhsmia: PASS
++....evmhoumianw: PASS
++....evmhoumiaaw: PASS
++....evmhoumi: PASS
++....evmhoumia: PASS
++....evmhosmianw: PASS
++....evmhosmiaaw: PASS
++....evmhosmi: PASS
++....evmhosmia: PASS
++....evmheumianw: PASS
++....evmheumiaaw: PASS
++....evmheumi: PASS
++....evmheumia: PASS
++....evmhesmianw: PASS
++....evmhesmiaaw: PASS
++....evmhesmi: PASS
++....evmhesmia: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index fb51db2..9af0548 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 76 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 76 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7218 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 17113 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  7776 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 17676 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12471 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 22376 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16939 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 26880 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  2090 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 12027 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  7427 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 17365 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0039-Implement-SPE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch b/recipes-devtools/valgrind/files/0039-Implement-SPE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch
new file mode 100644
index 0000000..0f85de5
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0039-Implement-SPE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch
@@ -0,0 +1,3016 @@
+From 786538fa92613d083f704ebb66142025b719769c Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 20 Mar 2013 11:08:40 -0700
+Subject: [PATCH 39/65] Implement SPE Instructions: { evmwsmfan, evmwsmfaa, evmwsmfa, evmwsmf, evmwhsmfa, evmwhsmf }.
+
+Also serves as reference for implementing an instruction via a "dirty-helper".
+---
+ VEX/priv/guest_ppc_defs.h                |   29 +
+ VEX/priv/guest_ppc_helpers.c             |  290 +++++
+ VEX/priv/guest_ppc_toIR.c                |  223 ++++-
+ memcheck/tests/ppc32/test_spe.c          | 1806 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |   56 +
+ memcheck/tests/ppc32/test_spe.stderr.exp |  240 ++++-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    7 +
+ regtest-power7-64.log                    |   46 +-
+ 8 files changed, 2666 insertions(+), 31 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 7433298..3319127 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -157,6 +157,35 @@ extern void ppc64g_dirtyhelper_LVS ( VexGuestPPC64State* gst,
+                                      UInt vD_idx, UInt sh,
+                                      UInt shift_right );
+ 
++extern void spe_dirtyhelper_evmwsmfan ( VexGuestPPC32State* gst,
++                                        UInt ACC_off,
++                                        UInt rD_off,
++                                        UInt rA_off,
++                                        UInt rB_off);
++extern void spe_dirtyhelper_evmwsmfaa ( VexGuestPPC32State* gst,
++                                        UInt ACC_off,
++                                        UInt rD_off,
++                                        UInt rA_off,
++                                        UInt rB_off);
++extern void spe_dirtyhelper_evmwsmfa ( VexGuestPPC32State* gst,
++                                       UInt ACC_off,
++                                       UInt rD_off,
++                                       UInt rA_off,
++                                       UInt rB_off);
++extern void spe_dirtyhelper_evmwsmf ( VexGuestPPC32State* gst,
++                                      UInt rD_off,
++                                      UInt rA_off,
++                                      UInt rB_off);
++extern void spe_dirtyhelper_evmwhsmfa ( VexGuestPPC32State* gst,
++                                        UInt ACC_off,
++                                        UInt rD_off,
++                                        UInt rA_off,
++                                        UInt rB_off);
++extern void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
++                                       UInt rD_off,
++                                       UInt rA_off,
++                                       UInt rB_off);
++
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+ /*---------------------------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 48f8475..cf3d583 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -184,6 +184,296 @@ void ppc64g_dirtyhelper_LVS ( VexGuestPPC64State* gst,
+   (*pU128_dst)[3] = (*pU128_src)[3];
+ }
+ 
++/*---------------------------------------------------------------*/
++/*---                       SPE helpers.                      ---*/
++/*---------------------------------------------------------------*/
++
++#ifdef __SPE__
++#include <spe.h>
++#endif
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwsmfan ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rT asm ("27") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ ACC;
++  __ev64_s64__ rD;
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rT <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[0:63] <- ACC[0:63] - rT[0:63]
++  rD = (__ev64_s64__) { (Long) ((Long) ACC - (Long) rT) };
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwsmfaa ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rT asm ("27") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ ACC;
++  __ev64_s64__ rD;
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rT <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[0:63] <- ACC[0:63] + rT[0:63]
++  rD = (__ev64_s64__) { (Long) ((Long) ACC + (Long) rT) };
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwsmfa ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional to Accumulator, SPEPEM p5-199)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ ACC;
++  __ev64_s64__ rD;
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rD <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwsmf ( VexGuestPPC32State* gst,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional to Accumulator, SPEPEM p5-199)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ rD;
++
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rD <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwhsmfa ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwhsmfa (Vector Multiply Word High Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-184)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ ACC;
++  __ev64_s64__ rD;
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rD <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
++                                UInt rD_off,
++                                UInt rA_off,
++                                UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
++
++  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
++  // error: 31 cannot be used in asm here
++  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++  // variables in a register, guaranteed.
++  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
++  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
++  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
++
++  __ev64_s64__ rD;
++
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
++  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
++
++  // rD <- rA[32:63] Xsf rB[32:63]
++  asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++
++#endif // __SPE__
++  return;
++}
+ 
+ /* Helper-function specialiser. */
+ 
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index d10e7a0..7ba382d 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -1416,10 +1416,15 @@ static void putSPEReg ( UInt archreg, IRExpr* e )
+    stmt( IRStmt_Put( speGuestRegOffset(archreg), e) );
+ }
+ 
++static Int speACCRegOffset ( void )
++{
++   return offsetof(VexGuestPPC32State, guest_ACC);
++}
++
+ /* Get contents of the SPE 64-bit ACC register */
+ static IRExpr* getSPE_ACCReg ( void )
+ {
+-   return IRExpr_Get( offsetof(VexGuestPPC32State, guest_ACC), Ity_I64 );
++   return IRExpr_Get( speACCRegOffset (), Ity_I64 );
+ }
+ 
+ /* Ditto, but write to the SPE 64-bit ACC instead. */
+@@ -14158,6 +14163,213 @@ static Bool dis_spe_ACC_based_multiply_insns ( UInt theInstr )
+   return True;
+ }
+ 
++static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRB( theInstr );
++  Char  simm    = evxRA( theInstr );
++
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++
++  IRDirty* d;
++  IRExpr** args;
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_ACC_based_fractional_multiply_insns (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x44f:
++     // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
++     args = mkIRExprVec_3 ( mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwhsmf",
++                            &spe_dirtyhelper_evmwhsmf,
++                            args);
++     DIP( "evmwhsmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 3;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = rD_off;
++     d->fxState[0].size   = 2 * sizeof(UInt);
++     d->fxState[1].fx     = Ifx_Read;
++     d->fxState[1].offset = rA_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rB_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x46f:
++     // evmwhsmfa (Vector Multiply Word High Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-184)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwhsmfa",
++                            &spe_dirtyhelper_evmwhsmfa,
++                            args);
++     DIP( "evmwhsmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x45b:
++     // evmwsmf (Vector Multiply Word Signed, Modulo, Fractional, SPEPEM p5-199)
++     args = mkIRExprVec_3 ( mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwsmf",
++                            &spe_dirtyhelper_evmwsmf,
++                            args);
++     DIP( "evmwsmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 3;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = rD_off;
++     d->fxState[0].size   = 2 * sizeof(UInt);
++     d->fxState[1].fx     = Ifx_Read;
++     d->fxState[1].offset = rA_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rB_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x47b:
++     // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-199)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwsmfa",
++                            &spe_dirtyhelper_evmwsmfa,
++                            args);
++     DIP( "evmwsmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x55b:
++     // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwsmfaa",
++                            &spe_dirtyhelper_evmwsmfaa,
++                            args);
++     DIP( "evmwsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5db:
++     // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmwsmfan",
++                            &spe_dirtyhelper_evmwsmfan,
++                            args);
++     DIP( "evmwsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  default:
++     return False;
++  }
++  return True;
++}
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -20271,6 +20483,15 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_ACC_based_multiply_insns( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x44f: // evmwhsmf
++      case 0x46f: // evmwhsmfa
++      case 0x45b: // evmwsmf
++      case 0x47b: // evmwsmfa
++      case 0x55b: // evmwsmfaa
++      case 0x5db: // evmwsmfan
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_ACC_based_fractional_multiply_insns( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x4c4: // evmra
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_initialize_ACC( theInstr )) goto decode_success;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index d8f1a7c..881cfc4 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -9053,6 +9053,1794 @@ int evmhesmia_asm(void)
+ }
+ TEST_SPE_DECL(evmhesmia_asm, "evmhesmia");
+ 
++#ifdef __SPE__
++__ev64_u64__ evmwsmfan_baseline[] = {
++
++  (__ev64_u64__) { 0x3ea125cb8d2df60c },
++  (__ev64_u64__) { 0x6599bf13c4d8222a },
++  (__ev64_u64__) { 0x17f92e30bb76b11a },
++  (__ev64_u64__) { 0xba6412b681b11f9a },
++  (__ev64_u64__) { 0xc3222623aeac01ce },
++  (__ev64_u64__) { 0xc3b6dd036c5ceb80 },
++  (__ev64_u64__) { 0x256066798e593ec4 },
++  (__ev64_u64__) { 0xa72a2d72c521a0c },
++  (__ev64_u64__) { 0x2bdf9c22f513e714 },
++  (__ev64_u64__) { 0x34ce7de686bc7e0c },
++  (__ev64_u64__) { 0x4a4906cb13ca1e58 },
++  (__ev64_u64__) { 0x93781a6253637b04 },
++  (__ev64_u64__) { 0x93e4b7e42ae5b304 },
++  (__ev64_u64__) { 0x950441acc6f28a0c },
++  (__ev64_u64__) { 0x9ba30c247df42a08 },
++  (__ev64_u64__) { 0xa2183e13ab862430 },
++  (__ev64_u64__) { 0xabf4e9780a5a15e8 },
++  (__ev64_u64__) { 0xa0834de4cc27d554 },
++  (__ev64_u64__) { 0x930b36e7591837d6 },
++  (__ev64_u64__) { 0x635b8dd0f52d5b72 },
++  (__ev64_u64__) { 0x5fb16f7f44fb7172 },
++  (__ev64_u64__) { 0x6c2659b9fd27724a },
++  (__ev64_u64__) { 0x3ea604402fec44c2 },
++  (__ev64_u64__) { 0x38b8133f53565e8e },
++  (__ev64_u64__) { 0x298c5376e8ba9ca4 },
++  (__ev64_u64__) { 0x9c44085f9948b3e0 },
++  (__ev64_u64__) { 0x94051ea5d93d23e0 },
++  (__ev64_u64__) { 0xa7ef78d018f54cfc },
++  (__ev64_u64__) { 0xa85f0953e9689848 },
++  (__ev64_u64__) { 0xb2362a1ae61fd5c4 },
++  (__ev64_u64__) { 0xa2604a0809919bb4 },
++  (__ev64_u64__) { 0x9bfee39180cb3f86 },
++  (__ev64_u64__) { 0x8766ee7d94bdd06e },
++  (__ev64_u64__) { 0xc2a8e62e68456542 },
++  (__ev64_u64__) { 0xe8bf2a5fb667aa92 },
++  (__ev64_u64__) { 0x20d9d6c89142d31e },
++  (__ev64_u64__) { 0xe1bf0e5a48dbf1e },
++  (__ev64_u64__) { 0x2aba0f3e89b51c96 },
++  (__ev64_u64__) { 0xf12e666ae8db5d16 },
++  (__ev64_u64__) { 0xb0dcf87a46674c7e },
++  (__ev64_u64__) { 0xb14206ea16821a8e },
++  (__ev64_u64__) { 0xa74f64f65e77dd1e },
++  (__ev64_u64__) { 0x14e8a89975983012 },
++  (__ev64_u64__) { 0x1b743a85d3ac409a },
++  (__ev64_u64__) { 0x349be5a48e10a502 },
++  (__ev64_u64__) { 0xf4f38f3ef55fc462 },
++  (__ev64_u64__) { 0xd6cfa8ae70008e64 },
++  (__ev64_u64__) { 0xcc18982b23afbe28 },
++  (__ev64_u64__) { 0x25aab6e236b29f38 },
++  (__ev64_u64__) { 0x19bc41bf9295a5b8 },
++  (__ev64_u64__) { 0x36ee9ad99d21445c },
++  (__ev64_u64__) { 0x2f4a70cd2d005ea0 },
++  (__ev64_u64__) { 0x20a0a6b0e7997530 },
++  (__ev64_u64__) { 0x27b67cf7d8314a40 },
++  (__ev64_u64__) { 0x7011134418e18 },
++  (__ev64_u64__) { 0xdbce1255000e7c30 },
++  (__ev64_u64__) { 0x9d1e5e75eb8ad04 },
++  (__ev64_u64__) { 0x20eac8d4f0ba1dcc },
++  (__ev64_u64__) { 0x196ca7ee6951c7a4 },
++  (__ev64_u64__) { 0x68261f40f6c4dcce },
++  (__ev64_u64__) { 0x7b603e1824faee42 },
++  (__ev64_u64__) { 0x4d55feebd6dacbf0 },
++  (__ev64_u64__) { 0x3c8c2ada73c6f360 },
++  (__ev64_u64__) { 0x2d0ac885fc5831e0 },
++  (__ev64_u64__) { 0x76fb8444a89f083c },
++  (__ev64_u64__) { 0x79af18b51fc3ba42 },
++  (__ev64_u64__) { 0x584cb06bbdfa702a },
++  (__ev64_u64__) { 0xcf046a19ca8fb2a },
++  (__ev64_u64__) { 0x1072a4a82b06eeba },
++  (__ev64_u64__) { 0xf6567e805ba55da },
++  (__ev64_u64__) { 0x630e69239c56b1d2 },
++  (__ev64_u64__) { 0x5c3c292f24bc14c4 },
++  (__ev64_u64__) { 0xe80c33c4df6b0e1c },
++  (__ev64_u64__) { 0x30b4846a2c6d0c0e },
++  (__ev64_u64__) { 0xf65d3720dead997e },
++  (__ev64_u64__) { 0xff21aeb44b26c8be },
++  (__ev64_u64__) { 0x4bbe017831905064 },
++  (__ev64_u64__) { 0xfd5bd9e62e2dabbe },
++  (__ev64_u64__) { 0x1249699c4dbe66fc },
++  (__ev64_u64__) { 0x3390ace4b8f87fe },
++  (__ev64_u64__) { 0x20b92cac65155578 },
++  (__ev64_u64__) { 0x22a01842cc24b5a8 },
++  (__ev64_u64__) { 0x140ce315d32fc266 },
++  (__ev64_u64__) { 0xd4c06f294c57be0 },
++  (__ev64_u64__) { 0x68ad52c632afe94 },
++  (__ev64_u64__) { 0xfd5970c94db782f0 },
++  (__ev64_u64__) { 0xf503ce7c5eca03ac },
++  (__ev64_u64__) { 0x5354ca702b67e7a },
++  (__ev64_u64__) { 0x2357701dd7c138ec },
++  (__ev64_u64__) { 0x1dd539209d815416 },
++  (__ev64_u64__) { 0x1ec91b8581060aba },
++  (__ev64_u64__) { 0x21fb42177577d7a2 },
++  (__ev64_u64__) { 0x426a4b8948ee4ba2 },
++  (__ev64_u64__) { 0x224e15adb88e40fe },
++  (__ev64_u64__) { 0x2423a49f38109ab4 },
++  (__ev64_u64__) { 0x54be4288c38841c4 },
++  (__ev64_u64__) { 0x4a412c22825aad90 },
++  (__ev64_u64__) { 0x260ea1f9580d7fea },
++  (__ev64_u64__) { 0x2e9cbcc216ac5d04 },
++  (__ev64_u64__) { 0x76550b398cd58570 },
++  (__ev64_u64__) { 0x6e7e9767e1cce50e },
++  (__ev64_u64__) { 0x731dc2e08eb495cc },
++  (__ev64_u64__) { 0x53b2934be8369c98 },
++  (__ev64_u64__) { 0x7b04ec5921691402 },
++  (__ev64_u64__) { 0x7590122efb39d6aa },
++  (__ev64_u64__) { 0x5c04317cb6861c92 },
++  (__ev64_u64__) { 0x6ecb76e417a9aa7a },
++  (__ev64_u64__) { 0x654d84fb44e8f50c },
++  (__ev64_u64__) { 0x72948884ada7e56c },
++  (__ev64_u64__) { 0x827424fb90de9aec },
++  (__ev64_u64__) { 0x67924d569ee15696 },
++  (__ev64_u64__) { 0x270f9697adbd7f5e },
++  (__ev64_u64__) { 0x550db8c65818e99e },
++  (__ev64_u64__) { 0x4a0d9ccc89823d7a },
++  (__ev64_u64__) { 0x29a75858ec2bb864 },
++  (__ev64_u64__) { 0x77b8bfd75aabcdb0 },
++  (__ev64_u64__) { 0x5264510fa37249c6 },
++  (__ev64_u64__) { 0x2e31f63d6d1868d0 },
++  (__ev64_u64__) { 0xf909fae2cf66310 },
++  (__ev64_u64__) { 0x262d1450d0b817a0 },
++  (__ev64_u64__) { 0x368388617b3bd97c },
++  (__ev64_u64__) { 0x5c09ee931a4ed95e },
++  (__ev64_u64__) { 0x5fa596b09d261b50 },
++  (__ev64_u64__) { 0x6d36782a59c2c400 },
++  (__ev64_u64__) { 0x73ef428965047564 },
++  (__ev64_u64__) { 0x756747badb1e9588 },
++  (__ev64_u64__) { 0x656e229171345376 },
++  (__ev64_u64__) { 0x6f4e7460e70a1ce6 },
++  (__ev64_u64__) { 0x7dad9f1930fd7c1a },
++  (__ev64_u64__) { 0x7389ebeed4aaced4 },
++  (__ev64_u64__) { 0x6fc3693d6c45b7fc },
++  (__ev64_u64__) { 0x7c277c63ae2469bc },
++  (__ev64_u64__) { 0x4ddafdc892709c54 },
++  (__ev64_u64__) { 0x4565fc204cf49c32 },
++  (__ev64_u64__) { 0x3a8ee6e687344382 },
++  (__ev64_u64__) { 0x1cb8e3fbea5a32 },
++  (__ev64_u64__) { 0xee6e23685680d79a },
++  (__ev64_u64__) { 0xc1db287237616a9c },
++  (__ev64_u64__) { 0xa1bb4cac51be5a1c },
++  (__ev64_u64__) { 0xd86b48d2c22a2fbe },
++  (__ev64_u64__) { 0xe78d940f0e1359ec },
++  (__ev64_u64__) { 0xebaa06019e350180 },
++  (__ev64_u64__) { 0xed4c62d053e7943e },
++  (__ev64_u64__) { 0xc82e07647c9caa88 },
++  (__ev64_u64__) { 0xdd6cdd422e802008 },
++  (__ev64_u64__) { 0xdb95881d8dfd66f0 },
++  (__ev64_u64__) { 0x17c945943d582748 },
++  (__ev64_u64__) { 0x15dcf7b3b1986e84 },
++  (__ev64_u64__) { 0xd6642cdb246ddfcc },
++  (__ev64_u64__) { 0xef8ec19a572394 },
++  (__ev64_u64__) { 0xeebc07d537050ef4 },
++  (__ev64_u64__) { 0xd79dd94fb061a4b4 },
++  (__ev64_u64__) { 0xd45dcd5f4a417224 },
++  (__ev64_u64__) { 0xc3b433363cc32c04 },
++  (__ev64_u64__) { 0xb90bbe911b04b590 },
++  (__ev64_u64__) { 0xb876ff79e6a0ad18 },
++  (__ev64_u64__) { 0xb76835c1d1f58308 },
++  (__ev64_u64__) { 0xd9749707424d4ff8 },
++  (__ev64_u64__) { 0xdd1f456ce491b1d8 },
++  (__ev64_u64__) { 0x4844b43d10f28992 },
++  (__ev64_u64__) { 0x5506c4435142c2a },
++  (__ev64_u64__) { 0xe9f008fca168e702 },
++  (__ev64_u64__) { 0xf706720b0fbfeb08 },
++  (__ev64_u64__) { 0x5ec9a24598749078 },
++  (__ev64_u64__) { 0x63cb3a6d64c611e8 },
++  (__ev64_u64__) { 0x4c7cf4f8c7f12110 },
++  (__ev64_u64__) { 0x6a0ce09e66a832d0 },
++  (__ev64_u64__) { 0x63975ebaf3750222 },
++  (__ev64_u64__) { 0xb0f695d46ab6fa50 },
++  (__ev64_u64__) { 0x7a07efca21b6fc64 },
++  (__ev64_u64__) { 0x4f06d4b3cf6a5ea4 },
++  (__ev64_u64__) { 0x3db1e77909b846b0 },
++  (__ev64_u64__) { 0x673515def2abb1dc },
++  (__ev64_u64__) { 0x3d48264545df3428 },
++  (__ev64_u64__) { 0x4ad1fcecd2431dfc },
++  (__ev64_u64__) { 0x1bc99b50366814ea },
++  (__ev64_u64__) { 0xdbe625074384b02c },
++  (__ev64_u64__) { 0x2b1a6c5bad6998d0 },
++  (__ev64_u64__) { 0xee688d93689a9b1c },
++  (__ev64_u64__) { 0xfa32b7c6fae05180 },
++  (__ev64_u64__) { 0xd8cca7bb98715854 },
++  (__ev64_u64__) { 0xdaf7036844f6b3f8 },
++  (__ev64_u64__) { 0xbd41afc69bb01168 },
++  (__ev64_u64__) { 0xbfc0b17071c2326e },
++  (__ev64_u64__) { 0x25d2c5c859916ce },
++  (__ev64_u64__) { 0x553553d020cf5ffe },
++  (__ev64_u64__) { 0x47826ad7f4de2888 },
++  (__ev64_u64__) { 0x38a1912441b17c40 },
++  (__ev64_u64__) { 0x435384857379ff0c },
++  (__ev64_u64__) { 0x24da54af3d179cbc },
++  (__ev64_u64__) { 0x1dd102cad6c2329a },
++  (__ev64_u64__) { 0x18607e6b898f5ba2 },
++  (__ev64_u64__) { 0xf09e61b80068bd3e },
++  (__ev64_u64__) { 0x19e748ba7ecf94b6 },
++  (__ev64_u64__) { 0x216578bdee42d546 },
++  (__ev64_u64__) { 0x594e3cc64f127c38 },
++  (__ev64_u64__) { 0x4a092d7786fd1070 },
++  (__ev64_u64__) { 0x703acd824ea4db60 },
++  (__ev64_u64__) { 0x6fc21ba625db3d40 },
++  (__ev64_u64__) { 0x624317b1eed78508 },
++  (__ev64_u64__) { 0x8b6b6bcfe3425e78 },
++  (__ev64_u64__) { 0x90f9472bc1fe8fd0 },
++  (__ev64_u64__) { 0x974662b811c40530 },
++  (__ev64_u64__) { 0x9e0759ef35f5e2bc },
++  (__ev64_u64__) { 0xb4c4f86c5a17d086 },
++  (__ev64_u64__) { 0xb245678d2c2d6694 },
++  (__ev64_u64__) { 0xccbda6c54e9dce36 },
++  (__ev64_u64__) { 0x7fcb2563263cacd4 },
++  (__ev64_u64__) { 0x883d34b5e6db5130 },
++  (__ev64_u64__) { 0x758a3585ab1c1550 },
++  (__ev64_u64__) { 0x98200cd53f341b7c },
++  (__ev64_u64__) { 0x51990950ffb7844c },
++  (__ev64_u64__) { 0x59c4a863df730df4 },
++  (__ev64_u64__) { 0x8699fa00b1ae86d4 },
++  (__ev64_u64__) { 0x6024a6929ab9cd4c },
++  (__ev64_u64__) { 0x1564e11108cb309c },
++  (__ev64_u64__) { 0x1fb6e2db6d2fba40 },
++  (__ev64_u64__) { 0x11523acf918263a8 },
++  (__ev64_u64__) { 0x1568e52cdf69c320 },
++  (__ev64_u64__) { 0x774eb724147d714 },
++  (__ev64_u64__) { 0x45e1d3ad5668e06c },
++  (__ev64_u64__) { 0x54b7f82e7cb8a798 },
++  (__ev64_u64__) { 0x72f27d777f84c52a },
++  (__ev64_u64__) { 0x50812d0e0744555a },
++  (__ev64_u64__) { 0x643147dc339cc3f6 },
++  (__ev64_u64__) { 0x521663c12b6c6ff6 },
++  (__ev64_u64__) { 0x37736763474f20fa },
++  (__ev64_u64__) { 0xc41803ee65263fe2 },
++  (__ev64_u64__) { 0xf2b0e0c0029d3626 },
++  (__ev64_u64__) { 0xdb695323d7223142 },
++  (__ev64_u64__) { 0xd752d86a4990a092 },
++  (__ev64_u64__) { 0xc666eeda62e37a96 },
++  (__ev64_u64__) { 0xb8b0863ca8834aa6 },
++  (__ev64_u64__) { 0xe2122035a3487dfe },
++  (__ev64_u64__) { 0xe878cf9fb5daaf56 },
++  (__ev64_u64__) { 0xcc5f550699c5c05e },
++  (__ev64_u64__) { 0xbd829c4006662dd6 },
++  (__ev64_u64__) { 0x16c31eb4e1f1cb72 },
++  (__ev64_u64__) { 0xbfe780611487df02 },
++  (__ev64_u64__) { 0xdff06759cb39f2f4 },
++  (__ev64_u64__) { 0x458c481cd932be1c },
++  (__ev64_u64__) { 0x6828b73252d0448c },
++  (__ev64_u64__) { 0x98a6a13b8908bf80 },
++  (__ev64_u64__) { 0xc15633140c7b9f42 },
++  (__ev64_u64__) { 0x9535781cdbebe25e },
++  (__ev64_u64__) { 0x944fd79fee0ded16 },
++  (__ev64_u64__) { 0x88bd85d24bc279ce },
++  (__ev64_u64__) { 0x8910effa78463c0a },
++  (__ev64_u64__) { 0x964d50397726b34e },
++  (__ev64_u64__) { 0x58dc6d489de41e12 },
++  (__ev64_u64__) { 0x63e3b32f7385c8f2 },
++  (__ev64_u64__) { 0x11a8b6135eff1386 },
++  (__ev64_u64__) { 0x3cbb70cd176f6e2c },
++  (__ev64_u64__) { 0x3febdc87a44a58e2 },
++  (__ev64_u64__) { 0x71314dcff7031674 },
++  (__ev64_u64__) { 0x6f89ec197ca2d034 },
++
++};
++#endif // __SPE__
++
++int evmwsmfan_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u64__ regA asm ("30");
++  register __ev64_u64__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++  __ev64_u64__ *ops;
++
++  // Initialize the ACC.
++  regA = (__ev64_u64__) { 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA1u64); i++) {
++
++    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
++    // by allocating 4 __ev64_u64__'s - not sure, why so?
++    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
++    // e500v2 and Classic Power).
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u64__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA1u64[i];
++    ops[2] = rB1u64[i];
++
++#ifdef __SPE__
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwsmfan %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmwsmfan_baseline[i][0]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeef;                     // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                       // Invalid read detected?
++#if 0                                        // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  //       [ sigma i : (0 <= i and i < 5) : (1/4^(i+1)) ] ==  (341/1024)
++  //
++  // i.e. that:
++  //
++  // 0.0 - [ sigma i : (0 <= i and i < 5) : (1/4^(i+1)) ] == -(341/1024)
++  //
++  // Note: -(341/1024) == -1 + (683/1024)
++  //         683/1024  == (1/2 + 1/8 + 1/32 + 1/128 + 1/512 + 1/1024)
++  //                   == 0xd560000000000000
++  //////////////////////////////////////////////////////////////////////////////
++
++  // Load the 0.0 into the ACC,
++  // Initialize the ACC.
++  regA = (__ev64_u64__) { 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++
++  // Now, compute the (negative of the original) summation:
++  for (i = 0; i < 5; i++) {
++    regA = powers_of_half[i];
++    regB = powers_of_half[i];
++    asm volatile ("evmwsmfan %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++  }
++#ifdef GEN_BASELINE
++  printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++  VERIFY(regD[0] == 0xd560000000000000);
++#endif
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmfan_asm, "evmwsmfan");
++
++#ifdef __SPE__
++__ev64_u64__ evmwsmfaa_baseline[] = {
++
++  (__ev64_u64__) { 0xc15eda3472d209f4 },
++  (__ev64_u64__) { 0x9a6640ec3b27ddd6 },
++  (__ev64_u64__) { 0xe806d1cf44894ee6 },
++  (__ev64_u64__) { 0x459bed497e4ee066 },
++  (__ev64_u64__) { 0x3cddd9dc5153fe32 },
++  (__ev64_u64__) { 0x3c4922fc93a31480 },
++  (__ev64_u64__) { 0xda9f998671a6c13c },
++  (__ev64_u64__) { 0xf58d5d28d3ade5f4 },
++  (__ev64_u64__) { 0xd42063dd0aec18ec },
++  (__ev64_u64__) { 0xcb318219794381f4 },
++  (__ev64_u64__) { 0xb5b6f934ec35e1a8 },
++  (__ev64_u64__) { 0x6c87e59dac9c84fc },
++  (__ev64_u64__) { 0x6c1b481bd51a4cfc },
++  (__ev64_u64__) { 0x6afbbe53390d75f4 },
++  (__ev64_u64__) { 0x645cf3db820bd5f8 },
++  (__ev64_u64__) { 0x5de7c1ec5479dbd0 },
++  (__ev64_u64__) { 0x540b1687f5a5ea18 },
++  (__ev64_u64__) { 0x5f7cb21b33d82aac },
++  (__ev64_u64__) { 0x6cf4c918a6e7c82a },
++  (__ev64_u64__) { 0x9ca4722f0ad2a48e },
++  (__ev64_u64__) { 0xa04e9080bb048e8e },
++  (__ev64_u64__) { 0x93d9a64602d88db6 },
++  (__ev64_u64__) { 0xc159fbbfd013bb3e },
++  (__ev64_u64__) { 0xc747ecc0aca9a172 },
++  (__ev64_u64__) { 0xd673ac891745635c },
++  (__ev64_u64__) { 0x63bbf7a066b74c20 },
++  (__ev64_u64__) { 0x6bfae15a26c2dc20 },
++  (__ev64_u64__) { 0x5810872fe70ab304 },
++  (__ev64_u64__) { 0x57a0f6ac169767b8 },
++  (__ev64_u64__) { 0x4dc9d5e519e02a3c },
++  (__ev64_u64__) { 0x5d9fb5f7f66e644c },
++  (__ev64_u64__) { 0x64011c6e7f34c07a },
++  (__ev64_u64__) { 0x789911826b422f92 },
++  (__ev64_u64__) { 0x3d5719d197ba9abe },
++  (__ev64_u64__) { 0x1740d5a04998556e },
++  (__ev64_u64__) { 0xdf2629376ebd2ce2 },
++  (__ev64_u64__) { 0xf1e40f1a5b7240e2 },
++  (__ev64_u64__) { 0xd545f0c1764ae36a },
++  (__ev64_u64__) { 0xed199951724a2ea },
++  (__ev64_u64__) { 0x4f230785b998b382 },
++  (__ev64_u64__) { 0x4ebdf915e97de572 },
++  (__ev64_u64__) { 0x58b09b09a18822e2 },
++  (__ev64_u64__) { 0xeb1757668a67cfee },
++  (__ev64_u64__) { 0xe48bc57a2c53bf66 },
++  (__ev64_u64__) { 0xcb641a5b71ef5afe },
++  (__ev64_u64__) { 0xb0c70c10aa03b9e },
++  (__ev64_u64__) { 0x293057518fff719c },
++  (__ev64_u64__) { 0x33e767d4dc5041d8 },
++  (__ev64_u64__) { 0xda55491dc94d60c8 },
++  (__ev64_u64__) { 0xe643be406d6a5a48 },
++  (__ev64_u64__) { 0xc911652662debba4 },
++  (__ev64_u64__) { 0xd0b58f32d2ffa160 },
++  (__ev64_u64__) { 0xdf5f594f18668ad0 },
++  (__ev64_u64__) { 0xd849830827ceb5c0 },
++  (__ev64_u64__) { 0xfff8feeecbbe71e8 },
++  (__ev64_u64__) { 0x2431edaafff183d0 },
++  (__ev64_u64__) { 0xf62e1a18a14752fc },
++  (__ev64_u64__) { 0xdf15372b0f45e234 },
++  (__ev64_u64__) { 0xe693581196ae385c },
++  (__ev64_u64__) { 0x97d9e0bf093b2332 },
++  (__ev64_u64__) { 0x849fc1e7db0511be },
++  (__ev64_u64__) { 0xb2aa011429253410 },
++  (__ev64_u64__) { 0xc373d5258c390ca0 },
++  (__ev64_u64__) { 0xd2f5377a03a7ce20 },
++  (__ev64_u64__) { 0x89047bbb5760f7c4 },
++  (__ev64_u64__) { 0x8650e74ae03c45be },
++  (__ev64_u64__) { 0xa7b34f9442058fd6 },
++  (__ev64_u64__) { 0xf30fb95e635704d6 },
++  (__ev64_u64__) { 0xef8d5b57d4f91146 },
++  (__ev64_u64__) { 0xf09a9817fa45aa26 },
++  (__ev64_u64__) { 0x9cf196dc63a94e2e },
++  (__ev64_u64__) { 0xa3c3d6d0db43eb3c },
++  (__ev64_u64__) { 0x17f3cc3b2094f1e4 },
++  (__ev64_u64__) { 0xcf4b7b95d392f3f2 },
++  (__ev64_u64__) { 0x9a2c8df21526682 },
++  (__ev64_u64__) { 0xde514bb4d93742 },
++  (__ev64_u64__) { 0xb441fe87ce6faf9c },
++  (__ev64_u64__) { 0x2a42619d1d25442 },
++  (__ev64_u64__) { 0xedb69663b2419904 },
++  (__ev64_u64__) { 0xfcc6f531b4707802 },
++  (__ev64_u64__) { 0xdf46d3539aeaaa88 },
++  (__ev64_u64__) { 0xdd5fe7bd33db4a58 },
++  (__ev64_u64__) { 0xebf31cea2cd03d9a },
++  (__ev64_u64__) { 0xf2b3f90d6b3a8420 },
++  (__ev64_u64__) { 0xf9752ad39cd5016c },
++  (__ev64_u64__) { 0x2a68f36b2487d10 },
++  (__ev64_u64__) { 0xafc3183a135fc54 },
++  (__ev64_u64__) { 0xfacab358fd498186 },
++  (__ev64_u64__) { 0xdca88fe2283ec714 },
++  (__ev64_u64__) { 0xe22ac6df627eabea },
++  (__ev64_u64__) { 0xe136e47a7ef9f546 },
++  (__ev64_u64__) { 0xde04bde88a88285e },
++  (__ev64_u64__) { 0xbd95b476b711b45e },
++  (__ev64_u64__) { 0xddb1ea524771bf02 },
++  (__ev64_u64__) { 0xdbdc5b60c7ef654c },
++  (__ev64_u64__) { 0xab41bd773c77be3c },
++  (__ev64_u64__) { 0xb5bed3dd7da55270 },
++  (__ev64_u64__) { 0xd9f15e06a7f28016 },
++  (__ev64_u64__) { 0xd163433de953a2fc },
++  (__ev64_u64__) { 0x89aaf4c6732a7a90 },
++  (__ev64_u64__) { 0x918168981e331af2 },
++  (__ev64_u64__) { 0x8ce23d1f714b6a34 },
++  (__ev64_u64__) { 0xac4d6cb417c96368 },
++  (__ev64_u64__) { 0x84fb13a6de96ebfe },
++  (__ev64_u64__) { 0x8a6fedd104c62956 },
++  (__ev64_u64__) { 0xa3fbce834979e36e },
++  (__ev64_u64__) { 0x9134891be8565586 },
++  (__ev64_u64__) { 0x9ab27b04bb170af4 },
++  (__ev64_u64__) { 0x8d6b777b52581a94 },
++  (__ev64_u64__) { 0x7d8bdb046f216514 },
++  (__ev64_u64__) { 0x986db2a9611ea96a },
++  (__ev64_u64__) { 0xd8f06968524280a2 },
++  (__ev64_u64__) { 0xaaf24739a7e71662 },
++  (__ev64_u64__) { 0xb5f26333767dc286 },
++  (__ev64_u64__) { 0xd658a7a713d4479c },
++  (__ev64_u64__) { 0x88474028a5543250 },
++  (__ev64_u64__) { 0xad9baef05c8db63a },
++  (__ev64_u64__) { 0xd1ce09c292e79730 },
++  (__ev64_u64__) { 0xf06f6051d3099cf0 },
++  (__ev64_u64__) { 0xd9d2ebaf2f47e860 },
++  (__ev64_u64__) { 0xc97c779e84c42684 },
++  (__ev64_u64__) { 0xa3f6116ce5b126a2 },
++  (__ev64_u64__) { 0xa05a694f62d9e4b0 },
++  (__ev64_u64__) { 0x92c987d5a63d3c00 },
++  (__ev64_u64__) { 0x8c10bd769afb8a9c },
++  (__ev64_u64__) { 0x8a98b84524e16a78 },
++  (__ev64_u64__) { 0x9a91dd6e8ecbac8a },
++  (__ev64_u64__) { 0x90b18b9f18f5e31a },
++  (__ev64_u64__) { 0x825260e6cf0283e6 },
++  (__ev64_u64__) { 0x8c7614112b55312c },
++  (__ev64_u64__) { 0x903c96c293ba4804 },
++  (__ev64_u64__) { 0x83d8839c51db9644 },
++  (__ev64_u64__) { 0xb22502376d8f63ac },
++  (__ev64_u64__) { 0xba9a03dfb30b63ce },
++  (__ev64_u64__) { 0xc571191978cbbc7e },
++  (__ev64_u64__) { 0xffe3471c0415a5ce },
++  (__ev64_u64__) { 0x1191dc97a97f2866 },
++  (__ev64_u64__) { 0x3e24d78dc89e9564 },
++  (__ev64_u64__) { 0x5e44b353ae41a5e4 },
++  (__ev64_u64__) { 0x2794b72d3dd5d042 },
++  (__ev64_u64__) { 0x18726bf0f1eca614 },
++  (__ev64_u64__) { 0x1455f9fe61cafe80 },
++  (__ev64_u64__) { 0x12b39d2fac186bc2 },
++  (__ev64_u64__) { 0x37d1f89b83635578 },
++  (__ev64_u64__) { 0x229322bdd17fdff8 },
++  (__ev64_u64__) { 0x246a77e272029910 },
++  (__ev64_u64__) { 0xe836ba6bc2a7d8b8 },
++  (__ev64_u64__) { 0xea23084c4e67917c },
++  (__ev64_u64__) { 0x299bd324db922034 },
++  (__ev64_u64__) { 0xff10713e65a8dc6c },
++  (__ev64_u64__) { 0x1143f82ac8faf10c },
++  (__ev64_u64__) { 0x286226b04f9e5b4c },
++  (__ev64_u64__) { 0x2ba232a0b5be8ddc },
++  (__ev64_u64__) { 0x3c4bccc9c33cd3fc },
++  (__ev64_u64__) { 0x46f4416ee4fb4a70 },
++  (__ev64_u64__) { 0x47890086195f52e8 },
++  (__ev64_u64__) { 0x4897ca3e2e0a7cf8 },
++  (__ev64_u64__) { 0x268b68f8bdb2b008 },
++  (__ev64_u64__) { 0x22e0ba931b6e4e28 },
++  (__ev64_u64__) { 0xb7bb4bc2ef0d766e },
++  (__ev64_u64__) { 0xfaaf93bbcaebd3d6 },
++  (__ev64_u64__) { 0x160ff7035e9718fe },
++  (__ev64_u64__) { 0x8f98df4f04014f8 },
++  (__ev64_u64__) { 0xa1365dba678b6f88 },
++  (__ev64_u64__) { 0x9c34c5929b39ee18 },
++  (__ev64_u64__) { 0xb3830b07380edef0 },
++  (__ev64_u64__) { 0x95f31f619957cd30 },
++  (__ev64_u64__) { 0x9c68a1450c8afdde },
++  (__ev64_u64__) { 0x4f096a2b954905b0 },
++  (__ev64_u64__) { 0x85f81035de49039c },
++  (__ev64_u64__) { 0xb0f92b4c3095a15c },
++  (__ev64_u64__) { 0xc24e1886f647b950 },
++  (__ev64_u64__) { 0x98caea210d544e24 },
++  (__ev64_u64__) { 0xc2b7d9baba20cbd8 },
++  (__ev64_u64__) { 0xb52e03132dbce204 },
++  (__ev64_u64__) { 0xe43664afc997eb16 },
++  (__ev64_u64__) { 0x2419daf8bc7b4fd4 },
++  (__ev64_u64__) { 0xd4e593a452966730 },
++  (__ev64_u64__) { 0x1197726c976564e4 },
++  (__ev64_u64__) { 0x5cd4839051fae80 },
++  (__ev64_u64__) { 0x27335844678ea7ac },
++  (__ev64_u64__) { 0x2508fc97bb094c08 },
++  (__ev64_u64__) { 0x42be5039644fee98 },
++  (__ev64_u64__) { 0x403f4e8f8e3dcd92 },
++  (__ev64_u64__) { 0xfda2d3a37a66e932 },
++  (__ev64_u64__) { 0xaacaac2fdf30a002 },
++  (__ev64_u64__) { 0xb87d95280b21d778 },
++  (__ev64_u64__) { 0xc75e6edbbe4e83c0 },
++  (__ev64_u64__) { 0xbcac7b7a8c8600f4 },
++  (__ev64_u64__) { 0xdb25ab50c2e86344 },
++  (__ev64_u64__) { 0xe22efd35293dcd66 },
++  (__ev64_u64__) { 0xe79f81947670a45e },
++  (__ev64_u64__) { 0xf619e47ff9742c2 },
++  (__ev64_u64__) { 0xe618b74581306b4a },
++  (__ev64_u64__) { 0xde9a874211bd2aba },
++  (__ev64_u64__) { 0xa6b1c339b0ed83c8 },
++  (__ev64_u64__) { 0xb5f6d2887902ef90 },
++  (__ev64_u64__) { 0x8fc5327db15b24a0 },
++  (__ev64_u64__) { 0x903de459da24c2c0 },
++  (__ev64_u64__) { 0x9dbce84e11287af8 },
++  (__ev64_u64__) { 0x749494301cbda188 },
++  (__ev64_u64__) { 0x6f06b8d43e017030 },
++  (__ev64_u64__) { 0x68b99d47ee3bfad0 },
++  (__ev64_u64__) { 0x61f8a610ca0a1d44 },
++  (__ev64_u64__) { 0x4b3b0793a5e82f7a },
++  (__ev64_u64__) { 0x4dba9872d3d2996c },
++  (__ev64_u64__) { 0x3342593ab16231ca },
++  (__ev64_u64__) { 0x8034da9cd9c3532c },
++  (__ev64_u64__) { 0x77c2cb4a1924aed0 },
++  (__ev64_u64__) { 0x8a75ca7a54e3eab0 },
++  (__ev64_u64__) { 0x67dff32ac0cbe484 },
++  (__ev64_u64__) { 0xae66f6af00487bb4 },
++  (__ev64_u64__) { 0xa63b579c208cf20c },
++  (__ev64_u64__) { 0x796605ff4e51792c },
++  (__ev64_u64__) { 0x9fdb596d654632b4 },
++  (__ev64_u64__) { 0xea9b1eeef734cf64 },
++  (__ev64_u64__) { 0xe0491d2492d045c0 },
++  (__ev64_u64__) { 0xeeadc5306e7d9c58 },
++  (__ev64_u64__) { 0xea971ad320963ce0 },
++  (__ev64_u64__) { 0xf88b148dbeb828ec },
++  (__ev64_u64__) { 0xba1e2c52a9971f94 },
++  (__ev64_u64__) { 0xab4807d183475868 },
++  (__ev64_u64__) { 0x8d0d8288807b3ad6 },
++  (__ev64_u64__) { 0xaf7ed2f1f8bbaaa6 },
++  (__ev64_u64__) { 0x9bceb823cc633c0a },
++  (__ev64_u64__) { 0xade99c3ed493900a },
++  (__ev64_u64__) { 0xc88c989cb8b0df06 },
++  (__ev64_u64__) { 0x3be7fc119ad9c01e },
++  (__ev64_u64__) { 0xd4f1f3ffd62c9da },
++  (__ev64_u64__) { 0x2496acdc28ddcebe },
++  (__ev64_u64__) { 0x28ad2795b66f5f6e },
++  (__ev64_u64__) { 0x399911259d1c856a },
++  (__ev64_u64__) { 0x474f79c3577cb55a },
++  (__ev64_u64__) { 0x1deddfca5cb78202 },
++  (__ev64_u64__) { 0x178730604a2550aa },
++  (__ev64_u64__) { 0x33a0aaf9663a3fa2 },
++  (__ev64_u64__) { 0x427d63bff999d22a },
++  (__ev64_u64__) { 0xe93ce14b1e0e348e },
++  (__ev64_u64__) { 0x40187f9eeb7820fe },
++  (__ev64_u64__) { 0x200f98a634c60d0c },
++  (__ev64_u64__) { 0xba73b7e326cd41e4 },
++  (__ev64_u64__) { 0x97d748cdad2fbb74 },
++  (__ev64_u64__) { 0x67595ec476f74080 },
++  (__ev64_u64__) { 0x3ea9ccebf38460be },
++  (__ev64_u64__) { 0x6aca87e324141da2 },
++  (__ev64_u64__) { 0x6bb0286011f212ea },
++  (__ev64_u64__) { 0x77427a2db43d8632 },
++  (__ev64_u64__) { 0x76ef100587b9c3f6 },
++  (__ev64_u64__) { 0x69b2afc688d94cb2 },
++  (__ev64_u64__) { 0xa72392b7621be1ee },
++  (__ev64_u64__) { 0x9c1c4cd08c7a370e },
++  (__ev64_u64__) { 0xee5749eca100ec7a },
++  (__ev64_u64__) { 0xc3448f32e89091d4 },
++  (__ev64_u64__) { 0xc01423785bb5a71e },
++  (__ev64_u64__) { 0x8eceb23008fce98c },
++  (__ev64_u64__) { 0x907613e6835d2fcc },
++
++};
++#endif // __SPE__
++
++int evmwsmfaa_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u64__ regA asm ("30");
++  register __ev64_u64__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++  __ev64_u64__ *ops;
++
++  // Initialize the ACC.
++  regA = (__ev64_u64__) { 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA1u64); i++) {
++
++    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
++    // by allocating 4 __ev64_u64__'s - not sure, why so?
++    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
++    // e500v2 and Classic Power).
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u64__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA1u64[i];
++    ops[2] = rB1u64[i];
++
++#ifdef __SPE__
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwsmfaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmwsmfaa_baseline[i][0]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeef;                     // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                       // Invalid read detected?
++#if 0                                        // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  //       [ sigma i : (0 <= i and i < 5) : (1/4^(i+1)) ] == (341/1024)
++  //
++  // i.e. that:
++  //
++  // 0.0 + [ sigma i : (0 <= i and i < 5) : (1/4^(i+1)) ] == (341/1024)
++  //
++  // Note: +(341/1024) == 0x2aa0000000000000
++  //////////////////////////////////////////////////////////////////////////////
++
++  // Load the 0.0 into the ACC,
++  // Initialize the ACC.
++  regA = (__ev64_u64__) { 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++
++  // Now, compute the summation:
++  for (i = 0; i < 5; i++) {
++    regA = powers_of_half[i];
++    regB = powers_of_half[i];
++    asm volatile ("evmwsmfaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++  }
++#ifdef GEN_BASELINE
++  printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++  VERIFY(regD[0] == 0x2aa0000000000000);
++#endif
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmfaa_asm, "evmwsmfaa");
++
++#ifdef __SPE__
++__ev64_u64__ evmwsmf_baseline[] = {
++
++  (__ev64_u64__) { 0xc15eda3472d209f4 },
++  (__ev64_u64__) { 0xd90766b7c855d3e2 },
++  (__ev64_u64__) { 0x4da090e309617110 },
++  (__ev64_u64__) { 0x5d951b7a39c59180 },
++  (__ev64_u64__) { 0xf741ec92d3051dcc },
++  (__ev64_u64__) { 0xff6b4920424f164e },
++  (__ev64_u64__) { 0x9e567689de03acbc },
++  (__ev64_u64__) { 0x1aedc3a2620724b8 },
++  (__ev64_u64__) { 0xde9306b4373e32f8 },
++  (__ev64_u64__) { 0xf7111e3c6e576908 },
++  (__ev64_u64__) { 0xea85771b72f25fb4 },
++  (__ev64_u64__) { 0xb6d0ec68c066a354 },
++  (__ev64_u64__) { 0xff93627e287dc800 },
++  (__ev64_u64__) { 0xfee0763763f328f8 },
++  (__ev64_u64__) { 0xf961358848fe6004 },
++  (__ev64_u64__) { 0xf98ace10d26e05d8 },
++  (__ev64_u64__) { 0xf623549ba12c0e48 },
++  (__ev64_u64__) { 0xb719b933e324094 },
++  (__ev64_u64__) { 0xd7816fd730f9d7e },
++  (__ev64_u64__) { 0x2fafa91663eadc64 },
++  (__ev64_u64__) { 0x3aa1e51b031ea00 },
++  (__ev64_u64__) { 0xf38b15c547d3ff28 },
++  (__ev64_u64__) { 0x2d805579cd3b2d88 },
++  (__ev64_u64__) { 0x5edf100dc95e634 },
++  (__ev64_u64__) { 0xf2bbfc86a9bc1ea },
++  (__ev64_u64__) { 0x8d484b174f71e8c4 },
++  (__ev64_u64__) { 0x83ee9b9c00b9000 },
++  (__ev64_u64__) { 0xec15a5d5c047d6e4 },
++  (__ev64_u64__) { 0xff906f7c2f8cb4b4 },
++  (__ev64_u64__) { 0xf628df390348c284 },
++  (__ev64_u64__) { 0xfd5e012dc8e3a10 },
++  (__ev64_u64__) { 0x661667688c65c2e },
++  (__ev64_u64__) { 0x1497f513ec0d6f18 },
++  (__ev64_u64__) { 0xc4be084f2c786b2c },
++  (__ev64_u64__) { 0xd9e9bbceb1ddbab0 },
++  (__ev64_u64__) { 0xc7e553972524d774 },
++  (__ev64_u64__) { 0x12bde5e2ecb51400 },
++  (__ev64_u64__) { 0xe361e1a71ad8a288 },
++  (__ev64_u64__) { 0x398ba8d3a0d9bf80 },
++  (__ev64_u64__) { 0x40516df0a2741098 },
++  (__ev64_u64__) { 0xff9af1902fe531f0 },
++  (__ev64_u64__) { 0x9f2a1f3b80a3d70 },
++  (__ev64_u64__) { 0x9266bc5ce8dfad0c },
++  (__ev64_u64__) { 0xf9746e13a1ebef78 },
++  (__ev64_u64__) { 0xe6d854e1459b9b98 },
++  (__ev64_u64__) { 0x3fa8566598b0e0a0 },
++  (__ev64_u64__) { 0x1e23e690855f35fe },
++  (__ev64_u64__) { 0xab710834c50d03c },
++  (__ev64_u64__) { 0xa66de148ecfd1ef0 },
++  (__ev64_u64__) { 0xbee7522a41cf980 },
++  (__ev64_u64__) { 0xe2cda6e5f574615c },
++  (__ev64_u64__) { 0x7a42a0c7020e5bc },
++  (__ev64_u64__) { 0xea9ca1c4566e970 },
++  (__ev64_u64__) { 0xf8ea29b90f682af0 },
++  (__ev64_u64__) { 0x27af7be6a3efbc28 },
++  (__ev64_u64__) { 0x2438eebc343311e8 },
++  (__ev64_u64__) { 0xd1fc2c6da155cf2c },
++  (__ev64_u64__) { 0xe8e71d126dfe8f38 },
++  (__ev64_u64__) { 0x77e20e687685628 },
++  (__ev64_u64__) { 0xb14688ad728cead6 },
++  (__ev64_u64__) { 0xecc5e128d1c9ee8c },
++  (__ev64_u64__) { 0x2e0a3f2c4e202252 },
++  (__ev64_u64__) { 0x10c9d4116313d890 },
++  (__ev64_u64__) { 0xf816254776ec180 },
++  (__ev64_u64__) { 0xb60f444153b929a4 },
++  (__ev64_u64__) { 0xfd4c6b8f88db4dfa },
++  (__ev64_u64__) { 0x2162684961c94a18 },
++  (__ev64_u64__) { 0x4b5c69ca21517500 },
++  (__ev64_u64__) { 0xfc7da1f971a20c70 },
++  (__ev64_u64__) { 0x10d3cc0254c98e0 },
++  (__ev64_u64__) { 0xac56fec46963a408 },
++  (__ev64_u64__) { 0x6d23ff4779a9d0e },
++  (__ev64_u64__) { 0x742ff56a455106a8 },
++  (__ev64_u64__) { 0xb757af5ab2fe020e },
++  (__ev64_u64__) { 0x3a574d494dbf7290 },
++  (__ev64_u64__) { 0xf73b886c9386d0c0 },
++  (__ev64_u64__) { 0xb363ad3c1996785a },
++  (__ev64_u64__) { 0x4e6227920362a4a6 },
++  (__ev64_u64__) { 0xeb127049e06f44c2 },
++  (__ev64_u64__) { 0xf105ece022edefe },
++  (__ev64_u64__) { 0xe27fde21e67a3286 },
++  (__ev64_u64__) { 0xfe19146998f09fd0 },
++  (__ev64_u64__) { 0xe93352cf8f4f342 },
++  (__ev64_u64__) { 0x6c0dc233e6a4686 },
++  (__ev64_u64__) { 0x6c131c6319a7d4c },
++  (__ev64_u64__) { 0x931646315737ba4 },
++  (__ev64_u64__) { 0x855a24ceeed7f44 },
++  (__ev64_u64__) { 0xefce81d55c138532 },
++  (__ev64_u64__) { 0xe1dddc892af5458e },
++  (__ev64_u64__) { 0x58236fd3a3fe4d6 },
++  (__ev64_u64__) { 0xff0c1d9b1c7b495c },
++  (__ev64_u64__) { 0xfccdd96e0b8e3318 },
++  (__ev64_u64__) { 0xdf90f68e2c898c00 },
++  (__ev64_u64__) { 0x201c35db90600aa4 },
++  (__ev64_u64__) { 0xfe2a710e807da64a },
++  (__ev64_u64__) { 0xcf656216748858f0 },
++  (__ev64_u64__) { 0xa7d1666412d9434 },
++  (__ev64_u64__) { 0x24328a292a4d2da6 },
++  (__ev64_u64__) { 0xf771e537416122e6 },
++  (__ev64_u64__) { 0xb847b18889d6d794 },
++  (__ev64_u64__) { 0x7d673d1ab08a062 },
++  (__ev64_u64__) { 0xfb60d48753184f42 },
++  (__ev64_u64__) { 0x1f6b2f94a67df934 },
++  (__ev64_u64__) { 0xd8ada6f2c6cd8896 },
++  (__ev64_u64__) { 0x574da2a262f3d58 },
++  (__ev64_u64__) { 0x198be0b244b3ba18 },
++  (__ev64_u64__) { 0xed38ba989edc7218 },
++  (__ev64_u64__) { 0x97df1e8d2c0b56e },
++  (__ev64_u64__) { 0xf2b8fc7697410fa0 },
++  (__ev64_u64__) { 0xf02063891cc94a80 },
++  (__ev64_u64__) { 0x1ae1d7a4f1fd4456 },
++  (__ev64_u64__) { 0x4082b6bef123d738 },
++  (__ev64_u64__) { 0xd201ddd155a495c0 },
++  (__ev64_u64__) { 0xb001bf9ce96ac24 },
++  (__ev64_u64__) { 0x206644739d568516 },
++  (__ev64_u64__) { 0xb1ee9881917feab4 },
++  (__ev64_u64__) { 0x25546ec7b73983ea },
++  (__ev64_u64__) { 0x24325ad23659e0f6 },
++  (__ev64_u64__) { 0x1ea1568f402205c0 },
++  (__ev64_u64__) { 0xe9638b5d5c3e4b70 },
++  (__ev64_u64__) { 0xefa98bef557c3e24 },
++  (__ev64_u64__) { 0xda7999ce60ed001e },
++  (__ev64_u64__) { 0xfc6457e27d28be0e },
++  (__ev64_u64__) { 0xf26f1e8643635750 },
++  (__ev64_u64__) { 0xf94735a0f4be4e9c },
++  (__ev64_u64__) { 0xfe87face89e5dfdc },
++  (__ev64_u64__) { 0xff9252969ea4212 },
++  (__ev64_u64__) { 0xf61fae308a2a3690 },
++  (__ev64_u64__) { 0xf1a0d547b60ca0cc },
++  (__ev64_u64__) { 0xa23b32a5c52ad46 },
++  (__ev64_u64__) { 0x3c682b1686516d8 },
++  (__ev64_u64__) { 0xf39becd9be214e40 },
++  (__ev64_u64__) { 0x2e4c7e9b1bb3cd68 },
++  (__ev64_u64__) { 0x87501a8457c0022 },
++  (__ev64_u64__) { 0xad71539c5c058b0 },
++  (__ev64_u64__) { 0x3a722e028b49e950 },
++  (__ev64_u64__) { 0x11ae957ba5698298 },
++  (__ev64_u64__) { 0x2c92faf61f1f6cfe },
++  (__ev64_u64__) { 0x201fdbc5e5a31080 },
++  (__ev64_u64__) { 0xc95003d98f942a5e },
++  (__ev64_u64__) { 0xf0ddb4c3b416d5d2 },
++  (__ev64_u64__) { 0xfbe38e0d6fde586c },
++  (__ev64_u64__) { 0xfe5da3314a4d6d42 },
++  (__ev64_u64__) { 0x251e5b6bd74ae9b6 },
++  (__ev64_u64__) { 0xeac12a224e1c8a80 },
++  (__ev64_u64__) { 0x1d75524a082b918 },
++  (__ev64_u64__) { 0xc3cc428950a53fa8 },
++  (__ev64_u64__) { 0x1ec4de08bbfb8c4 },
++  (__ev64_u64__) { 0x3f78cad88d2a8eb8 },
++  (__ev64_u64__) { 0xd5749e198a16bc38 },
++  (__ev64_u64__) { 0x123386ec635214a0 },
++  (__ev64_u64__) { 0x171e2e8586a36a40 },
++  (__ev64_u64__) { 0x3400bf066203290 },
++  (__ev64_u64__) { 0x10a99a290d7e4620 },
++  (__ev64_u64__) { 0xaa874a521be7674 },
++  (__ev64_u64__) { 0x94bf1734640878 },
++  (__ev64_u64__) { 0x10ec9b814ab2a10 },
++  (__ev64_u64__) { 0xddf39eba8fa83310 },
++  (__ev64_u64__) { 0xfc55519a5dbb9e20 },
++  (__ev64_u64__) { 0x94da912fd39f2846 },
++  (__ev64_u64__) { 0x42f447f8dbde5d68 },
++  (__ev64_u64__) { 0x1b60634793ab4528 },
++  (__ev64_u64__) { 0xf2e996f191a8fbfa },
++  (__ev64_u64__) { 0x983ccfc5774b5a90 },
++  (__ev64_u64__) { 0xfafe67d833ae7e90 },
++  (__ev64_u64__) { 0x174e45749cd4f0d8 },
++  (__ev64_u64__) { 0xe270145a6148ee40 },
++  (__ev64_u64__) { 0x67581e3733330ae },
++  (__ev64_u64__) { 0xb2a0c8e688be07d2 },
++  (__ev64_u64__) { 0x36eea60a48fffdec },
++  (__ev64_u64__) { 0x2b011b16524c9dc0 },
++  (__ev64_u64__) { 0x1154ed3ac5b217f4 },
++  (__ev64_u64__) { 0xd67cd19a170c94d4 },
++  (__ev64_u64__) { 0x29ecef99accc7db4 },
++  (__ev64_u64__) { 0xf2762958739c162c },
++  (__ev64_u64__) { 0x2f08619c9bdb0912 },
++  (__ev64_u64__) { 0x3fe37648f2e364be },
++  (__ev64_u64__) { 0xb0cbb8ab961b175c },
++  (__ev64_u64__) { 0x3cb1dec844cefdb4 },
++  (__ev64_u64__) { 0xf435d5cc6dba499c },
++  (__ev64_u64__) { 0x2166100b626ef92c },
++  (__ev64_u64__) { 0xfdd5a453537aa45c },
++  (__ev64_u64__) { 0x1db553a1a946a290 },
++  (__ev64_u64__) { 0xfd80fe5629eddefa },
++  (__ev64_u64__) { 0xbd638513ec291ba0 },
++  (__ev64_u64__) { 0xad27d88c64c9b6d0 },
++  (__ev64_u64__) { 0xdb2e8f82bf13776 },
++  (__ev64_u64__) { 0xee0d9b3b32cac48 },
++  (__ev64_u64__) { 0xf54e0c9ece377d34 },
++  (__ev64_u64__) { 0x1e792fd636626250 },
++  (__ev64_u64__) { 0x70951e466556a22 },
++  (__ev64_u64__) { 0x570845f4d32d6f8 },
++  (__ev64_u64__) { 0x27c21cb389269e64 },
++  (__ev64_u64__) { 0xd6b718fd81992888 },
++  (__ev64_u64__) { 0xf881cffc908cbf70 },
++  (__ev64_u64__) { 0xc8173bf79f30590e },
++  (__ev64_u64__) { 0xf450f4ec8156bc8 },
++  (__ev64_u64__) { 0xd9ce5ff538583510 },
++  (__ev64_u64__) { 0x78b1dc28c99e20 },
++  (__ev64_u64__) { 0xd7f03f43703b838 },
++  (__ev64_u64__) { 0xd6d7abe20b952690 },
++  (__ev64_u64__) { 0xfa7224a42143cea8 },
++  (__ev64_u64__) { 0xf9b2e473b03a8aa0 },
++  (__ev64_u64__) { 0xf93f08c8dbce2274 },
++  (__ev64_u64__) { 0xe9426182dbde1236 },
++  (__ev64_u64__) { 0x27f90df2dea69f2 },
++  (__ev64_u64__) { 0xe587c0c7dd8f985e },
++  (__ev64_u64__) { 0x4cf2816228612162 },
++  (__ev64_u64__) { 0xf78df0ad3f615ba4 },
++  (__ev64_u64__) { 0x12b2ff303bbf3be0 },
++  (__ev64_u64__) { 0xdd6a28b06be7f9d4 },
++  (__ev64_u64__) { 0x468703843f7c9730 },
++  (__ev64_u64__) { 0xf7d460ed20447658 },
++  (__ev64_u64__) { 0xd32aae632dc48720 },
++  (__ev64_u64__) { 0x2675536e16f4b988 },
++  (__ev64_u64__) { 0x4abfc58191ee9cb0 },
++  (__ev64_u64__) { 0xf5adfe359b9b765c },
++  (__ev64_u64__) { 0xe64a80bdbad5698 },
++  (__ev64_u64__) { 0xfbe955a2b218a088 },
++  (__ev64_u64__) { 0xdf3f9ba9e21ec0c },
++  (__ev64_u64__) { 0xc19317c4eadef6a8 },
++  (__ev64_u64__) { 0xf129db7ed9b038d4 },
++  (__ev64_u64__) { 0xe1c57ab6fd33e26e },
++  (__ev64_u64__) { 0x2271506978406fd0 },
++  (__ev64_u64__) { 0xec4fe531d3a79164 },
++  (__ev64_u64__) { 0x121ae41b08305400 },
++  (__ev64_u64__) { 0x1aa2fc5de41d4efc },
++  (__ev64_u64__) { 0x735b6374e228e118 },
++  (__ev64_u64__) { 0xd167232e628909bc },
++  (__ev64_u64__) { 0x17478d9c2b7b04e4 },
++  (__ev64_u64__) { 0x4167ab98d9190b0 },
++  (__ev64_u64__) { 0x10ebe98fe6ad25fc },
++  (__ev64_u64__) { 0xdb6689dba602ff0 },
++  (__ev64_u64__) { 0xd69e6607053acca8 },
++  (__ev64_u64__) { 0xf9995095ed6dcea8 },
++  (__ev64_u64__) { 0x1c197a991c14eef8 },
++  (__ev64_u64__) { 0xedcb8c6935f9288 },
++  (__ev64_u64__) { 0xa6bf7d8b24746264 },
++  (__ev64_u64__) { 0x56db9e53cd69ec70 },
++  (__ev64_u64__) { 0xdff71907494dec0e },
++  (__ev64_u64__) { 0x9a641f3cf20734d8 },
++  (__ev64_u64__) { 0xdd6390ea86627990 },
++  (__ev64_u64__) { 0xcf8215f6c9c7850c },
++  (__ev64_u64__) { 0xd7506e277c8d203e },
++  (__ev64_u64__) { 0x2c20baf7308fbce4 },
++  (__ev64_u64__) { 0xe5a07cedddf548 },
++  (__ev64_u64__) { 0xb9251cda24b7348 },
++  (__ev64_u64__) { 0xffac95d7d37c3dc4 },
++  (__ev64_u64__) { 0xf2c39fc1011f88bc },
++  (__ev64_u64__) { 0x3d70e2f0d942953c },
++  (__ev64_u64__) { 0xf4f8ba192a5e5520 },
++  (__ev64_u64__) { 0x523afd1c1486b56c },
++  (__ev64_u64__) { 0xd4ed4546478fa55a },
++  (__ev64_u64__) { 0xfccf94457325154a },
++  (__ev64_u64__) { 0xceba8eb7ad47426e },
++  (__ev64_u64__) { 0x1a761b67a604640 },
++
++};
++#endif // __SPE__
++
++int evmwsmf_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u64__ regA asm ("30");
++  register __ev64_u64__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++  __ev64_u64__ *ops;
++  __ev64_u64__ res[] = {
++
++    (__ev64_u64__) { 0xe000000000000000 }, // -(1/2^2)
++    (__ev64_u64__) { 0xf800000000000000 }, // -(1/4^2)
++    (__ev64_u64__) { 0xfe00000000000000 }, // -(1/8^2)
++    (__ev64_u64__) { 0xff80000000000000 }, // -(1/16^2)
++    (__ev64_u64__) { 0xffd8000000000000 }, // -(1/32^2)
++    (__ev64_u64__) { 0xfff8000000000000 }, // -(1/64^2)
++    (__ev64_u64__) { 0xfffe000000000000 }, // -(1/128^2)
++    (__ev64_u64__) { 0xffff800000000000 }, // -(1/256^2)
++    (__ev64_u64__) { 0xffffd80000000000 }, // -(1/512^2)
++    (__ev64_u64__) { 0xfffff80000000000 }, // -(1/1024^2)
++    (__ev64_u64__) { 0xfffffe0000000000 }, // -(1/2048^2)
++    (__ev64_u64__) { 0xffffff8000000000 }, // -(1/4096^2)
++    (__ev64_u64__) { 0xffffffd800000000 }, // -(1/8192^2)
++    (__ev64_u64__) { 0xfffffff800000000 }, // -(1/16284^2)
++    (__ev64_u64__) { 0xffffffe200000000 }, // -(1/32768^2)
++
++  };
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA1u64); i++) {
++
++    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
++    // by allocating 4 __ev64_u64__'s - not sure, why so?
++    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
++    // e500v2 and Classic Power).
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u64__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA1u64[i];
++    ops[2] = rB1u64[i];
++
++#ifdef __SPE__
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmwsmf_baseline[i][0]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeef;                     // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                       // Invalid read detected?
++#if 0                                        // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  // [ forall i : (0 <= i and i < 15) : (1/2^(i+1)) * -(1/2^(i+1)) ]
++  //
++  //                                  ==
++  //
++  //                           -(1/2^(2*(i+1)))
++  //
++  //////////////////////////////////////////////////////////////////////////////
++
++  for (i = 0; i < 15; i++) {
++    regA = powers_of_half[i];
++    regB = neg_powers_of_half[i];
++    asm volatile ("evmwsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == res[i][0]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmf_asm, "evmwsmf");
++
++#ifdef __SPE__
++__ev64_u64__ *evmwsmfa_baseline = evmwsmf_baseline;
++#endif // __SPE__
++
++int evmwsmfa_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u64__ regA asm ("30");
++  register __ev64_u64__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++  __ev64_u64__ *ops;
++  __ev64_u64__ res[] = {
++
++    (__ev64_u64__) { 0xe000000000000000 }, // -(1/2^2)
++    (__ev64_u64__) { 0xf800000000000000 }, // -(1/4^2)
++    (__ev64_u64__) { 0xfe00000000000000 }, // -(1/8^2)
++    (__ev64_u64__) { 0xff80000000000000 }, // -(1/16^2)
++    (__ev64_u64__) { 0xffd8000000000000 }, // -(1/32^2)
++    (__ev64_u64__) { 0xfff8000000000000 }, // -(1/64^2)
++    (__ev64_u64__) { 0xfffe000000000000 }, // -(1/128^2)
++    (__ev64_u64__) { 0xffff800000000000 }, // -(1/256^2)
++    (__ev64_u64__) { 0xffffd80000000000 }, // -(1/512^2)
++    (__ev64_u64__) { 0xfffff80000000000 }, // -(1/1024^2)
++    (__ev64_u64__) { 0xfffffe0000000000 }, // -(1/2048^2)
++    (__ev64_u64__) { 0xffffff8000000000 }, // -(1/4096^2)
++    (__ev64_u64__) { 0xffffffd800000000 }, // -(1/8192^2)
++    (__ev64_u64__) { 0xfffffff800000000 }, // -(1/16284^2)
++    (__ev64_u64__) { 0xffffffe200000000 }, // -(1/32768^2)
++
++  };
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA1u64); i++) {
++
++    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
++    // by allocating 4 __ev64_u64__'s - not sure, why so?
++    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
++    // e500v2 and Classic Power).
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u64__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA1u64[i];
++    ops[2] = rB1u64[i];
++
++#ifdef __SPE__
++    // Initialize the ACC.
++    regA = (__ev64_u64__) { 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmwsmfa_baseline[i][0]);
++#endif
++    // Verify that evmwsmfa wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmwsmfa_baseline[i][0]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeef;                     // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                       // Invalid read detected?
++#if 0                                        // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  // [ forall i : (0 <= i and i < 15) : (1/2^(i+1)) * -(1/2^(i+1)) ]
++  //
++  //                                  ==
++  //
++  //                           -(1/2^(2*(i+1)))
++  //
++  // *** Also verify that the result got written into the ACC. ***
++  //
++  //////////////////////////////////////////////////////////////////////////////
++
++  for (i = 0; i < 15; i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u64__) { 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = powers_of_half[i];
++    regB = neg_powers_of_half[i];
++    asm volatile ("evmwsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == res[i][0]);
++#endif
++    // Verify that evmwsmfa wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == res[i][0]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwsmfa_asm, "evmwsmfa");
++
++#ifdef __SPE__
++__ev64_u32__ evmwhsmf_baseline[] = {
++
++  (__ev64_u32__) { 0x3cf649b6, 0x2fd2a91 },
++  (__ev64_u32__) { 0x3cbaf6, 0x18acad1e },
++  (__ev64_u32__) { 0xfd51df76, 0x14d9f098 },
++  (__ev64_u32__) { 0x46f78b7, 0xf9841142 },
++  (__ev64_u32__) { 0x27b4aba4, 0x47062708 },
++  (__ev64_u32__) { 0xe23b409a, 0x35c65c54 },
++  (__ev64_u32__) { 0x2bccd29, 0x29f0a7be },
++  (__ev64_u32__) { 0x4d9a7177, 0xcfe76d0c },
++  (__ev64_u32__) { 0xef1d51df, 0x21382f99 },
++  (__ev64_u32__) { 0x2521dddf, 0xf200ad9 },
++  (__ev64_u32__) { 0xac55bd55, 0x15d2636f },
++  (__ev64_u32__) { 0x9c769662, 0xa626b63 },
++  (__ev64_u32__) { 0xfe8684fc, 0xd4f777d9 },
++  (__ev64_u32__) { 0xc79edbd3, 0xee21f8ba },
++  (__ev64_u32__) { 0xe9f6681e, 0x27644d34 },
++  (__ev64_u32__) { 0xdc451d62, 0xf7218d41 },
++  (__ev64_u32__) { 0xfefd1544, 0x66b24e2 },
++  (__ev64_u32__) { 0xc75841dc, 0x568f6c68 },
++  (__ev64_u32__) { 0xfcab6051, 0x1495993e },
++  (__ev64_u32__) { 0xec1a4e8b, 0xb296881 },
++  (__ev64_u32__) { 0x1b1f2b45, 0xa01e2d8 },
++  (__ev64_u32__) { 0x27300e8, 0x299d1431 },
++  (__ev64_u32__) { 0xb70057a0, 0x4aabc54c },
++  (__ev64_u32__) { 0x5b68c7f, 0xece59cc8 },
++  (__ev64_u32__) { 0xf7d938b4, 0xff8c1d1d },
++  (__ev64_u32__) { 0xf4c54bc6, 0x5b382abf },
++  (__ev64_u32__) { 0x5b4a1013, 0xcd1e3304 },
++  (__ev64_u32__) { 0x208cbd13, 0x7ba06c5 },
++  (__ev64_u32__) { 0xd7c1c192, 0xe18b36b2 },
++  (__ev64_u32__) { 0xbc5d0ea7, 0xf81fdc34 },
++  (__ev64_u32__) { 0xca21c270, 0x2b69e47d },
++  (__ev64_u32__) { 0xc1b4390f, 0x83b314c },
++  (__ev64_u32__) { 0x59fcca4, 0x2f6335fe },
++  (__ev64_u32__) { 0x6618d81, 0xf543f8d5 },
++  (__ev64_u32__) { 0xbcb62ce, 0x3834c8b },
++  (__ev64_u32__) { 0xf79c808e, 0x2aa62a6 },
++  (__ev64_u32__) { 0x1b90166, 0xbc883ac1 },
++  (__ev64_u32__) { 0xe10e7dc5, 0x82f733e },
++  (__ev64_u32__) { 0x1e486736, 0xe9a1b4a6 },
++  (__ev64_u32__) { 0xd65d4cd0, 0xbe052b44 },
++  (__ev64_u32__) { 0xf2ae1434, 0x146a2b2c },
++  (__ev64_u32__) { 0x31f01ba5, 0xffc57a80 },
++  (__ev64_u32__) { 0x2ebc50af, 0xd3d05848 },
++  (__ev64_u32__) { 0x100c858e, 0x1d2cf902 },
++  (__ev64_u32__) { 0x411c8edb, 0x1ff28619 },
++  (__ev64_u32__) { 0xfde24f00, 0xfdad8e34 },
++  (__ev64_u32__) { 0x597266a7, 0xd8ce84df },
++  (__ev64_u32__) { 0xe0fbd767, 0xbeaf5845 },
++  (__ev64_u32__) { 0xfe789a15, 0xa00b0cf },
++  (__ev64_u32__) { 0x664802b, 0x1651d552 },
++  (__ev64_u32__) { 0x92fc9722, 0x32545237 },
++  (__ev64_u32__) { 0xd10fb807, 0xde2e2bbd },
++  (__ev64_u32__) { 0x68eb858, 0xbca308e3 },
++  (__ev64_u32__) { 0xd1190ee, 0x1d5ca62f },
++  (__ev64_u32__) { 0xc7749c50, 0xb5f28819 },
++  (__ev64_u32__) { 0xea3c030b, 0xf5146dc3 },
++  (__ev64_u32__) { 0xef446be3, 0xdcca0316 },
++  (__ev64_u32__) { 0x32b1b4fd, 0xde3c5540 },
++  (__ev64_u32__) { 0x18ab2027, 0xfdc45f0b },
++  (__ev64_u32__) { 0xe951ae11, 0xfaddf6c3 },
++  (__ev64_u32__) { 0x386e433a, 0x1639a51a },
++  (__ev64_u32__) { 0x414e896, 0xd304be34 },
++  (__ev64_u32__) { 0xfd046fa4, 0xcfdd8c7f },
++  (__ev64_u32__) { 0x30395eb0, 0x34e8fee8 },
++  (__ev64_u32__) { 0xf922406f, 0xe82ac707 },
++  (__ev64_u32__) { 0xd377b0b2, 0x642440e },
++  (__ev64_u32__) { 0x7457091, 0xcae815dc },
++  (__ev64_u32__) { 0xf23e6000, 0xac08b2a },
++  (__ev64_u32__) { 0x31d6190a, 0x46baa385 },
++  (__ev64_u32__) { 0xea9b4eee, 0x53819eb },
++  (__ev64_u32__) { 0xb1fdc57e, 0xfe4a9215 },
++  (__ev64_u32__) { 0xe4cab7e7, 0xdc0a53b5 },
++  (__ev64_u32__) { 0x5842a9b8, 0xd0d1bd1d },
++  (__ev64_u32__) { 0x9d5a441, 0xf0912a95 },
++  (__ev64_u32__) { 0xf80e92b5, 0x719f098 },
++  (__ev64_u32__) { 0xe74ac7f9, 0xbd19d9d2 },
++  (__ev64_u32__) { 0x5343ff1, 0xd403c401 },
++  (__ev64_u32__) { 0xf25e43dd, 0x4bad3d1 },
++  (__ev64_u32__) { 0xf1b4f3c0, 0x17a3cdf7 },
++  (__ev64_u32__) { 0xf47bd835, 0xf6be7c36 },
++  (__ev64_u32__) { 0xadeee9e, 0xe72baa7b },
++  (__ev64_u32__) { 0xde8cbbdf, 0x3ac966b9 },
++  (__ev64_u32__) { 0xd65e7528, 0xa60f6cdf },
++  (__ev64_u32__) { 0xc8607029, 0xf7764f98 },
++  (__ev64_u32__) { 0xc47d1067, 0x2369291b },
++  (__ev64_u32__) { 0xfc03b5b6, 0x4d6cd98e },
++  (__ev64_u32__) { 0x273e9658, 0x91c0a56 },
++  (__ev64_u32__) { 0x72f6ef3d, 0x2c6f0735 },
++  (__ev64_u32__) { 0x7fef78, 0x44f8cc25 },
++  (__ev64_u32__) { 0xccc2cffd, 0x29918a0a },
++  (__ev64_u32__) { 0xd00784ab, 0xd6a5bf0d },
++  (__ev64_u32__) { 0x1d6cf928, 0xe903f11e },
++  (__ev64_u32__) { 0x3b5cc7e1, 0xb63040c1 },
++  (__ev64_u32__) { 0xe12eb2c5, 0xee01bba9 },
++  (__ev64_u32__) { 0x383e3991, 0xe4055b4b },
++  (__ev64_u32__) { 0xc9c97c69, 0x6d6b91b },
++  (__ev64_u32__) { 0xc65647f, 0xcc431265 },
++  (__ev64_u32__) { 0x6ab6fa9, 0xfca62738 },
++  (__ev64_u32__) { 0xa9ccaced, 0x90cc70a },
++  (__ev64_u32__) { 0xf31a093a, 0x39746a37 },
++  (__ev64_u32__) { 0xbe50c70d, 0xf8c53244 },
++  (__ev64_u32__) { 0xaed97961, 0x3e803b7b },
++  (__ev64_u32__) { 0x2a5d0fae, 0x182a1beb },
++  (__ev64_u32__) { 0x46872c0, 0x19c19f74 },
++  (__ev64_u32__) { 0xfedd7b12, 0x4bef2f2f },
++  (__ev64_u32__) { 0xf565016e, 0x16131891 },
++  (__ev64_u32__) { 0x3e1461c6, 0x9fc79269 },
++  (__ev64_u32__) { 0xfb2756e3, 0x26b60cc },
++  (__ev64_u32__) { 0x31836e, 0xd1ba9b },
++  (__ev64_u32__) { 0xe7c36d4d, 0xdeee41e6 },
++  (__ev64_u32__) { 0x23a4fc2e, 0xfdb991e },
++  (__ev64_u32__) { 0x3cfcb56, 0xde0d1860 },
++  (__ev64_u32__) { 0xd17c1d82, 0xf0c3bdb7 },
++  (__ev64_u32__) { 0x14ccdb8, 0x13bf7d12 },
++  (__ev64_u32__) { 0xd39abe74, 0xf8734f14 },
++  (__ev64_u32__) { 0xfaa2dcfd, 0x12ecf20c },
++  (__ev64_u32__) { 0x49e27d3, 0xf3b812d8 },
++  (__ev64_u32__) { 0xd5ae7032, 0xea7e9bfd },
++  (__ev64_u32__) { 0xba7e6fe8, 0x750461f },
++  (__ev64_u32__) { 0xfb7f7b29, 0xb1f47af4 },
++  (__ev64_u32__) { 0x63fe0e1, 0xf8e9da36 },
++  (__ev64_u32__) { 0xefd885d, 0x1095a7bc },
++  (__ev64_u32__) { 0x43f1c270, 0x31166fac },
++  (__ev64_u32__) { 0xf93045ea, 0xf1b987b7 },
++  (__ev64_u32__) { 0xf59a4097, 0x15625f85 },
++  (__ev64_u32__) { 0xf825fb7e, 0xc64ef025 },
++  (__ev64_u32__) { 0xf3b6792, 0x2ba5f69c },
++  (__ev64_u32__) { 0xfa2710f3, 0x10dd5a71 },
++  (__ev64_u32__) { 0xc92f581c, 0xfef1aa1e },
++  (__ev64_u32__) { 0x2147c718, 0x2609e82 },
++  (__ev64_u32__) { 0xca6de68a, 0x2a0c74fe },
++  (__ev64_u32__) { 0xf1b1062d, 0x60efe69 },
++  (__ev64_u32__) { 0x527f3714, 0x19fbe969 },
++  (__ev64_u32__) { 0xf753961e, 0x3330e },
++  (__ev64_u32__) { 0x4cf65b07, 0x16a98b44 },
++  (__ev64_u32__) { 0x5599066d, 0x2a42478 },
++  (__ev64_u32__) { 0xc9a83924, 0x2d9843af },
++  (__ev64_u32__) { 0xfe5a8eab, 0x13befce4 },
++  (__ev64_u32__) { 0xfdc4786a, 0x779aff1 },
++  (__ev64_u32__) { 0xfbf3e951, 0xfbb5177d },
++  (__ev64_u32__) { 0x5b87923, 0x513a6b },
++  (__ev64_u32__) { 0x10a231b9, 0x2b494ab0 },
++  (__ev64_u32__) { 0xdccf8bb8, 0xffc632eb },
++  (__ev64_u32__) { 0x528240f, 0x404e9fb },
++  (__ev64_u32__) { 0x1d95e3f7, 0xea279fb9 },
++  (__ev64_u32__) { 0xbb76f82, 0xf7335d18 },
++  (__ev64_u32__) { 0x3590c77, 0xbc4c6fbe },
++  (__ev64_u32__) { 0xda84dc94, 0xf1c1fbaa },
++  (__ev64_u32__) { 0x71801c1, 0xffd147fc },
++  (__ev64_u32__) { 0xb8fee8ec, 0xfa46a3f8 },
++  (__ev64_u32__) { 0x16d63a02, 0xa3e2ddd4 },
++  (__ev64_u32__) { 0x2aa5636f, 0xe761952e },
++  (__ev64_u32__) { 0xd290fe28, 0x23d8e104 },
++  (__ev64_u32__) { 0x11143869, 0x179d049 },
++  (__ev64_u32__) { 0x350ed900, 0x88044a9 },
++  (__ev64_u32__) { 0xf8162be9, 0x32dd87f8 },
++  (__ev64_u32__) { 0xdfb21bc0, 0x4b131af6 },
++  (__ev64_u32__) { 0x32b1de91, 0x5b5722df },
++  (__ev64_u32__) { 0xf4c48b3, 0x25f60172 },
++  (__ev64_u32__) { 0x1646e352, 0x25777d0e },
++  (__ev64_u32__) { 0xac2b2c, 0xfc827f0a },
++  (__ev64_u32__) { 0xbacb5a9, 0x1c20d853 },
++  (__ev64_u32__) { 0x3c9c6ee7, 0x416d06 },
++  (__ev64_u32__) { 0x2ca887c, 0x37165927 },
++  (__ev64_u32__) { 0x58c16feb, 0x3cfe684 },
++  (__ev64_u32__) { 0x463a09e, 0x2ebf96 },
++  (__ev64_u32__) { 0xfef286f0, 0x522367f5 },
++  (__ev64_u32__) { 0x32513f0, 0x107b4de3 },
++  (__ev64_u32__) { 0x6db38174, 0x1d1f9129 },
++  (__ev64_u32__) { 0x1b178cec, 0xb9fb2e54 },
++  (__ev64_u32__) { 0xdb75475, 0x4089c99f },
++  (__ev64_u32__) { 0x84a2c2, 0x4c774e2a },
++  (__ev64_u32__) { 0x1617c7c, 0xe3de2da5 },
++  (__ev64_u32__) { 0x3292ccab, 0x352bd00 },
++  (__ev64_u32__) { 0xe9963b1b, 0x2edd4dfc },
++  (__ev64_u32__) { 0xc229a0e2, 0x10565cc3 },
++  (__ev64_u32__) { 0x2141f0d, 0xae2842d7 },
++  (__ev64_u32__) { 0x27814b1f, 0xe8ea12ef },
++  (__ev64_u32__) { 0xd30929, 0x33e2bc },
++  (__ev64_u32__) { 0x564485a, 0x47a82422 },
++  (__ev64_u32__) { 0xf2b77614, 0x40e880b6 },
++  (__ev64_u32__) { 0x39ab5ca8, 0x31643f67 },
++  (__ev64_u32__) { 0x521eb30e, 0x2badbff5 },
++  (__ev64_u32__) { 0xfd2f2e5c, 0xc0dd2a6b },
++  (__ev64_u32__) { 0xec04739d, 0x36d566de },
++  (__ev64_u32__) { 0xc249fc78, 0xdb1cb958 },
++  (__ev64_u32__) { 0xd8297014, 0xb579d73a },
++  (__ev64_u32__) { 0xe940d783, 0xfbd2fd80 },
++  (__ev64_u32__) { 0xe83aaa4f, 0xfa76fdcf },
++  (__ev64_u32__) { 0xc16ccd21, 0x28a9f1a1 },
++  (__ev64_u32__) { 0xd84913d9, 0x5a408584 },
++  (__ev64_u32__) { 0xae5f3ce2, 0xbf1a5f1c },
++  (__ev64_u32__) { 0xb65ace27, 0x3244f4f4 },
++  (__ev64_u32__) { 0xe61df633, 0x347c9d3f },
++  (__ev64_u32__) { 0x4120c52, 0xfcc42a38 },
++  (__ev64_u32__) { 0x101ae910, 0xf7d3f3fc },
++  (__ev64_u32__) { 0xeafe5bf2, 0x4dad88bc },
++  (__ev64_u32__) { 0x4917aac0, 0xc540451a },
++  (__ev64_u32__) { 0xf4f4a859, 0x8a1d0dff },
++  (__ev64_u32__) { 0xe4fe7a78, 0xf3686cc4 },
++  (__ev64_u32__) { 0x290a28fd, 0x6053d681 },
++  (__ev64_u32__) { 0xd4674333, 0x2e83a1ab },
++  (__ev64_u32__) { 0x1d9e93e8, 0x405982fd },
++  (__ev64_u32__) { 0xf99a5c24, 0x333c663a },
++  (__ev64_u32__) { 0xe495021b, 0xe39a9102 },
++  (__ev64_u32__) { 0xf2a63e9e, 0x505ddbe },
++  (__ev64_u32__) { 0x3a34099a, 0xfbd8c084 },
++  (__ev64_u32__) { 0xfa55681b, 0xb6df26f3 },
++  (__ev64_u32__) { 0x3e8760, 0x1ce9f0 },
++  (__ev64_u32__) { 0x1955c74e, 0xf1f8fa08 },
++  (__ev64_u32__) { 0xfd68e996, 0x77788f3 },
++  (__ev64_u32__) { 0x16176180, 0x48457ab },
++  (__ev64_u32__) { 0x49f409f, 0xfdc1762a },
++  (__ev64_u32__) { 0x7c94aa, 0xd78dc24a },
++  (__ev64_u32__) { 0xc4099ac, 0x4c0d188 },
++  (__ev64_u32__) { 0x1cbf5ce5, 0x4fecb051 },
++  (__ev64_u32__) { 0x99ea636, 0xa7e821a8 },
++  (__ev64_u32__) { 0x261dda41, 0x34f23da7 },
++  (__ev64_u32__) { 0x25c13628, 0x26f336be },
++  (__ev64_u32__) { 0xfd80f181, 0xfa8cee72 },
++  (__ev64_u32__) { 0x1df67846, 0x9fc40cf },
++  (__ev64_u32__) { 0xa8971f6, 0x102eae86 },
++  (__ev64_u32__) { 0xbe3ba859, 0xf952877d },
++  (__ev64_u32__) { 0xcc0f54, 0xfce33a5d },
++  (__ev64_u32__) { 0xfc5e13d9, 0x4b80f79 },
++  (__ev64_u32__) { 0x34246112, 0xc53473ae },
++  (__ev64_u32__) { 0x525343ce, 0xed7f8a95 },
++  (__ev64_u32__) { 0x381fb56e, 0x439c5dd8 },
++  (__ev64_u32__) { 0xe56fbcbd, 0x27aca9a1 },
++  (__ev64_u32__) { 0xefb67f3f, 0xf9f96126 },
++  (__ev64_u32__) { 0xfea8ccdf, 0x1294363 },
++  (__ev64_u32__) { 0x12b0edf9, 0xcd16942b },
++  (__ev64_u32__) { 0x664c7b82, 0x1ec0b80b },
++  (__ev64_u32__) { 0xcf62a55, 0x868ca24 },
++  (__ev64_u32__) { 0xff7b02ba, 0x39767fe },
++  (__ev64_u32__) { 0x1d2782f, 0xc1e2574d },
++  (__ev64_u32__) { 0xe2d6c6b3, 0x431a179d },
++  (__ev64_u32__) { 0xd92d333b, 0xe85a318b },
++  (__ev64_u32__) { 0x2285eae9, 0x7661c59 },
++  (__ev64_u32__) { 0x28767224, 0x1eb7a5e5 },
++  (__ev64_u32__) { 0xef52d9cb, 0xf79b3346 },
++  (__ev64_u32__) { 0xac861438, 0xae413779 },
++  (__ev64_u32__) { 0x1d6ba870, 0xf90bf461 },
++  (__ev64_u32__) { 0xdf91caae, 0xe2c8a958 },
++  (__ev64_u32__) { 0x10c1a70e, 0xeeec2dce },
++  (__ev64_u32__) { 0x2ddaa318, 0x583eab5 },
++  (__ev64_u32__) { 0x351f3be, 0xfc40f497 },
++  (__ev64_u32__) { 0xb0ed238b, 0xedcf9814 },
++  (__ev64_u32__) { 0xeabbfc24, 0x308d07b5 },
++  (__ev64_u32__) { 0xc275172a, 0x1d3a1c2d },
++  (__ev64_u32__) { 0x42e046f, 0xef52a0e8 },
++  (__ev64_u32__) { 0xc0b10d2f, 0x4a115fdd },
++  (__ev64_u32__) { 0xe4161ee0, 0xaa9d889 },
++  (__ev64_u32__) { 0xf0ec0685, 0xff0a4850 },
++  (__ev64_u32__) { 0xc8d35dd8, 0xfbf4b4b9 },
++  (__ev64_u32__) { 0x610930da, 0xfd29083d },
++
++};
++#endif // __SPE__
++
++int evmwhsmf_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  __ev64_u32__ *ops;
++  __ev64_u32__ res[] = {
++
++    (__ev64_u32__) { 0xe0000000, 0xe0000000 }, // -(1/2^2)
++    (__ev64_u32__) { 0xf8000000, 0xf8000000 }, // -(1/4^2)
++    (__ev64_u32__) { 0xfe000000, 0xfe000000 }, // -(1/8^2)
++    (__ev64_u32__) { 0xff800000, 0xff800000 }, // -(1/16^2)
++    (__ev64_u32__) { 0xffd80000, 0xffd80000 }, // -(1/32^2)
++    (__ev64_u32__) { 0xfff80000, 0xfff80000 }, // -(1/64^2)
++    (__ev64_u32__) { 0xfffe0000, 0xfffe0000 }, // -(1/128^2)
++    (__ev64_u32__) { 0xffff8000, 0xffff8000 }, // -(1/256^2)
++    (__ev64_u32__) { 0xffffd800, 0xffffd800 }, // -(1/512^2)
++    (__ev64_u32__) { 0xfffff800, 0xfffff800 }, // -(1/1024^2)
++    (__ev64_u32__) { 0xfffffe00, 0xfffffe00 }, // -(1/2048^2)
++    (__ev64_u32__) { 0xffffff80, 0xffffff80 }, // -(1/4096^2)
++    (__ev64_u32__) { 0xffffffd8, 0xffffffd8 }, // -(1/8192^2)
++    (__ev64_u32__) { 0xfffffff8, 0xfffffff8 }, // -(1/16284^2)
++    (__ev64_u32__) { 0xffffffe2, 0xffffffe2 }, // -(1/32768^2)
++
++  };
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u32__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA2u32[i];
++    ops[2] = rB2u32[i];
++
++#ifdef __SPE__
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwhsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmwhsmf_baseline[i][0]);
++    VERIFY(regD[1] == evmwhsmf_baseline[i][1]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u32__) { 0xdeadbeef, 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeefdeadbeef;                         // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                                   // Invalid read detected?
++#if 0                                                    // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  // [ forall i : (0 <= i and i < 15) : (1/2^(i+1)) * -(1/2^(i+1)) ]
++  //
++  //                                  ==
++  //
++  //                           -(1/2^(2*(i+1)))
++  //
++  //////////////////////////////////////////////////////////////////////////////
++
++  for (i = 0; i < 15; i++) {
++    regA = (__ev64_u32__) { powers_of_half[i][0], powers_of_half[i][0] } ;
++    regB = (__ev64_u32__) { neg_powers_of_half[i][0], neg_powers_of_half[i][0] };
++    asm volatile ("evmwhsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == res[i][0]);
++    VERIFY(regD[1] == res[i][1]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhsmf_asm, "evmwhsmf");
++
++#ifdef __SPE__
++__ev64_u32__ *evmwhsmfa_baseline = evmwhsmf_baseline;
++#endif // __SPE__
++
++int evmwhsmfa_asm(void)
++{
++  int failures = 0;
++
++  // Be sure to verify that in addition to executing the emulated instruction,
++  // unfreed memory and incorrect (r&w) accesses around that instruction are
++  // detected too.
++
++#ifdef __SPE__
++  register __ev64_u32__ regA asm ("30");
++  register __ev64_u32__ regB asm ("29");
++  register __ev64_u32__ regD asm ("28");
++  __ev64_u32__ *ops;
++  __ev64_u32__ res[] = {
++
++    (__ev64_u32__) { 0xe0000000, 0xe0000000 }, // -(1/2^2)
++    (__ev64_u32__) { 0xf8000000, 0xf8000000 }, // -(1/4^2)
++    (__ev64_u32__) { 0xfe000000, 0xfe000000 }, // -(1/8^2)
++    (__ev64_u32__) { 0xff800000, 0xff800000 }, // -(1/16^2)
++    (__ev64_u32__) { 0xffd80000, 0xffd80000 }, // -(1/32^2)
++    (__ev64_u32__) { 0xfff80000, 0xfff80000 }, // -(1/64^2)
++    (__ev64_u32__) { 0xfffe0000, 0xfffe0000 }, // -(1/128^2)
++    (__ev64_u32__) { 0xffff8000, 0xffff8000 }, // -(1/256^2)
++    (__ev64_u32__) { 0xffffd800, 0xffffd800 }, // -(1/512^2)
++    (__ev64_u32__) { 0xfffff800, 0xfffff800 }, // -(1/1024^2)
++    (__ev64_u32__) { 0xfffffe00, 0xfffffe00 }, // -(1/2048^2)
++    (__ev64_u32__) { 0xffffff80, 0xffffff80 }, // -(1/4096^2)
++    (__ev64_u32__) { 0xffffffd8, 0xffffffd8 }, // -(1/8192^2)
++    (__ev64_u32__) { 0xfffffff8, 0xfffffff8 }, // -(1/16284^2)
++    (__ev64_u32__) { 0xffffffe2, 0xffffffe2 }, // -(1/32768^2)
++
++  };
++#else
++  uint64_t *ops;
++#endif // __SPE__
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA2u32); i++) {
++
++    ops = calloc(8,
++#ifdef __SPE__
++          sizeof (__ev64_u32__));
++#else
++          sizeof (uint64_t));
++#endif //  __SPE__
++
++    ops[1] = rA2u32[i];
++    ops[2] = rB2u32[i];
++
++#ifdef __SPE__
++    // Initialize the ACC.
++    regA = (__ev64_u32__) { 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = ops[1];
++    regB = ops[2];
++    asm volatile ("evmwhsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmwhsmfa_baseline[i][0]);
++#endif
++    // Verify that evmwhsmfa wrote into the ACC:
++    regD = (__ev64_u32__) { 0x0, 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmwhsmfa_baseline[i][0]);
++#endif
++#else
++    // NOP;
++#endif //  __SPE__
++
++#ifdef __SPE__
++    ops[0] = regD;
++#endif //  __SPE__
++
++    ops[17] =
++#ifdef __SPE__
++             (__ev64_u32__) { 0xdeadbeef };  // Invalid write detected?
++#else
++             0xdeadbeef;                     // Invalid write detected?
++#endif //  __SPE__
++    ops[3] = ops[-17];                       // Invalid read detected?
++#if 0                                        // Unfreed memory detected?
++    free (ops);
++#endif
++  }
++
++#ifdef __SPE__
++  //////////////////////////////////////////////////////////////////////////////
++  // While, we have a test above to verify that what we compute on the real CPU
++  // with this instruction, is what we compute on the 'synthetic' CPU, let us
++  // verify that we can do some fractional arithmetic that we can readily
++  // verify, so:
++  //
++  // Verify that:
++  //
++  // [ forall i : (0 <= i and i < 15) : (1/2^(i+1)) * -(1/2^(i+1)) ]
++  //
++  //                                  ==
++  //
++  //                           -(1/2^(2*(i+1)))
++  //
++  // *** Also verify that the result got written into the ACC. ***
++  //
++  //////////////////////////////////////////////////////////////////////////////
++
++  for (i = 0; i < 15; i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u32__) { 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = (__ev64_u32__) { powers_of_half[i][0], powers_of_half[i][0] } ;
++    regB = (__ev64_u32__) { neg_powers_of_half[i][0], neg_powers_of_half[i][0] };
++    asm volatile ("evmwhsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == res[i][0]);
++    VERIFY(regD[1] == res[i][1]);
++#endif
++    // Verify that evmwhsmfa wrote into the ACC:
++    regD = (__ev64_u32__) { 0x0, 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == res[i][0]);
++    VERIFY(regD[1] == res[i][1]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmwhsmfa_asm, "evmwhsmfa");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -9288,6 +11076,21 @@ test_t spe_isa_add_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
++
++  .type = table,
++  .description = "SPE ISA ACC Based Fractional Multiply Instructions Tests",
++  .table = {
++    F(evmwsmfan_asm),
++    F(evmwsmfaa_asm),
++    F(evmwsmf_asm),
++    F(evmwsmfa_asm),
++    F(evmwhsmf_asm),
++    F(evmwhsmfa_asm),
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -9302,6 +11105,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_ACC_based_add_insns_test_table,
+     &spe_isa_add_insns_test_table,
+     &spe_isa_ACC_based_multiply_insns_test_table,
++    &spe_isa_ACC_based_fractional_multiply_insns_test_table,
+     NULL
+   }
+ };
+@@ -9527,3 +11331,5 @@ int main(void)
+ //     upon raw values (ensure that this is so).
+ // 22. Add a switch --run-in-random-order i.e. the tests will run in a random order.
+ // 23. Add a switch --number-of-runs <number> to repeat the tests without exiting.
++// 24. GCC Bug? Table 4-2. New Tokens for Fixed-Point Data Types - the formats given in there do not work. The Example
++//     does not work. The format specifiers just get printed out as is.
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index be513d7..0030d32 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -4354,6 +4354,62 @@ void s64_dump (__ev64_s64__ a[], unsigned nelts)
+     printf ("  (__ev64_s64__) { 0x%llx },\n", a[i][0]);
+ 
+ }
++
++__ev64_u64__ powers_of_half[] = {
++
++  (__ev64_u64__) { 0x40000000 }, // 1/2
++  (__ev64_u64__) { 0x20000000 }, // 1/4
++  (__ev64_u64__) { 0x10000000 }, // 1/8
++
++  (__ev64_u64__) { 0x08000000 }, // 1/16
++  (__ev64_u64__) { 0x04000000 }, // 1/32
++  (__ev64_u64__) { 0x02000000 }, // 1/64
++  (__ev64_u64__) { 0x01000000 }, // 1/128
++
++  (__ev64_u64__) { 0x00800000 }, // 1/256
++  (__ev64_u64__) { 0x00400000 }, // 1/512
++  (__ev64_u64__) { 0x00200000 }, // 1/1024
++  (__ev64_u64__) { 0x00100000 }, // 1/2048
++
++  (__ev64_u64__) { 0x00080000 }, // 1/4096
++  (__ev64_u64__) { 0x00040000 }, // 1/8192
++  (__ev64_u64__) { 0x00020000 }, // 1/16384
++  (__ev64_u64__) { 0x00010000 }, // 1/32768
++
++};
++
++__ev64_u64__ neg_powers_of_half[] = {
++
++  (__ev64_u64__) { 0xc0000000 }, // -(1/2)
++  (__ev64_u64__) { 0xe0000000 }, // -(1/4)
++  (__ev64_u64__) { 0xf0000000 }, // -(1/8)
++
++  (__ev64_u64__) { 0xf8000000 }, // -(1/16)
++  (__ev64_u64__) { 0xfb000000 }, // -(1/32)
++  (__ev64_u64__) { 0xfe000000 }, // -(1/64)
++  (__ev64_u64__) { 0xff000000 }, // -(1/128)
++
++  (__ev64_u64__) { 0xff800000 }, // -(1/256)
++  (__ev64_u64__) { 0xffb00000 }, // -(1/512)
++  (__ev64_u64__) { 0xffe00000 }, // -(1/1024)
++  (__ev64_u64__) { 0xfff00000 }, // -(1/2048)
++
++  (__ev64_u64__) { 0xfff80000 }, // -(1/4096)
++  (__ev64_u64__) { 0xfffb0000 }, // -(1/8192)
++  (__ev64_u64__) { 0xfffe0000 }, // -(1/16384)
++  (__ev64_u64__) { 0xfff10000 }, // -(1/32768)
++
++  (__ev64_u64__) { 0xffff8000 }, // -(1/65536)
++
++};
++
++#else
++const uint64_t rA1u64[256];
++const uint64_t rB1u64[256];
++const uint64_t rD1u64[256];
++const uint64_t rA2u32[256];
++const uint64_t rB2u32[256];
++const uint64_t rD2u32[256];
+ #endif
+ 
+ const unsigned int rA1u32[] = {
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 391eac1..c8239d1 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:9495)
++   by 0x........: main (test_spe.c:11299)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,12 +13,178 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:9495)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwsmfan_asm (test_spe.c:9376)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwsmfan_asm (test_spe.c:9382)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 184 bytes inside a block of size 256 free'd
++   at 0x........: free (vg_replace_malloc.c:...)
++   by 0x........: simple_loop (test_spe.c:333)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwsmfaa_asm (test_spe.c:9750)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwsmfaa_asm (test_spe.c:9756)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 8 bytes before a block of size 64 alloc'd
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfan_asm (test_spe.c:9349)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwsmf_asm (test_spe.c:10136)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwsmf_asm (test_spe.c:10142)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 8 bytes before a block of size 64 alloc'd
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfaa_asm (test_spe.c:9723)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwsmfa_asm (test_spe.c:10267)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwsmfa_asm (test_spe.c:10273)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 8 bytes before a block of size 64 alloc'd
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmf_asm (test_spe.c:10109)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwhsmf_asm (test_spe.c:10656)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwhsmf_asm (test_spe.c:10662)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 8 bytes before a block of size 64 alloc'd
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfa_asm (test_spe.c:10229)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++Invalid write of size 8
++   at 0x........: evmwhsmfa_asm (test_spe.c:10784)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is not stack'd, malloc'd or (recently) free'd
++
++Invalid read of size 8
++   at 0x........: evmwhsmfa_asm (test_spe.c:10790)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++ Address 0x........ is 8 bytes before a block of size 64 alloc'd
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmf_asm (test_spe.c:10628)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
+ 
+ 
+ HEAP SUMMARY:
+-    in use at exit: 40 bytes in 1 blocks
+-  total heap usage: 2 allocs, 1 frees, 296 bytes allocated
++    in use at exit: 98,344 bytes in 1,537 blocks
++  total heap usage: 1,538 allocs, 1 frees, 98,600 bytes allocated
+ 
+ 40 bytes in 1 blocks are definitely lost in loss record ... of ...
+    at 0x........: malloc (vg_replace_malloc.c:...)
+@@ -27,14 +193,74 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:9495)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfan_asm (test_spe.c:9349)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfaa_asm (test_spe.c:9723)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmf_asm (test_spe.c:10109)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwsmfa_asm (test_spe.c:10229)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmf_asm (test_spe.c:10628)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:11299)
+ 
+ LEAK SUMMARY:
+-   definitely lost: 40 bytes in 1 blocks
++   definitely lost: 98,344 bytes in 1,537 blocks
+    indirectly lost: 0 bytes in 0 blocks
+      possibly lost: 0 bytes in 0 blocks
+    still reachable: 0 bytes in 0 blocks
+         suppressed: 0 bytes in 0 blocks
+ 
+ For counts of detected and suppressed errors, rerun with: -v
+-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
++ERROR SUMMARY: 3080 errors from 20 contexts (suppressed: 0 from 0)
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 3f086f2..3696198 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -138,6 +138,13 @@ SPE Regression Tests: PASS
+ ....evmhesmiaaw: PASS
+ ....evmhesmi: PASS
+ ....evmhesmia: PASS
++...SPE ISA ACC Based Fractional Multiply Instructions Tests: PASS
++....evmwsmfan: PASS
++....evmwsmfaa: PASS
++....evmwsmf: PASS
++....evmwsmfa: PASS
++....evmwhsmf: PASS
++....evmwhsmfa: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 9af0548..ccd0bb1 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 77 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 74 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 72 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 73 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 77 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 77 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 76 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 77 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 17113 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 29767 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 17676 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 30327 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 22376 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  2745 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 26880 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  7227 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 12027 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24642 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 17365 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 29997 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0040-Implement-SPE-Instructions.patch b/recipes-devtools/valgrind/files/0040-Implement-SPE-Instructions.patch
new file mode 100644
index 0000000..7618e14
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0040-Implement-SPE-Instructions.patch
@@ -0,0 +1,3029 @@
+From 12f88b3a0bd67e7776c4706d12bf2343d0abef3d Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Mar 2013 08:00:46 -0700
+Subject: [PATCH 40/65] Implement SPE Instructions: {
+
+ evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw,
+ evmhesmf, evmhesmfa, evmhesmfaaw, evmhesmfanw
+
+}.
+---
+ VEX/priv/guest_ppc_defs.h                |   38 +
+ VEX/priv/guest_ppc_helpers.c             |  341 ++++++
+ VEX/priv/guest_ppc_toIR.c                |  248 ++++
+ memcheck/tests/ppc32/test_spe.c          | 1882 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |   54 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    8 +
+ regtest-power7-64.log                    |   34 +-
+ 7 files changed, 2561 insertions(+), 44 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 3319127..9581447 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -185,6 +185,44 @@ extern void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
+                                        UInt rD_off,
+                                        UInt rA_off,
+                                        UInt rB_off);
++extern void spe_dirtyhelper_evmhosmfanw ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhosmfaaw ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhosmfa ( VexGuestPPC32State* gst,
++                                        UInt ACC_off,
++                                        UInt rD_off,
++                                        UInt rA_off,
++                                        UInt rB_off);
++extern void spe_dirtyhelper_evmhosmf ( VexGuestPPC32State* gst,
++                                       UInt rD_off,
++                                       UInt rA_off,
++                                       UInt rB_off);
++extern void spe_dirtyhelper_evmhesmfanw ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhesmfaaw ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhesmfa ( VexGuestPPC32State* gst,
++                                        UInt ACC_off,
++                                        UInt rD_off,
++                                        UInt rA_off,
++                                        UInt rB_off);
++extern void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
++                                       UInt rD_off,
++                                       UInt rA_off,
++                                       UInt rB_off);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index cf3d583..16af8e6 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -493,6 +493,347 @@ IRExpr* guest_ppc64_spechelper ( HChar* function_name,
+    return NULL;
+ }
+ 
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhosmfanw ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhosmfanw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional
++  // and Accumulate Negative into Words, SPEPEM p5-168)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rT  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++  register __ev64_opaque__ rD  asm ("25");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rT[00:31] <- rA[16:31] Xsf rB[16:31]
++  // rT[32:63] <- rA[48:63] Xsf rB[48:63]
++  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[00:31] <- ACC[00:31] - rT[00:31]
++  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) - __ev_get_upper_s32(rT));
++  // rD[32:63] <- ACC[32:63] - rT[32:63]
++  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) - __ev_get_lower_s32(rT));
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhosmfaaw ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhosmfaaw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional
++  // and Accumulate into Words, SPEPEM p5-167)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rT  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++  register __ev64_opaque__ rD  asm ("25");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rT[00:31] <- rA[16:31] Xsf rB[16:31]
++  // rT[32:63] <- rA[48:63] Xsf rB[48:63]
++  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[00:31] <- ACC[00:31] + rT[00:31]
++  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) + __ev_get_upper_s32(rT));
++  // rD[32:63] <- ACC[32:63] + rT[32:63]
++  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) + __ev_get_lower_s32(rT));
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhosmfa ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhosmfa (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rD[00:31] <- rA[16:31] Xsf rB[16:31]
++  // rD[32:63] <- rA[48:63] Xsf rB[48:63]
++  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhosmf ( VexGuestPPC32State* gst,
++                                UInt rD_off,
++                                UInt rA_off,
++                                UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhosmf (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional, SPEPEM p5-166)
++
++  register __ev64_opaque__ rA asm ("29");
++  register __ev64_opaque__ rB asm ("28");
++  register __ev64_opaque__ rD asm ("27");
++
++  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rD[00:31] <- rA[16:31] Xsf rB[16:31]
++  // rD[32:63] <- rA[48:63] Xsf rB[48:63]
++  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhesmfanw ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhesmfanw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional
++  // and Accumulate Negative into Words, SPEPEM p5-146)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rT  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++  register __ev64_opaque__ rD  asm ("25");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rT[00:31] <- rA[00:15] Xsf rB[00:15]
++  // rT[32:63] <- rA[32:47] Xsf rB[32:47]
++  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[00:31] <- ACC[00:31] - rT[00:31]
++  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) - __ev_get_upper_s32(rT));
++  // rD[32:63] <- ACC[32:63] - rT[32:63]
++  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) - __ev_get_lower_s32(rT));
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhesmfaaw ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhesmfaaw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional
++  // and Accumulate into Words, SPEPEM p5-167)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rT  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++  register __ev64_opaque__ rD  asm ("25");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rT[00:31] <- rA[00:15] Xsf rB[00:15]
++  // rT[32:63] <- rA[32:47] Xsf rB[32:47]
++  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
++
++  // rD[00:31] <- ACC[00:31] + rT[00:31]
++  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) + __ev_get_upper_s32(rT));
++  // rD[32:63] <- ACC[32:63] + rT[32:63]
++  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) + __ev_get_lower_s32(rT));
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhesmfa ( VexGuestPPC32State* gst,
++                                 UInt ACC_off,
++                                 UInt rD_off,
++                                 UInt rA_off,
++                                 UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhesmfa (Vector Multiply Half Words, Even, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rD[00:31] <- rA[00:15] Xsf rB[00:15]
++  // rD[32:63] <- rA[32:47] Xsf rB[32:47]
++  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[0:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
++                                UInt rD_off,
++                                UInt rA_off,
++                                UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhesmf (Vector Multiply Half Words, Even, Signed, Modulo, Fractional, SPEPEM p5-166)
++
++  register __ev64_opaque__ rA asm ("29");
++  register __ev64_opaque__ rB asm ("28");
++  register __ev64_opaque__ rD asm ("27");
++
++  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read rA, rB from the Guest State:
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // rD[00:31] <- rA[00:15] Xsf rB[00:15]
++  // rD[32:63] <- rA[32:47] Xsf rB[32:47]
++  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++#endif // __SPE__
++  return;
++}
+ 
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 7ba382d..c1df7d7 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -14187,6 +14187,122 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      return False;
+   }
+   switch (opc2) {
++  case 0x42b:
++     // evmhesmfa (Vector Multiply Half Words, Even, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhesmfa",
++                            &spe_dirtyhelper_evmhesmfa,
++                            args);
++     DIP( "evmhesmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x42f:
++     // evmhosmfa (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhosmfa",
++                            &spe_dirtyhelper_evmhosmfa,
++                            args);
++     DIP( "evmhosmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x40b:
++     // evmhesmf (Vector Multiply Half Words, Even, Signed, Modulo, Fractional, SPEPEM p5-166)
++     args = mkIRExprVec_3 ( mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhesmf",
++                            &spe_dirtyhelper_evmhesmf,
++                            args);
++     DIP( "evmhesmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 3;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = rD_off;
++     d->fxState[0].size   = 2 * sizeof(UInt);
++     d->fxState[1].fx     = Ifx_Read;
++     d->fxState[1].offset = rA_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rB_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x40f:
++     // evmhosmf (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional, SPEPEM p5-166)
++     args = mkIRExprVec_3 ( mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhosmf",
++                            &spe_dirtyhelper_evmhosmf,
++                            args);
++     DIP( "evmhosmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 3;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Write;
++     d->fxState[0].offset = rD_off;
++     d->fxState[0].size   = 2 * sizeof(UInt);
++     d->fxState[1].fx     = Ifx_Read;
++     d->fxState[1].offset = rA_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rB_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
+   case 0x44f:
+      // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
+      args = mkIRExprVec_3 ( mkU32( rD_off ),
+@@ -14303,6 +14419,68 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x50b:
++     // evmhesmfaaw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate into Words, SPEPEM p5-167)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhesmfaaw",
++                            &spe_dirtyhelper_evmhesmfaaw,
++                            args);
++     DIP( "evmhesmfaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x50f:
++     // evmhosmfaaw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional and Accumulate into Words, SPEPEM p5-167)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhosmfaaw",
++                            &spe_dirtyhelper_evmhosmfaaw,
++                            args);
++     DIP( "evmhosmfaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
+   case 0x55b:
+      // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14334,6 +14512,68 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x58b:
++     // evmhesmfanw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate Negative into Words, SPEPEM p5-168)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhesmfanw",
++                            &spe_dirtyhelper_evmhesmfanw,
++                            args);
++     DIP( "evmhesmfanw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x58f:
++     // evmhosmfanw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional and Accumulate Negative into Words, SPEPEM p5-168)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhosmfanw",
++                            &spe_dirtyhelper_evmhosmfanw,
++                            args);
++     DIP( "evmhosmfanw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
+   case 0x5db:
+      // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -20483,10 +20723,18 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_ACC_based_multiply_insns( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x40b: // evmhesmf
++      case 0x40f: // evmhosmf
++      case 0x42b: // evmhesmfa
++      case 0x42f: // evmhosmfa
+       case 0x44f: // evmwhsmf
+       case 0x46f: // evmwhsmfa
+       case 0x45b: // evmwsmf
+       case 0x47b: // evmwsmfa
++      case 0x50b: // evmhesmfaaw
++      case 0x50f: // evmhosmfaaw
++      case 0x58b: // evmhesmfanw
++      case 0x58f: // evmhosmfanw
+       case 0x55b: // evmwsmfaa
+       case 0x5db: // evmwsmfan
+          if (!allow_SPE) goto decode_noSPE;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 881cfc4..cf7fa8c 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -10841,6 +10841,1880 @@ int evmwhsmfa_asm(void)
+ }
+ TEST_SPE_DECL(evmwhsmfa_asm, "evmwhsmfa");
+ 
++#ifdef __SPE__
++__ev64_s32__ evmhosmfanw_baseline[] = {
++
++  (__ev64_s32__) { 0x28604c58,  0x57aa7ba },
++  (__ev64_s32__) { 0x377e4004,  0xa1953b32 },
++  (__ev64_s32__) { 0xe4f39f28,  0xaac07b8a },
++  (__ev64_s32__) { 0x964ed94c,  0x8afec602 },
++  (__ev64_s32__) { 0x9033b51a,  0xd0241d72 },
++  (__ev64_s32__) { 0xd083b9a2,  0xe07d063e },
++  (__ev64_s32__) { 0xca21e2ea,  0xeb17951e },
++  (__ev64_s32__) { 0x8f6479ca,  0xf1c6db5e },
++  (__ev64_s32__) { 0x942ad7d2,  0xca87d8b8 },
++  (__ev64_s32__) { 0xb6234cda,  0xed104134 },
++  (__ev64_s32__) { 0xa6d2885c,  0xce1bf890 },
++  (__ev64_s32__) { 0xbd8c845e,  0xdd9d2584 },
++  (__ev64_s32__) { 0xaf8c0f1e,  0xdc38ceec },
++  (__ev64_s32__) { 0xb187f754,  0xd65a4468 },
++  (__ev64_s32__) { 0xab65d876,  0xcf8971d0 },
++  (__ev64_s32__) { 0xe24646ba,  0xc100bdf4 },
++  (__ev64_s32__) { 0xeb34ba3a,  0x81f388dc },
++  (__ev64_s32__) { 0xd68d9f9e,  0x346a56e0 },
++  (__ev64_s32__) { 0xfb758c44,  0xfab37bac },
++  (__ev64_s32__) { 0xec25b07c,  0xee9c83c4 },
++  (__ev64_s32__) { 0xd44b3a6c,  0xdab5ed08 },
++  (__ev64_s32__) { 0xd8356e8c,  0xe5117188 },
++  (__ev64_s32__) { 0xe89af88c,  0xe3b330ec },
++  (__ev64_s32__) { 0xf7e1f5b8,  0x2f998568 },
++  (__ev64_s32__) { 0x9cd24c4a,  0x1bc75f78 },
++  (__ev64_s32__) { 0x83584b12,  0x5d6ceb8c },
++  (__ev64_s32__) { 0x8a4e43f2,  0x373f86c },
++  (__ev64_s32__) { 0x8149afb2,  0x26fdfc68 },
++  (__ev64_s32__) { 0x94cc26ba,  0xf9e587c8 },
++  (__ev64_s32__) { 0xd067556e,  0x59335ca },
++  (__ev64_s32__) { 0x66e9136,  0x62476cca },
++  (__ev64_s32__) { 0x3b2dab8e,  0x8625147c },
++  (__ev64_s32__) { 0x4fbbc106,  0xba28d146 },
++  (__ev64_s32__) { 0x1949571a,  0xbd5e7f1a },
++  (__ev64_s32__) { 0xbeefe78,  0xe2f42d8a },
++  (__ev64_s32__) { 0x75eaba6,  0x86111922 },
++  (__ev64_s32__) { 0xe51a9d1e,  0x359f4996 },
++  (__ev64_s32__) { 0xec197f12,  0x6029cf42 },
++  (__ev64_s32__) { 0xee9dd86e,  0x3b637652 },
++  (__ev64_s32__) { 0xd72ea804,  0x7accf06e },
++  (__ev64_s32__) { 0x9381a6de,  0xb5d08d6e },
++  (__ev64_s32__) { 0x349c315e,  0xad18574a },
++  (__ev64_s32__) { 0x2a71ab5e,  0xe143f1da },
++  (__ev64_s32__) { 0x2af8eccc,  0x345b6ca },
++  (__ev64_s32__) { 0xfdf3ffac,  0xff1aba0a },
++  (__ev64_s32__) { 0x2a15c8e0,  0xfec2d61a },
++  (__ev64_s32__) { 0x12535978,  0xde29a8f6 },
++  (__ev64_s32__) { 0xf0c6fdfa,  0xa684fa22 },
++  (__ev64_s32__) { 0x28f5be72,  0x85c15164 },
++  (__ev64_s32__) { 0xeead7f8e,  0x819158b6 },
++  (__ev64_s32__) { 0xcbf5c85e,  0x5329e72e },
++  (__ev64_s32__) { 0x785a857e,  0x4c70d244 },
++  (__ev64_s32__) { 0x5468db4a,  0x7ca883d8 },
++  (__ev64_s32__) { 0x4fe334d4,  0x8a3a02ca },
++  (__ev64_s32__) { 0x576687d4,  0x9315efba },
++  (__ev64_s32__) { 0xefb43fb8,  0x7ec40cbe },
++  (__ev64_s32__) { 0xf2f1e4b0,  0xb8851672 },
++  (__ev64_s32__) { 0x1f79c020,  0xec95569a },
++  (__ev64_s32__) { 0x1600a084,  0x1004ac6a },
++  (__ev64_s32__) { 0x1f816f14,  0x30d0d752 },
++  (__ev64_s32__) { 0x25c1dcc4,  0x3189a462 },
++  (__ev64_s32__) { 0xff88cd9c,  0x50b51dba },
++  (__ev64_s32__) { 0xb7e3ff98,  0x6cf1813a },
++  (__ev64_s32__) { 0xddd0b100,  0xd5afc0b0 },
++  (__ev64_s32__) { 0xd74632a6,  0xd58ca59a },
++  (__ev64_s32__) { 0x77d89282,  0xf7e65046 },
++  (__ev64_s32__) { 0x3de13be2,  0xf94c59c6 },
++  (__ev64_s32__) { 0x64459f82,  0xf350fbb2 },
++  (__ev64_s32__) { 0x479f28a0,  0xf21e667e },
++  (__ev64_s32__) { 0x1881565e,  0xf01725ba },
++  (__ev64_s32__) { 0xf676d9a,  0xfbf5874a },
++  (__ev64_s32__) { 0xd15ef18a,  0x20f3b1ba },
++  (__ev64_s32__) { 0xd4b1a6b6,  0x3c658f44 },
++  (__ev64_s32__) { 0x1057611a,  0x3be3e3c0 },
++  (__ev64_s32__) { 0xf0f3cb6e,  0x1835f540 },
++  (__ev64_s32__) { 0xd2385228,  0xe35e81c0 },
++  (__ev64_s32__) { 0xc36e1bf4,  0xfa1c6000 },
++  (__ev64_s32__) { 0x79d92f44,  0x8d4f8080 },
++  (__ev64_s32__) { 0x465ab2dc,  0x960fd148 },
++  (__ev64_s32__) { 0xffeb2e9c,  0x7e0571c8 },
++  (__ev64_s32__) { 0xe419a16c,  0x863ab9be },
++  (__ev64_s32__) { 0x48181d88,  0x7203091e },
++  (__ev64_s32__) { 0x3be56534,  0x7b650806 },
++  (__ev64_s32__) { 0x633a2070,  0x88bb3a34 },
++  (__ev64_s32__) { 0x1f716398,  0xaae53104 },
++  (__ev64_s32__) { 0xcd50de90,  0xb141381c },
++  (__ev64_s32__) { 0xb722c390,  0x9dcdd464 },
++  (__ev64_s32__) { 0xb8589dfa,  0x88240ad4 },
++  (__ev64_s32__) { 0xa73c59d2,  0x5385e5cc },
++  (__ev64_s32__) { 0xf4eceae2,  0x1b6b4a1c },
++  (__ev64_s32__) { 0xef8cbd02,  0xf9d028dc },
++  (__ev64_s32__) { 0xdcfb2c82,  0x43fa3870 },
++  (__ev64_s32__) { 0x78cb9622,  0xe678ebf6 },
++  (__ev64_s32__) { 0x33fe53a6,  0xa6362752 },
++  (__ev64_s32__) { 0x1d31de56,  0xacc2c97a },
++  (__ev64_s32__) { 0xd3d88546,  0x90c7c892 },
++  (__ev64_s32__) { 0x76141272,  0x65ea3702 },
++  (__ev64_s32__) { 0x5aa99bce,  0x667d6102 },
++  (__ev64_s32__) { 0x425185aa,  0x3da90972 },
++  (__ev64_s32__) { 0x7685e08c,  0x29e7ba0a },
++  (__ev64_s32__) { 0x70211b64,  0xe7accc42 },
++  (__ev64_s32__) { 0x90f30cc4,  0xaa0e531a },
++  (__ev64_s32__) { 0x90924b44,  0x84ed22fa },
++  (__ev64_s32__) { 0x78729d48,  0x8265a0b8 },
++  (__ev64_s32__) { 0xdc5df24c,  0x7cdb67a8 },
++  (__ev64_s32__) { 0x86b611b6,  0xe413c682 },
++  (__ev64_s32__) { 0x91d18684,  0xc3fe06f2 },
++  (__ev64_s32__) { 0xcce9be68,  0xc3e4e82a },
++  (__ev64_s32__) { 0xbaf7c5ec,  0x982b4602 },
++  (__ev64_s32__) { 0xae42aee0,  0x8cc9ebba },
++  (__ev64_s32__) { 0xa9736378,  0x93cc4346 },
++  (__ev64_s32__) { 0xd516ec7c,  0xc69820da },
++  (__ev64_s32__) { 0xb4733dcc,  0xd69a9792 },
++  (__ev64_s32__) { 0xd4f5654a,  0xc7b2bad2 },
++  (__ev64_s32__) { 0x3b93ba14,  0xb7f05c2e },
++  (__ev64_s32__) { 0x6985d164,  0xbbe6fdc2 },
++  (__ev64_s32__) { 0xc2b567f4,  0xbc26ad32 },
++  (__ev64_s32__) { 0xbbcf439c,  0x97790332 },
++  (__ev64_s32__) { 0xc598f4c0,  0xe4f4587a },
++  (__ev64_s32__) { 0xee8f6e60,  0xf3ead792 },
++  (__ev64_s32__) { 0x2dd4b8c4,  0xcd0edd36 },
++  (__ev64_s32__) { 0xe69cec64,  0xf6777e4e },
++  (__ev64_s32__) { 0x523bb20c,  0xfb6de39c },
++  (__ev64_s32__) { 0x4d739efc,  0x15a7023c },
++  (__ev64_s32__) { 0x4eafec32,  0x15b02c48 },
++  (__ev64_s32__) { 0x5a80b832,  0x5aa3ea78 },
++  (__ev64_s32__) { 0x2c741dbc,  0x70a668fa },
++  (__ev64_s32__) { 0x22518ecc,  0x829ddbba },
++  (__ev64_s32__) { 0xddf9b002,  0x91b3e95c },
++  (__ev64_s32__) { 0xdcc6b22e,  0xcbb9add8 },
++  (__ev64_s32__) { 0x63876b2e,  0xafc44c20 },
++  (__ev64_s32__) { 0x69e534e2,  0x898b0e9c },
++  (__ev64_s32__) { 0x749e550a,  0x993100fc },
++  (__ev64_s32__) { 0xba17a416,  0xbe93cfa2 },
++  (__ev64_s32__) { 0xf62b9fd4,  0xc140214a },
++  (__ev64_s32__) { 0x10c248ce,  0xbb633b1a },
++  (__ev64_s32__) { 0xdda16180,  0xe550dbba },
++  (__ev64_s32__) { 0xe1139388,  0x2f9a251e },
++  (__ev64_s32__) { 0xdb6e32e8,  0x31a0cd20 },
++  (__ev64_s32__) { 0xd817f856,  0x384a5470 },
++  (__ev64_s32__) { 0xa3dec646,  0x9bc53fd0 },
++  (__ev64_s32__) { 0x758c4cc6,  0xcbadd224 },
++  (__ev64_s32__) { 0x844d3992,  0xc98369a4 },
++  (__ev64_s32__) { 0x74ec9db6,  0xc9f5c038 },
++  (__ev64_s32__) { 0x3298ee86,  0xa86369be },
++  (__ev64_s32__) { 0x1e7f052a,  0xaeebddbe },
++  (__ev64_s32__) { 0x58753356,  0xc0d6869a },
++  (__ev64_s32__) { 0x74e32900,  0xe1a7003a },
++  (__ev64_s32__) { 0x40856e0,  0xc4b944 },
++  (__ev64_s32__) { 0x2343a78c,  0x81fb54 },
++  (__ev64_s32__) { 0x6c317bfe,  0x6687340 },
++  (__ev64_s32__) { 0x5a96b3a0,  0xa630060 },
++  (__ev64_s32__) { 0x5110abe2,  0xff4a0606 },
++  (__ev64_s32__) { 0x9abe7722,  0x2e5304ae },
++  (__ev64_s32__) { 0xa7493914,  0x1f22855e },
++  (__ev64_s32__) { 0x8abf3d38,  0xe9439a1a },
++  (__ev64_s32__) { 0x89758fe0,  0xe3910312 },
++  (__ev64_s32__) { 0xe92f438e,  0xe2eca4fa },
++  (__ev64_s32__) { 0xcc94d42a,  0x1810c60a },
++  (__ev64_s32__) { 0x6697c4f6,  0xa95ed44 },
++  (__ev64_s32__) { 0x528244aa,  0xf9a793c },
++  (__ev64_s32__) { 0xe9e8cbfe,  0x26d795d8 },
++  (__ev64_s32__) { 0xb77c82e6,  0xacd03c4 },
++  (__ev64_s32__) { 0xb904ff4a,  0xe77784cc },
++  (__ev64_s32__) { 0x65161532,  0xfbd90018 },
++  (__ev64_s32__) { 0x6b106978,  0xd0a36cc },
++  (__ev64_s32__) { 0x714d98cc,  0xd04ae3c },
++  (__ev64_s32__) { 0x5c343064,  0xb4c9cadc },
++  (__ev64_s32__) { 0x4d531b58,  0x9df58ebc },
++  (__ev64_s32__) { 0x290c7b78,  0xa5ba582c },
++  (__ev64_s32__) { 0x36af51f4,  0xa506aa80 },
++  (__ev64_s32__) { 0x2f2156a4,  0x9c7b2c56 },
++  (__ev64_s32__) { 0x455f3580,  0xf0750596 },
++  (__ev64_s32__) { 0x50f55400,  0x1e32987e },
++  (__ev64_s32__) { 0x7f4af852,  0x59f0e9b6 },
++  (__ev64_s32__) { 0x8c57fb26,  0x6d66af36 },
++  (__ev64_s32__) { 0x932993e6,  0x3ae731fe },
++  (__ev64_s32__) { 0x8ff538fa,  0x13a19a26 },
++  (__ev64_s32__) { 0xd7534040,  0x13f74ccc },
++  (__ev64_s32__) { 0xb159a084,  0x42be8ec },
++  (__ev64_s32__) { 0xb809781a,  0xfea13b56 },
++  (__ev64_s32__) { 0xa30577ca,  0x203f19b6 },
++  (__ev64_s32__) { 0x8409c486,  0x19960930 },
++  (__ev64_s32__) { 0xb5966092,  0x362b0540 },
++  (__ev64_s32__) { 0xeba27be0,  0xe2dad2d8 },
++  (__ev64_s32__) { 0x13f9e854,  0x246d3e10 },
++  (__ev64_s32__) { 0xe830a8d4,  0x90daf44 },
++  (__ev64_s32__) { 0x34058818,  0x1470baac },
++  (__ev64_s32__) { 0xe0767bb2,  0xcf4f5e74 },
++  (__ev64_s32__) { 0xe2c8302e,  0xb5e5f308 },
++  (__ev64_s32__) { 0x7ad7b762,  0xa674991c },
++  (__ev64_s32__) { 0x85604776,  0xaafbe2d8 },
++  (__ev64_s32__) { 0x41d61d12,  0x74e39c7e },
++  (__ev64_s32__) { 0x261f4a62,  0x72f9683e },
++  (__ev64_s32__) { 0x43dd7d26,  0x7a08d336 },
++  (__ev64_s32__) { 0x4468ad7c,  0x799f77c0 },
++  (__ev64_s32__) { 0x3e7a5202,  0x79e96ab8 },
++  (__ev64_s32__) { 0xa826bd6c,  0x9ed8ca08 },
++  (__ev64_s32__) { 0xe9a82ddc,  0x4e62e298 },
++  (__ev64_s32__) { 0xed648adc,  0x4cab279a },
++  (__ev64_s32__) { 0x9209d080,  0x1e590130 },
++  (__ev64_s32__) { 0x92adc140,  0x358392e0 },
++  (__ev64_s32__) { 0x87c73740,  0x5574bbfc },
++  (__ev64_s32__) { 0x3df1aea2,  0x452acac2 },
++  (__ev64_s32__) { 0x73147444,  0x527acb6e },
++  (__ev64_s32__) { 0x795d4b78,  0x648f3b52 },
++  (__ev64_s32__) { 0x7898151a,  0xbffa5df0 },
++  (__ev64_s32__) { 0xa8c75ca0,  0xb3ffa3e4 },
++  (__ev64_s32__) { 0x9907fc6c,  0xe0fd0c84 },
++  (__ev64_s32__) { 0xa9394d14,  0x936c2acc },
++  (__ev64_s32__) { 0xda0864b4,  0x7d5b6ca2 },
++  (__ev64_s32__) { 0xdc0422b4,  0x7add6adc },
++  (__ev64_s32__) { 0xffe8226,  0x926b6ed8 },
++  (__ev64_s32__) { 0xed1e9be6,  0xaab5bc28 },
++  (__ev64_s32__) { 0xcc7976be,  0xe402b344 },
++  (__ev64_s32__) { 0x72dcc22a,  0xef6865b4 },
++  (__ev64_s32__) { 0x88504a0a,  0xf045f53a },
++  (__ev64_s32__) { 0x789ab852,  0xf0a5a19a },
++  (__ev64_s32__) { 0x8a00fa92,  0x14f3d672 },
++  (__ev64_s32__) { 0xafa0d0bc,  0xf9b924d6 },
++  (__ev64_s32__) { 0x913ac59c,  0x10672dfc },
++  (__ev64_s32__) { 0x8048582e,  0x5a970f46 },
++  (__ev64_s32__) { 0x86b17666,  0x5f7fb9f6 },
++  (__ev64_s32__) { 0xa371814c,  0xb01d3998 },
++  (__ev64_s32__) { 0x9edbd22c,  0xa4380a20 },
++  (__ev64_s32__) { 0x97bed032,  0xa94799fa },
++  (__ev64_s32__) { 0xab98c23e,  0xa5efc946 },
++  (__ev64_s32__) { 0x6d8c12c2,  0xb58738ce },
++  (__ev64_s32__) { 0x7198a236,  0xd60973ba },
++  (__ev64_s32__) { 0x738daaee,  0x18e1bbf2 },
++  (__ev64_s32__) { 0x832910ae,  0x1180f07a },
++  (__ev64_s32__) { 0xb4bcbb82,  0x15944a54 },
++  (__ev64_s32__) { 0x73cbd932,  0x91dc4b2 },
++  (__ev64_s32__) { 0x922f192a,  0xbc5d6d76 },
++  (__ev64_s32__) { 0x7bf3e6a8,  0xbf492ef6 },
++  (__ev64_s32__) { 0x7b01bc84,  0x8fa55e94 },
++  (__ev64_s32__) { 0x84c271b4,  0x924c09bc },
++  (__ev64_s32__) { 0x7d89b984,  0xb7934712 },
++  (__ev64_s32__) { 0x1dcce934,  0x95dd18b4 },
++  (__ev64_s32__) { 0x3cf68808,  0x62537542 },
++  (__ev64_s32__) { 0x2ba83dd2,  0x5d7ba6c8 },
++  (__ev64_s32__) { 0x252e8a96,  0x5bbb5ef0 },
++  (__ev64_s32__) { 0x93ca2374,  0x216f99c8 },
++  (__ev64_s32__) { 0x45cdf9f4,  0xefb99908 },
++  (__ev64_s32__) { 0x83bfa1d6,  0xe63f9862 },
++  (__ev64_s32__) { 0x897b7d02,  0xbca4fa22 },
++  (__ev64_s32__) { 0x5c1b17ce,  0x1790f972 },
++  (__ev64_s32__) { 0xa2f9625e,  0x173822f0 },
++  (__ev64_s32__) { 0x9d2de612,  0x169dcd8c },
++  (__ev64_s32__) { 0xa4e3a77a,  0xff10ad24 },
++  (__ev64_s32__) { 0xfd443d5e,  0x4fa4174 },
++  (__ev64_s32__) { 0xe9fb64ae,  0x3f4f80 },
++  (__ev64_s32__) { 0xc9e9297e,  0xd64b0bc2 },
++  (__ev64_s32__) { 0x83d718be,  0xb3b86d70 },
++  (__ev64_s32__) { 0x71c8715e,  0xb4bfd066 },
++  (__ev64_s32__) { 0xd87b375e,  0xd7b77a62 },
++
++};
++#endif // __SPE__
++
++int evmhosmfanw_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++  VERIFY(regD[1] == 0x0);
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmfanw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x,  0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhosmfanw_baseline[i][0]);
++    VERIFY(regD[1] == evmhosmfanw_baseline[i][1]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmfanw_asm, "evmhosmfanw");
++
++#ifdef __SPE__
++__ev64_s32__ evmhosmfaaw_baseline[] = {
++
++  (__ev64_s32__) { 0xd79fb3a8, 0xfa855846 },
++  (__ev64_s32__) { 0xc881bffc, 0x5e6ac4ce },
++  (__ev64_s32__) { 0x1b0c60d8, 0x553f8476 },
++  (__ev64_s32__) { 0x69b126b4, 0x750139fe },
++  (__ev64_s32__) { 0x6fcc4ae6, 0x2fdbe28e },
++  (__ev64_s32__) { 0x2f7c465e, 0x1f82f9c2 },
++  (__ev64_s32__) { 0x35de1d16, 0x14e86ae2 },
++  (__ev64_s32__) { 0x709b8636, 0xe3924a2 },
++  (__ev64_s32__) { 0x6bd5282e, 0x35782748 },
++  (__ev64_s32__) { 0x49dcb326, 0x12efbecc },
++  (__ev64_s32__) { 0x592d77a4, 0x31e40770 },
++  (__ev64_s32__) { 0x42737ba2, 0x2262da7c },
++  (__ev64_s32__) { 0x5073f0e2, 0x23c73114 },
++  (__ev64_s32__) { 0x4e7808ac, 0x29a5bb98 },
++  (__ev64_s32__) { 0x549a278a, 0x30768e30 },
++  (__ev64_s32__) { 0x1db9b946, 0x3eff420c },
++  (__ev64_s32__) { 0x14cb45c6, 0x7e0c7724 },
++  (__ev64_s32__) { 0x29726062, 0xcb95a920 },
++  (__ev64_s32__) { 0x48a73bc, 0x54c8454 },
++  (__ev64_s32__) { 0x13da4f84, 0x11637c3c },
++  (__ev64_s32__) { 0x2bb4c594, 0x254a12f8 },
++  (__ev64_s32__) { 0x27ca9174, 0x1aee8e78 },
++  (__ev64_s32__) { 0x17650774, 0x1c4ccf14 },
++  (__ev64_s32__) { 0x81e0a48, 0xd0667a98 },
++  (__ev64_s32__) { 0x632db3b6, 0xe438a088 },
++  (__ev64_s32__) { 0x7ca7b4ee, 0xa2931474 },
++  (__ev64_s32__) { 0x75b1bc0e, 0xfc8c0794 },
++  (__ev64_s32__) { 0x7eb6504e, 0xd9020398 },
++  (__ev64_s32__) { 0x6b33d946, 0x61a7838 },
++  (__ev64_s32__) { 0x2f98aa92, 0xfa6cca36 },
++  (__ev64_s32__) { 0xf9916eca, 0x9db89336 },
++  (__ev64_s32__) { 0xc4d25472, 0x79daeb84 },
++  (__ev64_s32__) { 0xb0443efa, 0x45d72eba },
++  (__ev64_s32__) { 0xe6b6a8e6, 0x42a180e6 },
++  (__ev64_s32__) { 0xf4110188, 0x1d0bd276 },
++  (__ev64_s32__) { 0xf8a1545a, 0x79eee6de },
++  (__ev64_s32__) { 0x1ae562e2, 0xca60b66a },
++  (__ev64_s32__) { 0x13e680ee, 0x9fd630be },
++  (__ev64_s32__) { 0x11622792, 0xc49c89ae },
++  (__ev64_s32__) { 0x28d157fc, 0x85330f92 },
++  (__ev64_s32__) { 0x6c7e5922, 0x4a2f7292 },
++  (__ev64_s32__) { 0xcb63cea2, 0x52e7a8b6 },
++  (__ev64_s32__) { 0xd58e54a2, 0x1ebc0e26 },
++  (__ev64_s32__) { 0xd5071334, 0xfcba4936 },
++  (__ev64_s32__) { 0x20c0054, 0xe545f6 },
++  (__ev64_s32__) { 0xd5ea3720, 0x13d29e6 },
++  (__ev64_s32__) { 0xedaca688, 0x21d6570a },
++  (__ev64_s32__) { 0xf390206, 0x597b05de },
++  (__ev64_s32__) { 0xd70a418e, 0x7a3eae9c },
++  (__ev64_s32__) { 0x11528072, 0x7e6ea74a },
++  (__ev64_s32__) { 0x340a37a2, 0xacd618d2 },
++  (__ev64_s32__) { 0x87a57a82, 0xb38f2dbc },
++  (__ev64_s32__) { 0xab9724b6, 0x83577c28 },
++  (__ev64_s32__) { 0xb01ccb2c, 0x75c5fd36 },
++  (__ev64_s32__) { 0xa899782c, 0x6cea1046 },
++  (__ev64_s32__) { 0x104bc048, 0x813bf342 },
++  (__ev64_s32__) { 0xd0e1b50, 0x477ae98e },
++  (__ev64_s32__) { 0xe0863fe0, 0x136aa966 },
++  (__ev64_s32__) { 0xe9ff5f7c, 0xeffb5396 },
++  (__ev64_s32__) { 0xe07e90ec, 0xcf2f28ae },
++  (__ev64_s32__) { 0xda3e233c, 0xce765b9e },
++  (__ev64_s32__) { 0x773264, 0xaf4ae246 },
++  (__ev64_s32__) { 0x481c0068, 0x930e7ec6 },
++  (__ev64_s32__) { 0x222f4f00, 0x2a503f50 },
++  (__ev64_s32__) { 0x28b9cd5a, 0x2a735a66 },
++  (__ev64_s32__) { 0x88276d7e, 0x819afba },
++  (__ev64_s32__) { 0xc21ec41e, 0x6b3a63a },
++  (__ev64_s32__) { 0x9bba607e, 0xcaf044e },
++  (__ev64_s32__) { 0xb860d760, 0xde19982 },
++  (__ev64_s32__) { 0xe77ea9a2, 0xfe8da46 },
++  (__ev64_s32__) { 0xf0989266, 0x40a78b6 },
++  (__ev64_s32__) { 0x2ea10e76, 0xdf0c4e46 },
++  (__ev64_s32__) { 0x2b4e594a, 0xc39a70bc },
++  (__ev64_s32__) { 0xefa89ee6, 0xc41c1c40 },
++  (__ev64_s32__) { 0xf0c3492, 0xe7ca0ac0 },
++  (__ev64_s32__) { 0x2dc7add8, 0x1ca17e40 },
++  (__ev64_s32__) { 0x3c91e40c, 0x5e3a000 },
++  (__ev64_s32__) { 0x8626d0bc, 0x72b07f80 },
++  (__ev64_s32__) { 0xb9a54d24, 0x69f02eb8 },
++  (__ev64_s32__) { 0x14d164, 0x81fa8e38 },
++  (__ev64_s32__) { 0x1be65e94, 0x79c54642 },
++  (__ev64_s32__) { 0xb7e7e278, 0x8dfcf6e2 },
++  (__ev64_s32__) { 0xc41a9acc, 0x849af7fa },
++  (__ev64_s32__) { 0x9cc5df90, 0x7744c5cc },
++  (__ev64_s32__) { 0xe08e9c68, 0x551acefc },
++  (__ev64_s32__) { 0x32af2170, 0x4ebec7e4 },
++  (__ev64_s32__) { 0x48dd3c70, 0x62322b9c },
++  (__ev64_s32__) { 0x47a76206, 0x77dbf52c },
++  (__ev64_s32__) { 0x58c3a62e, 0xac7a1a34 },
++  (__ev64_s32__) { 0xb13151e, 0xe494b5e4 },
++  (__ev64_s32__) { 0x107342fe, 0x62fd724 },
++  (__ev64_s32__) { 0x2304d37e, 0xbc05c790 },
++  (__ev64_s32__) { 0x873469de, 0x1987140a },
++  (__ev64_s32__) { 0xcc01ac5a, 0x59c9d8ae },
++  (__ev64_s32__) { 0xe2ce21aa, 0x533d3686 },
++  (__ev64_s32__) { 0x2c277aba, 0x6f38376e },
++  (__ev64_s32__) { 0x89ebed8e, 0x9a15c8fe },
++  (__ev64_s32__) { 0xa5566432, 0x99829efe },
++  (__ev64_s32__) { 0xbdae7a56, 0xc256f68e },
++  (__ev64_s32__) { 0x897a1f74, 0xd61845f6 },
++  (__ev64_s32__) { 0x8fdee49c, 0x185333be },
++  (__ev64_s32__) { 0x6f0cf33c, 0x55f1ace6 },
++  (__ev64_s32__) { 0x6f6db4bc, 0x7b12dd06 },
++  (__ev64_s32__) { 0x878d62b8, 0x7d9a5f48 },
++  (__ev64_s32__) { 0x23a20db4, 0x83249858 },
++  (__ev64_s32__) { 0x7949ee4a, 0x1bec397e },
++  (__ev64_s32__) { 0x6e2e797c, 0x3c01f90e },
++  (__ev64_s32__) { 0x33164198, 0x3c1b17d6 },
++  (__ev64_s32__) { 0x45083a14, 0x67d4b9fe },
++  (__ev64_s32__) { 0x51bd5120, 0x73361446 },
++  (__ev64_s32__) { 0x568c9c88, 0x6c33bcba },
++  (__ev64_s32__) { 0x2ae91384, 0x3967df26 },
++  (__ev64_s32__) { 0x4b8cc234, 0x2965686e },
++  (__ev64_s32__) { 0x2b0a9ab6, 0x384d452e },
++  (__ev64_s32__) { 0xc46c45ec, 0x480fa3d2 },
++  (__ev64_s32__) { 0x967a2e9c, 0x4419023e },
++  (__ev64_s32__) { 0x3d4a980c, 0x43d952ce },
++  (__ev64_s32__) { 0x4430bc64, 0x6886fcce },
++  (__ev64_s32__) { 0x3a670b40, 0x1b0ba786 },
++  (__ev64_s32__) { 0x117091a0, 0xc15286e },
++  (__ev64_s32__) { 0xd22b473c, 0x32f122ca },
++  (__ev64_s32__) { 0x1963139c, 0x98881b2 },
++  (__ev64_s32__) { 0xadc44df4, 0x4921c64 },
++  (__ev64_s32__) { 0xb28c6104, 0xea58fdc4 },
++  (__ev64_s32__) { 0xb15013ce, 0xea4fd3b8 },
++  (__ev64_s32__) { 0xa57f47ce, 0xa55c1588 },
++  (__ev64_s32__) { 0xd38be244, 0x8f599706 },
++  (__ev64_s32__) { 0xddae7134, 0x7d622446 },
++  (__ev64_s32__) { 0x22064ffe, 0x6e4c16a4 },
++  (__ev64_s32__) { 0x23394dd2, 0x34465228 },
++  (__ev64_s32__) { 0x9c7894d2, 0x503bb3e0 },
++  (__ev64_s32__) { 0x961acb1e, 0x7674f164 },
++  (__ev64_s32__) { 0x8b61aaf6, 0x66ceff04 },
++  (__ev64_s32__) { 0x45e85bea, 0x416c305e },
++  (__ev64_s32__) { 0x9d4602c, 0x3ebfdeb6 },
++  (__ev64_s32__) { 0xef3db732, 0x449cc4e6 },
++  (__ev64_s32__) { 0x225e9e80, 0x1aaf2446 },
++  (__ev64_s32__) { 0x1eec6c78, 0xd065dae2 },
++  (__ev64_s32__) { 0x2491cd18, 0xce5f32e0 },
++  (__ev64_s32__) { 0x27e807aa, 0xc7b5ab90 },
++  (__ev64_s32__) { 0x5c2139ba, 0x643ac030 },
++  (__ev64_s32__) { 0x8a73b33a, 0x34522ddc },
++  (__ev64_s32__) { 0x7bb2c66e, 0x367c965c },
++  (__ev64_s32__) { 0x8b13624a, 0x360a3fc8 },
++  (__ev64_s32__) { 0xcd67117a, 0x579c9642 },
++  (__ev64_s32__) { 0xe180fad6, 0x51142242 },
++  (__ev64_s32__) { 0xa78accaa, 0x3f297966 },
++  (__ev64_s32__) { 0x8b1cd700, 0x1e58ffc6 },
++  (__ev64_s32__) { 0xfbf7a920, 0xff3b46bc },
++  (__ev64_s32__) { 0xdcbc5874, 0xff7e04ac },
++  (__ev64_s32__) { 0x93ce8402, 0xf9978cc0 },
++  (__ev64_s32__) { 0xa5694c60, 0xf59cffa0 },
++  (__ev64_s32__) { 0xaeef541e, 0xb5f9fa },
++  (__ev64_s32__) { 0x654188de, 0xd1acfb52 },
++  (__ev64_s32__) { 0x58b6c6ec, 0xe0dd7aa2 },
++  (__ev64_s32__) { 0x7540c2c8, 0x16bc65e6 },
++  (__ev64_s32__) { 0x768a7020, 0x1c6efcee },
++  (__ev64_s32__) { 0x16d0bc72, 0x1d135b06 },
++  (__ev64_s32__) { 0x336b2bd6, 0xe7ef39f6 },
++  (__ev64_s32__) { 0x99683b0a, 0xf56a12bc },
++  (__ev64_s32__) { 0xad7dbb56, 0xf06586c4 },
++  (__ev64_s32__) { 0x16173402, 0xd9286a28 },
++  (__ev64_s32__) { 0x48837d1a, 0xf532fc3c },
++  (__ev64_s32__) { 0x46fb00b6, 0x18887b34 },
++  (__ev64_s32__) { 0x9ae9eace, 0x426ffe8 },
++  (__ev64_s32__) { 0x94ef9688, 0xf2f5c934 },
++  (__ev64_s32__) { 0x8eb26734, 0xf2fb51c4 },
++  (__ev64_s32__) { 0xa3cbcf9c, 0x4b363524 },
++  (__ev64_s32__) { 0xb2ace4a8, 0x620a7144 },
++  (__ev64_s32__) { 0xd6f38488, 0x5a45a7d4 },
++  (__ev64_s32__) { 0xc950ae0c, 0x5af95580 },
++  (__ev64_s32__) { 0xd0dea95c, 0x6384d3aa },
++  (__ev64_s32__) { 0xbaa0ca80, 0xf8afa6a },
++  (__ev64_s32__) { 0xaf0aac00, 0xe1cd6782 },
++  (__ev64_s32__) { 0x80b507ae, 0xa60f164a },
++  (__ev64_s32__) { 0x73a804da, 0x929950ca },
++  (__ev64_s32__) { 0x6cd66c1a, 0xc518ce02 },
++  (__ev64_s32__) { 0x700ac706, 0xec5e65da },
++  (__ev64_s32__) { 0x28acbfc0, 0xec08b334 },
++  (__ev64_s32__) { 0x4ea65f7c, 0xfbd41714 },
++  (__ev64_s32__) { 0x47f687e6, 0x15ec4aa },
++  (__ev64_s32__) { 0x5cfa8836, 0xdfc0e64a },
++  (__ev64_s32__) { 0x7bf63b7a, 0xe669f6d0 },
++  (__ev64_s32__) { 0x4a699f6e, 0xc9d4fac0 },
++  (__ev64_s32__) { 0x145d8420, 0x1d252d28 },
++  (__ev64_s32__) { 0xec0617ac, 0xdb92c1f0 },
++  (__ev64_s32__) { 0x17cf572c, 0xf6f250bc },
++  (__ev64_s32__) { 0xcbfa77e8, 0xeb8f4554 },
++  (__ev64_s32__) { 0x1f89844e, 0x30b0a18c },
++  (__ev64_s32__) { 0x1d37cfd2, 0x4a1a0cf8 },
++  (__ev64_s32__) { 0x8528489e, 0x598b66e4 },
++  (__ev64_s32__) { 0x7a9fb88a, 0x55041d28 },
++  (__ev64_s32__) { 0xbe29e2ee, 0x8b1c6382 },
++  (__ev64_s32__) { 0xd9e0b59e, 0x8d0697c2 },
++  (__ev64_s32__) { 0xbc2282da, 0x85f72cca },
++  (__ev64_s32__) { 0xbb975284, 0x86608840 },
++  (__ev64_s32__) { 0xc185adfe, 0x86169548 },
++  (__ev64_s32__) { 0x57d94294, 0x612735f8 },
++  (__ev64_s32__) { 0x1657d224, 0xb19d1d68 },
++  (__ev64_s32__) { 0x129b7524, 0xb354d866 },
++  (__ev64_s32__) { 0x6df62f80, 0xe1a6fed0 },
++  (__ev64_s32__) { 0x6d523ec0, 0xca7c6d20 },
++  (__ev64_s32__) { 0x7838c8c0, 0xaa8b4404 },
++  (__ev64_s32__) { 0xc20e515e, 0xbad5353e },
++  (__ev64_s32__) { 0x8ceb8bbc, 0xad853492 },
++  (__ev64_s32__) { 0x86a2b488, 0x9b70c4ae },
++  (__ev64_s32__) { 0x8767eae6, 0x4005a210 },
++  (__ev64_s32__) { 0x5738a360, 0x4c005c1c },
++  (__ev64_s32__) { 0x66f80394, 0x1f02f37c },
++  (__ev64_s32__) { 0x56c6b2ec, 0x6c93d534 },
++  (__ev64_s32__) { 0x25f79b4c, 0x82a4935e },
++  (__ev64_s32__) { 0x23fbdd4c, 0x85229524 },
++  (__ev64_s32__) { 0xf0017dda, 0x6d949128 },
++  (__ev64_s32__) { 0x12e1641a, 0x554a43d8 },
++  (__ev64_s32__) { 0x33868942, 0x1bfd4cbc },
++  (__ev64_s32__) { 0x8d233dd6, 0x10979a4c },
++  (__ev64_s32__) { 0x77afb5f6, 0xfba0ac6 },
++  (__ev64_s32__) { 0x876547ae, 0xf5a5e66 },
++  (__ev64_s32__) { 0x75ff056e, 0xeb0c298e },
++  (__ev64_s32__) { 0x505f2f44, 0x646db2a },
++  (__ev64_s32__) { 0x6ec53a64, 0xef98d204 },
++  (__ev64_s32__) { 0x7fb7a7d2, 0xa568f0ba },
++  (__ev64_s32__) { 0x794e899a, 0xa080460a },
++  (__ev64_s32__) { 0x5c8e7eb4, 0x4fe2c668 },
++  (__ev64_s32__) { 0x61242dd4, 0x5bc7f5e0 },
++  (__ev64_s32__) { 0x68412fce, 0x56b86606 },
++  (__ev64_s32__) { 0x54673dc2, 0x5a1036ba },
++  (__ev64_s32__) { 0x9273ed3e, 0x4a78c732 },
++  (__ev64_s32__) { 0x8e675dca, 0x29f68c46 },
++  (__ev64_s32__) { 0x8c725512, 0xe71e440e },
++  (__ev64_s32__) { 0x7cd6ef52, 0xee7f0f86 },
++  (__ev64_s32__) { 0x4b43447e, 0xea6bb5ac },
++  (__ev64_s32__) { 0x8c3426ce, 0xf6e23b4e },
++  (__ev64_s32__) { 0x6dd0e6d6, 0x43a2928a },
++  (__ev64_s32__) { 0x840c1958, 0x40b6d10a },
++  (__ev64_s32__) { 0x84fe437c, 0x705aa16c },
++  (__ev64_s32__) { 0x7b3d8e4c, 0x6db3f644 },
++  (__ev64_s32__) { 0x8276467c, 0x486cb8ee },
++  (__ev64_s32__) { 0xe23316cc, 0x6a22e74c },
++  (__ev64_s32__) { 0xc30977f8, 0x9dac8abe },
++  (__ev64_s32__) { 0xd457c22e, 0xa2845938 },
++  (__ev64_s32__) { 0xdad1756a, 0xa444a110 },
++  (__ev64_s32__) { 0x6c35dc8c, 0xde906638 },
++  (__ev64_s32__) { 0xba32060c, 0x104666f8 },
++  (__ev64_s32__) { 0x7c405e2a, 0x19c0679e },
++  (__ev64_s32__) { 0x768482fe, 0x435b05de },
++  (__ev64_s32__) { 0xa3e4e832, 0xe86f068e },
++  (__ev64_s32__) { 0x5d069da2, 0xe8c7dd10 },
++  (__ev64_s32__) { 0x62d219ee, 0xe9623274 },
++  (__ev64_s32__) { 0x5b1c5886, 0xef52dc },
++  (__ev64_s32__) { 0x2bbc2a2, 0xfb05be8c },
++  (__ev64_s32__) { 0x16049b52, 0xffc0b080 },
++  (__ev64_s32__) { 0x3616d682, 0x29b4f43e },
++  (__ev64_s32__) { 0x7c28e742, 0x4c479290 },
++  (__ev64_s32__) { 0x8e378ea2, 0x4b402f9a },
++  (__ev64_s32__) { 0x2784c8a2, 0x2848859e },
++
++};
++#endif // __SPE__
++
++int evmhosmfaaw_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++  VERIFY(regD[1] == 0x0);
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmfaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhosmfaaw_baseline[i][0]);
++    VERIFY(regD[1] == evmhosmfaaw_baseline[i][1]);
++#endif
++
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmfaaw_asm, "evmhosmfaaw");
++
++#ifdef __SPE__
++__ev64_s32__ evmhosmf_baseline[] = {
++
++  (__ev64_s32__) { 0xd79fb3a8, 0xfa855846 },
++  (__ev64_s32__) { 0xf0e20c54, 0x63e56c88 },
++  (__ev64_s32__) { 0x528aa0dc, 0xf6d4bfa8 },
++  (__ev64_s32__) { 0x4ea4c5dc, 0x1fc1b588 },
++  (__ev64_s32__) { 0x61b2432, 0xbadaa890 },
++  (__ev64_s32__) { 0xbfaffb78, 0xefa71734 },
++  (__ev64_s32__) { 0x661d6b8, 0xf5657120 },
++  (__ev64_s32__) { 0x3abd6920, 0xf950b9c0 },
++  (__ev64_s32__) { 0xfb39a1f8, 0x273f02a6 },
++  (__ev64_s32__) { 0xde078af8, 0xdd779784 },
++  (__ev64_s32__) { 0xf50c47e, 0x1ef448a4 },
++  (__ev64_s32__) { 0xe94603fe, 0xf07ed30c },
++  (__ev64_s32__) { 0xe007540, 0x1645698 },
++  (__ev64_s32__) { 0xfe0417ca, 0x5de8a84 },
++  (__ev64_s32__) { 0x6221ede, 0x6d0d298 },
++  (__ev64_s32__) { 0xc91f91bc, 0xe88b3dc },
++  (__ev64_s32__) { 0xf7118c80, 0x3f0d3518 },
++  (__ev64_s32__) { 0x14a71a9c, 0x4d8931fc },
++  (__ev64_s32__) { 0xdb18135a, 0x39b6db34 },
++  (__ev64_s32__) { 0xf4fdbc8, 0xc16f7e8 },
++  (__ev64_s32__) { 0x17da7610, 0x13e696bc },
++  (__ev64_s32__) { 0xfc15cbe0, 0xf5a47b80 },
++  (__ev64_s32__) { 0xef9a7600, 0x15e409c },
++  (__ev64_s32__) { 0xf0b902d4, 0xb419ab84 },
++  (__ev64_s32__) { 0x5b0fa96e, 0x13d225f0 },
++  (__ev64_s32__) { 0x197a0138, 0xbe5a73ec },
++  (__ev64_s32__) { 0xf90a0720, 0x59f8f320 },
++  (__ev64_s32__) { 0x9049440, 0xdc75fc04 },
++  (__ev64_s32__) { 0xec7d88f8, 0x2d1874a0 },
++  (__ev64_s32__) { 0xc464d14c, 0xf45251fe },
++  (__ev64_s32__) { 0xc9f8c438, 0xa34bc900 },
++  (__ev64_s32__) { 0xcb40e5a8, 0xdc22584e },
++  (__ev64_s32__) { 0xeb71ea88, 0xcbfc4336 },
++  (__ev64_s32__) { 0x367269ec, 0xfcca522c },
++  (__ev64_s32__) { 0xd5a58a2, 0xda6a5190 },
++  (__ev64_s32__) { 0x49052d2, 0x5ce31468 },
++  (__ev64_s32__) { 0x22440e88, 0x5071cf8c },
++  (__ev64_s32__) { 0xf9011e0c, 0xd5757a54 },
++  (__ev64_s32__) { 0xfd7ba6a4, 0x24c658f0 },
++  (__ev64_s32__) { 0x176f306a, 0xc09685e4 },
++  (__ev64_s32__) { 0x43ad0126, 0xc4fc6300 },
++  (__ev64_s32__) { 0x5ee57580, 0x8b83624 },
++  (__ev64_s32__) { 0xa2a8600, 0xcbd46570 },
++  (__ev64_s32__) { 0xff78be92, 0xddfe3b10 },
++  (__ev64_s32__) { 0x2d04ed20, 0x42afcc0 },
++  (__ev64_s32__) { 0xd3de36cc, 0x57e3f0 },
++  (__ev64_s32__) { 0x17c26f68, 0x20992d24 },
++  (__ev64_s32__) { 0x218c5b7e, 0x37a4aed4 },
++  (__ev64_s32__) { 0xc7d13f88, 0x20c3a8be },
++  (__ev64_s32__) { 0x3a483ee4, 0x42ff8ae },
++  (__ev64_s32__) { 0x22b7b730, 0x2e677188 },
++  (__ev64_s32__) { 0x539b42e0, 0x6b914ea },
++  (__ev64_s32__) { 0x23f1aa34, 0xcfc84e6c },
++  (__ev64_s32__) { 0x485a676, 0xf26e810e },
++  (__ev64_s32__) { 0xf87cad00, 0xf7241310 },
++  (__ev64_s32__) { 0x67b2481c, 0x1451e2fc },
++  (__ev64_s32__) { 0xfcc25b08, 0xc63ef64c },
++  (__ev64_s32__) { 0xd3782490, 0xcbefbfd8 },
++  (__ev64_s32__) { 0x9791f9c, 0xdc90aa30 },
++  (__ev64_s32__) { 0xf67f3170, 0xdf33d518 },
++  (__ev64_s32__) { 0xf9bf9250, 0xff4732f0 },
++  (__ev64_s32__) { 0x26390f28, 0xe0d486a8 },
++  (__ev64_s32__) { 0x47a4ce04, 0xe3c39c80 },
++  (__ev64_s32__) { 0xda134e98, 0x9741c08a },
++  (__ev64_s32__) { 0x68a7e5a, 0x231b16 },
++  (__ev64_s32__) { 0x5f6da024, 0xdda65554 },
++  (__ev64_s32__) { 0x39f756a0, 0xfe99f680 },
++  (__ev64_s32__) { 0xd99b9c60, 0x5fb5e14 },
++  (__ev64_s32__) { 0x1ca676e2, 0x1329534 },
++  (__ev64_s32__) { 0x2f1dd242, 0x20740c4 },
++  (__ev64_s32__) { 0x919e8c4, 0xf4219e70 },
++  (__ev64_s32__) { 0x3e087c10, 0xdb01d590 },
++  (__ev64_s32__) { 0xfcad4ad4, 0xe48e2276 },
++  (__ev64_s32__) { 0xc45a459c, 0x81ab84 },
++  (__ev64_s32__) { 0x1f6395ac, 0x23adee80 },
++  (__ev64_s32__) { 0x1ebb7946, 0x34d77380 },
++  (__ev64_s32__) { 0xeca3634, 0xe94221c0 },
++  (__ev64_s32__) { 0x4994ecb0, 0x6cccdf80 },
++  (__ev64_s32__) { 0x337e7c68, 0xf73faf38 },
++  (__ev64_s32__) { 0x466f8440, 0x180a5f80 },
++  (__ev64_s32__) { 0x1bd18d30, 0xf7cab80a },
++  (__ev64_s32__) { 0x9c0183e4, 0x1437b0a0 },
++  (__ev64_s32__) { 0xc32b854, 0xf69e0118 },
++  (__ev64_s32__) { 0xd8ab44c4, 0xf2a9cdd2 },
++  (__ev64_s32__) { 0x43c8bcd8, 0xddd60930 },
++  (__ev64_s32__) { 0x52208508, 0xf9a3f8e8 },
++  (__ev64_s32__) { 0x162e1b00, 0x137363b8 },
++  (__ev64_s32__) { 0xfeca2596, 0x15a9c990 },
++  (__ev64_s32__) { 0x111c4428, 0x349e2508 },
++  (__ev64_s32__) { 0xb24f6ef0, 0x381a9bb0 },
++  (__ev64_s32__) { 0x5602de0, 0x219b2140 },
++  (__ev64_s32__) { 0x12919080, 0xb5d5f06c },
++  (__ev64_s32__) { 0x642f9660, 0x5d814c7a },
++  (__ev64_s32__) { 0x44cd427c, 0x4042c4a4 },
++  (__ev64_s32__) { 0x16cc7550, 0xf9735dd8 },
++  (__ev64_s32__) { 0x49595910, 0x1bfb00e8 },
++  (__ev64_s32__) { 0x5dc472d4, 0x2add9190 },
++  (__ev64_s32__) { 0x1b6a76a4, 0xff6cd600 },
++  (__ev64_s32__) { 0x18581624, 0x28d45790 },
++  (__ev64_s32__) { 0xcbcba51e, 0x13c14f68 },
++  (__ev64_s32__) { 0x664c528, 0x423aedc8 },
++  (__ev64_s32__) { 0xdf2e0ea0, 0x3d9e7928 },
++  (__ev64_s32__) { 0x60c180, 0x25213020 },
++  (__ev64_s32__) { 0x181fadfc, 0x2878242 },
++  (__ev64_s32__) { 0x9c14aafc, 0x58a3910 },
++  (__ev64_s32__) { 0x55a7e096, 0x98c7a126 },
++  (__ev64_s32__) { 0xf4e48b32, 0x2015bf90 },
++  (__ev64_s32__) { 0xc4e7c81c, 0x191ec8 },
++  (__ev64_s32__) { 0x11f1f87c, 0x2bb9a228 },
++  (__ev64_s32__) { 0xcb5170c, 0xb615a48 },
++  (__ev64_s32__) { 0x4cf4b68, 0xf8fda874 },
++  (__ev64_s32__) { 0xd45c76fc, 0xcd34226c },
++  (__ev64_s32__) { 0x20a3aeb0, 0xeffd8948 },
++  (__ev64_s32__) { 0xdf7dd882, 0xee7dcc0 },
++  (__ev64_s32__) { 0x9961ab36, 0xfc25ea4 },
++  (__ev64_s32__) { 0xd20de8b0, 0xfc095e6c },
++  (__ev64_s32__) { 0xa6d06970, 0xffc05090 },
++  (__ev64_s32__) { 0x6e62458, 0x24adaa00 },
++  (__ev64_s32__) { 0xf6364edc, 0xb284aab8 },
++  (__ev64_s32__) { 0xd7098660, 0xf10980e8 },
++  (__ev64_s32__) { 0xc0bab59c, 0x26dbfa5c },
++  (__ev64_s32__) { 0x4737cc60, 0xd6975ee8 },
++  (__ev64_s32__) { 0x94613a58, 0xfb099ab2 },
++  (__ev64_s32__) { 0x4c81310, 0xe5c6e160 },
++  (__ev64_s32__) { 0xfec3b2ca, 0xfff6d5f4 },
++  (__ev64_s32__) { 0xf42f3400, 0xbb0c41d0 },
++  (__ev64_s32__) { 0x2e0c9a76, 0xe9fd817e },
++  (__ev64_s32__) { 0xa228ef0, 0xee088d40 },
++  (__ev64_s32__) { 0x4457deca, 0xf0e9f25e },
++  (__ev64_s32__) { 0x132fdd4, 0xc5fa3b84 },
++  (__ev64_s32__) { 0x793f4700, 0x1bf561b8 },
++  (__ev64_s32__) { 0xf9a2364c, 0x26393d84 },
++  (__ev64_s32__) { 0xf546dfd8, 0xf05a0da0 },
++  (__ev64_s32__) { 0xba86b0f4, 0xda9d315a },
++  (__ev64_s32__) { 0xc3ec0442, 0xfd53ae58 },
++  (__ev64_s32__) { 0xe5695706, 0x5dce630 },
++  (__ev64_s32__) { 0x3320e74e, 0xd6125f60 },
++  (__ev64_s32__) { 0xfc8dcdf8, 0xb5b6b69c },
++  (__ev64_s32__) { 0x5a560a0, 0xfdf957fe },
++  (__ev64_s32__) { 0x3563a92, 0xf95678b0 },
++  (__ev64_s32__) { 0x34393210, 0x9c8514a0 },
++  (__ev64_s32__) { 0x2e527980, 0xd0176dac },
++  (__ev64_s32__) { 0xf13f1334, 0x22a6880 },
++  (__ev64_s32__) { 0xf609bdc, 0xff8da96c },
++  (__ev64_s32__) { 0x4253af30, 0x2192567a },
++  (__ev64_s32__) { 0x1419e95c, 0xf9778c00 },
++  (__ev64_s32__) { 0xc609d1d4, 0xee155724 },
++  (__ev64_s32__) { 0xe3920a56, 0xdf2f8660 },
++  (__ev64_s32__) { 0x70dad220, 0xe0e246f6 },
++  (__ev64_s32__) { 0xe0c4af54, 0x42bdf0 },
++  (__ev64_s32__) { 0xb7122b8e, 0xfa198814 },
++  (__ev64_s32__) { 0x119ac85e, 0xfc0572e0 },
++  (__ev64_s32__) { 0x98607be, 0xb18fa5a },
++  (__ev64_s32__) { 0xb65234c0, 0xd0f70158 },
++  (__ev64_s32__) { 0xf3753e0e, 0xf307f50 },
++  (__ev64_s32__) { 0x1c89fbdc, 0x35deeb44 },
++  (__ev64_s32__) { 0x149ad58, 0x5b29708 },
++  (__ev64_s32__) { 0xa0464c52, 0xa45e18 },
++  (__ev64_s32__) { 0x1c9a6f64, 0xcadbdef0 },
++  (__ev64_s32__) { 0x65fd0f34, 0xd7ad8c6 },
++  (__ev64_s32__) { 0x1415804c, 0xfafb7408 },
++  (__ev64_s32__) { 0x689978ac, 0xe8c2e364 },
++  (__ev64_s32__) { 0x326c4918, 0x1c0a9214 },
++  (__ev64_s32__) { 0xfe77839c, 0x23557ef8 },
++  (__ev64_s32__) { 0x53eeea18, 0xeb9e84b4 },
++  (__ev64_s32__) { 0xfa05abba, 0xeecec94c },
++  (__ev64_s32__) { 0xf9c2d0ac, 0x58890 },
++  (__ev64_s32__) { 0x15196868, 0x583ae360 },
++  (__ev64_s32__) { 0xee1150c, 0x16d43c20 },
++  (__ev64_s32__) { 0x24469fe0, 0xf83b3690 },
++  (__ev64_s32__) { 0xf25d2984, 0xb3adac },
++  (__ev64_s32__) { 0x78dfb50, 0x88b7e2a },
++  (__ev64_s32__) { 0xe9c22124, 0xac0626c0 },
++  (__ev64_s32__) { 0xf469e180, 0xd2426d18 },
++  (__ev64_s32__) { 0xd1aa5bae, 0xc441aec8 },
++  (__ev64_s32__) { 0xf2f2fd2c, 0xec8a3a80 },
++  (__ev64_s32__) { 0xf92e6740, 0x327f7d38 },
++  (__ev64_s32__) { 0x3345aec, 0x274597d8 },
++  (__ev64_s32__) { 0xb8a1f8ba, 0xffaa4d5a },
++  (__ev64_s32__) { 0x25f99fbc, 0xfcb63e0 },
++  (__ev64_s32__) { 0xf950286a, 0x58aad96 },
++  (__ev64_s32__) { 0x15040050, 0xde6221a0 },
++  (__ev64_s32__) { 0x1efbb344, 0x6a91086 },
++  (__ev64_s32__) { 0xce7363f4, 0xe36b03f0 },
++  (__ev64_s32__) { 0xc9f3e4b2, 0x53503268 },
++  (__ev64_s32__) { 0xd7a8938c, 0xbe6d94c8 },
++  (__ev64_s32__) { 0x2bc93f80, 0x1b5f8ecc },
++  (__ev64_s32__) { 0xb42b20bc, 0xf49cf498 },
++  (__ev64_s32__) { 0x538f0c66, 0x45215c38 },
++  (__ev64_s32__) { 0xfdae4b84, 0x19696b6c },
++  (__ev64_s32__) { 0x67f078cc, 0xf7159ec },
++  (__ev64_s32__) { 0xf5776fec, 0xfb78b644 },
++  (__ev64_s32__) { 0x438a2a64, 0x3618465a },
++  (__ev64_s32__) { 0x1bb6d2b0, 0x1ea3440 },
++  (__ev64_s32__) { 0xe241cd3c, 0xf8f09508 },
++  (__ev64_s32__) { 0xff74cfaa, 0x695b76 },
++  (__ev64_s32__) { 0x5ee5b7a, 0xffb60d08 },
++  (__ev64_s32__) { 0x96539496, 0xdb10a0b0 },
++  (__ev64_s32__) { 0xbe7e8f90, 0x5075e770 },
++  (__ev64_s32__) { 0xfc43a300, 0x1b7bafe },
++  (__ev64_s32__) { 0x5b5aba5c, 0x2e52266a },
++  (__ev64_s32__) { 0xff5c0f40, 0xe8d56e50 },
++  (__ev64_s32__) { 0xae68a00, 0xe00ed6e4 },
++  (__ev64_s32__) { 0x49d5889e, 0x1049f13a },
++  (__ev64_s32__) { 0xcadd3a5e, 0xf2afff54 },
++  (__ev64_s32__) { 0xf9b728cc, 0xedeb901c },
++  (__ev64_s32__) { 0xc5365e, 0xa494dd62 },
++  (__ev64_s32__) { 0xcfd0b87a, 0xbfaba0c },
++  (__ev64_s32__) { 0xfbf6034, 0xd3029760 },
++  (__ev64_s32__) { 0xefceaf58, 0x4d90e1b8 },
++  (__ev64_s32__) { 0xcf30e860, 0x1610be2a },
++  (__ev64_s32__) { 0xfe044200, 0x27e01c6 },
++  (__ev64_s32__) { 0xcc05a08e, 0xe871fc04 },
++  (__ev64_s32__) { 0x22dfe640, 0xe7b5b2b0 },
++  (__ev64_s32__) { 0x20a52528, 0xc6b308e4 },
++  (__ev64_s32__) { 0x599cb494, 0xf49a4d90 },
++  (__ev64_s32__) { 0xea8c7820, 0xff22707a },
++  (__ev64_s32__) { 0xfb591b8, 0xffa053a0 },
++  (__ev64_s32__) { 0xee99bdc0, 0xdbb1cb28 },
++  (__ev64_s32__) { 0xda6029d6, 0x1b3ab19c },
++  (__ev64_s32__) { 0x1e660b20, 0xe951f6da },
++  (__ev64_s32__) { 0x10f26d6e, 0xb5d01eb6 },
++  (__ev64_s32__) { 0xf996e1c8, 0xfb175550 },
++  (__ev64_s32__) { 0xe33ff51a, 0xaf62805e },
++  (__ev64_s32__) { 0x495af20, 0xbe52f78 },
++  (__ev64_s32__) { 0x71d01fa, 0xfaf07026 },
++  (__ev64_s32__) { 0xec260df4, 0x357d0b4 },
++  (__ev64_s32__) { 0x3e0caf7c, 0xf0689078 },
++  (__ev64_s32__) { 0xfbf3708c, 0xdf7dc514 },
++  (__ev64_s32__) { 0xfe0af748, 0xbd27b7c8 },
++  (__ev64_s32__) { 0xf0649a40, 0x760cb78 },
++  (__ev64_s32__) { 0xce6c552c, 0xfbeca626 },
++  (__ev64_s32__) { 0x40f0e250, 0xc7685a2 },
++  (__ev64_s32__) { 0xe19cc008, 0x4cc0573c },
++  (__ev64_s32__) { 0x163b3282, 0xfd143e80 },
++  (__ev64_s32__) { 0xf22a24, 0x2fa3d062 },
++  (__ev64_s32__) { 0xf63f4ad0, 0xfd5954d8 },
++  (__ev64_s32__) { 0x738b830, 0xdab8c2aa },
++  (__ev64_s32__) { 0x5fbcd050, 0x21b62e5e },
++  (__ev64_s32__) { 0xe0d6612c, 0x3389a372 },
++  (__ev64_s32__) { 0x114e4a36, 0x4d7ce7a },
++  (__ev64_s32__) { 0x679b33c, 0x1c047d8 },
++  (__ev64_s32__) { 0x91646722, 0x3a4bc528 },
++  (__ev64_s32__) { 0x4dfc2980, 0x31b600c0 },
++  (__ev64_s32__) { 0xc20e581e, 0x97a00a6 },
++  (__ev64_s32__) { 0xfa4424d4, 0x299a9e40 },
++  (__ev64_s32__) { 0x2d606534, 0xa51400b0 },
++  (__ev64_s32__) { 0xb921b570, 0x58d682 },
++  (__ev64_s32__) { 0x5cb7c4c, 0x9a5564 },
++  (__ev64_s32__) { 0xf84a3e98, 0x178d2068 },
++  (__ev64_s32__) { 0xa79f6a1c, 0xfa166bb0 },
++  (__ev64_s32__) { 0x1348d8b0, 0x4baf1f4 },
++  (__ev64_s32__) { 0x20123b30, 0x29f443be },
++  (__ev64_s32__) { 0x461210c0, 0x22929e52 },
++  (__ev64_s32__) { 0x120ea760, 0xfef89d0a },
++  (__ev64_s32__) { 0x994d3a00, 0xdd085604 },
++
++};
++#endif // __SPE__
++
++int evmhosmf_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == (evmhosmf_baseline[i][0]));
++    VERIFY(regD[1] == (evmhosmf_baseline[i][1]));
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmf_asm, "evmhosmf");
++
++#ifdef __SPE__
++__ev64_s32__ *evmhosmfa_baseline = evmhosmf_baseline;
++#endif // __SPE__
++
++int evmhosmfa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++    VERIFY(regD[1] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhosmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhosmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhosmfa_baseline[i][1]);
++#endif
++    // Verify that evmhosmfa wrote into the ACC:
++    regD = (__ev64_s32__) { 0x0, 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhosmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhosmfa_baseline[i][1]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhosmfa_asm, "evmhosmfa");
++
++#ifdef __SPE__
++__ev64_s32__ evmhesmfanw_baseline[] = {
++
++  (__ev64_s32__) { 0x18bc2d08,  0x5baab9ae },
++  (__ev64_s32__) { 0x1e9fc0c2,  0x6f3759a2 },
++  (__ev64_s32__) { 0xcbddda4a,  0x426c8730 },
++  (__ev64_s32__) { 0xdb1825fa,  0x27ace390 },
++  (__ev64_s32__) { 0xb49b609a,  0xf8377f58 },
++  (__ev64_s32__) { 0xfdec497a,  0xb338f84 },
++  (__ev64_s32__) { 0xb25da11a,  0x9bc9a04 },
++  (__ev64_s32__) { 0xb6df8d16,  0xa93d502 },
++  (__ev64_s32__) { 0xbce6d7ca,  0x1cd156d6 },
++  (__ev64_s32__) { 0xb9d59f62,  0x4d814ee2 },
++  (__ev64_s32__) { 0xef98cee2,  0xdcf67a },
++  (__ev64_s32__) { 0xd9c6cbfa,  0x56cf18d0 },
++  (__ev64_s32__) { 0x9995971e,  0x52490088 },
++  (__ev64_s32__) { 0xa0817cea,  0x99625f68 },
++  (__ev64_s32__) { 0x9d7b1332,  0xa31d4d3c },
++  (__ev64_s32__) { 0xaeb4cc68,  0x98672562 },
++  (__ev64_s32__) { 0xbc2b4b68,  0xa99c5262 },
++  (__ev64_s32__) { 0xf86d64b0,  0x1a221a62 },
++  (__ev64_s32__) { 0xc3332e56,  0x70732eba },
++  (__ev64_s32__) { 0xf6537ce6,  0x8cc1722a },
++  (__ev64_s32__) { 0x165f81ba,  0x8ca7bb28 },
++  (__ev64_s32__) { 0x4fd9d6aa,  0x9499a274 },
++  (__ev64_s32__) { 0x3e7fd76a,  0xd1021f04 },
++  (__ev64_s32__) { 0x368e50da,  0xc2a63530 },
++  (__ev64_s32__) { 0x24c4f5aa,  0x971212c8 },
++  (__ev64_s32__) { 0x3dbbfe1a,  0xa0d9c9c8 },
++  (__ev64_s32__) { 0xb5980e60,  0x9b4bbbd8 },
++  (__ev64_s32__) { 0x73350ca0,  0x9a378fc0 },
++  (__ev64_s32__) { 0x762f5080,  0x9d3d07d6 },
++  (__ev64_s32__) { 0x747ddac6,  0x6759ccec },
++  (__ev64_s32__) { 0x5f5a62a4,  0x119d7f64 },
++  (__ev64_s32__) { 0x62b4af24,  0x2077f97a },
++  (__ev64_s32__) { 0x523905c4,  0xd29962ca },
++  (__ev64_s32__) { 0x155d303a,  0x4217a7a },
++  (__ev64_s32__) { 0x6eabdba,  0x4782c3a },
++  (__ev64_s32__) { 0x770993a,  0x3e7a52a },
++  (__ev64_s32__) { 0x1723fcba,  0x4440802 },
++  (__ev64_s32__) { 0xba9fbe,  0xe337e6ea },
++  (__ev64_s32__) { 0x25d4b11e,  0xd855cf3e },
++  (__ev64_s32__) { 0x247d23cc,  0xc60c8fa8 },
++  (__ev64_s32__) { 0x4f63d80,  0xcd70e95c },
++  (__ev64_s32__) { 0x1d0fb860,  0x2568c194 },
++  (__ev64_s32__) { 0x213581fc,  0x2053f660 },
++  (__ev64_s32__) { 0x11b856dc,  0x2619e686 },
++  (__ev64_s32__) { 0xf8d7db06,  0x340feae6 },
++  (__ev64_s32__) { 0x29447406,  0x3d3c3008 },
++  (__ev64_s32__) { 0x19bcc696,  0x3bf9f46c },
++  (__ev64_s32__) { 0x477627ae,  0x4c445494 },
++  (__ev64_s32__) { 0x3ca5beae,  0xb961a0f2 },
++  (__ev64_s32__) { 0x94afe44e,  0xbeeb9f64 },
++  (__ev64_s32__) { 0x8fd31e4a,  0xef8be4d4 },
++  (__ev64_s32__) { 0xd337111e,  0x7457d2e },
++  (__ev64_s32__) { 0xd50fe60a,  0x186ae642 },
++  (__ev64_s32__) { 0x763ca7b6,  0x25c6f0dc },
++  (__ev64_s32__) { 0x781b911a,  0x1877583c },
++  (__ev64_s32__) { 0x22492c66,  0x1a390fd0 },
++  (__ev64_s32__) { 0x542367ce,  0x3910cdee },
++  (__ev64_s32__) { 0x3da3b66a,  0x11cb9dce },
++  (__ev64_s32__) { 0x18a437da,  0xcf01c18a },
++  (__ev64_s32__) { 0x1652b916,  0xccc5a71c },
++  (__ev64_s32__) { 0xf30ed016,  0x11887fc },
++  (__ev64_s32__) { 0x9e9119d6,  0xfff64c },
++  (__ev64_s32__) { 0xe9b87c7e,  0xeb48c88c },
++  (__ev64_s32__) { 0xfc74bb6c,  0xf8f75672 },
++  (__ev64_s32__) { 0x35c5b038,  0xf8d5941a },
++  (__ev64_s32__) { 0x4f17549a,  0x3f80f0fe },
++  (__ev64_s32__) { 0x3e5188f8,  0x14e067fe },
++  (__ev64_s32__) { 0xf26bb378,  0x494cf04 },
++  (__ev64_s32__) { 0xc4184d6c,  0x820abd4 },
++  (__ev64_s32__) { 0xdcf96a20,  0x2bb784f0 },
++  (__ev64_s32__) { 0xf80c20a2,  0x4ab1fb60 },
++  (__ev64_s32__) { 0x8afd2698,  0x1d137360 },
++  (__ev64_s32__) { 0x6ab043c4,  0xc1685e4 },
++  (__ev64_s32__) { 0x85efd1a8,  0x10889324 },
++  (__ev64_s32__) { 0x4169fdc4,  0xe94d62e4 },
++  (__ev64_s32__) { 0x699bb150,  0xede582a4 },
++  (__ev64_s32__) { 0x67f3f65c,  0xf0230990 },
++  (__ev64_s32__) { 0x680f1234,  0xf29ed590 },
++  (__ev64_s32__) { 0x8680017c,  0x18f8b992 },
++  (__ev64_s32__) { 0x5be12044,  0xdfd5cafe },
++  (__ev64_s32__) { 0xab1fb53c,  0xcf26477e },
++  (__ev64_s32__) { 0x3debda94,  0xd0b7b206 },
++  (__ev64_s32__) { 0x2fceb52c,  0xb1cb0a86 },
++  (__ev64_s32__) { 0x1ff349ec,  0x1f6e5b72 },
++  (__ev64_s32__) { 0x282c2908,  0x206648e6 },
++  (__ev64_s32__) { 0x8577b6d8,  0x59b532e6 },
++  (__ev64_s32__) { 0x98badc48,  0x59e195cc },
++  (__ev64_s32__) { 0x2e218682,  0x589e6208 },
++  (__ev64_s32__) { 0x13f1e1be,  0x4d65bbe8 },
++  (__ev64_s32__) { 0x13a46b06,  0x4dcf5a28 },
++  (__ev64_s32__) { 0x798911e6,  0xe0eb346c },
++  (__ev64_s32__) { 0x709aa59e,  0x70e7b26c },
++  (__ev64_s32__) { 0x94fcaa76,  0x572bdb5e },
++  (__ev64_s32__) { 0x9b2a4ffe,  0x43601aa4 },
++  (__ev64_s32__) { 0xa1d54dd6,  0x4df21860 },
++  (__ev64_s32__) { 0x8aba360e,  0x63b4f64c },
++  (__ev64_s32__) { 0xa255f6d4,  0x7228e5a8 },
++  (__ev64_s32__) { 0xb2f64342,  0x8d8726b4 },
++  (__ev64_s32__) { 0xc0cd39a0,  0xacbec3fc },
++  (__ev64_s32__) { 0xdd54aa60,  0x724a0ddc },
++  (__ev64_s32__) { 0xe45e50b8,  0x3ae2644c },
++  (__ev64_s32__) { 0xd91230c0,  0x28ff4fe8 },
++  (__ev64_s32__) { 0xcaa95b52,  0xd28f4cf8 },
++  (__ev64_s32__) { 0xe07ef344,  0xdb7c13c8 },
++  (__ev64_s32__) { 0xc1ec5a16,  0xd6686788 },
++  (__ev64_s32__) { 0xc0b4f660,  0xe1706eba },
++  (__ev64_s32__) { 0xce3cc984,  0xe9ab4b7c },
++  (__ev64_s32__) { 0xd948d300,  0xc63a8c0c },
++  (__ev64_s32__) { 0xd2b530c0,  0xe3b20cd0 },
++  (__ev64_s32__) { 0x3ac7dc,  0xed2df6d8 },
++  (__ev64_s32__) { 0xa55a7cf6,  0xf1bc7918 },
++  (__ev64_s32__) { 0xa12c2bb6,  0x22a914a4 },
++  (__ev64_s32__) { 0xf16cf4c2,  0x3d56f016 },
++  (__ev64_s32__) { 0x9a6d5552,  0x45b5cb0c },
++  (__ev64_s32__) { 0xafc53a92,  0x426f4f38 },
++  (__ev64_s32__) { 0xade7d178,  0x2a987038 },
++  (__ev64_s32__) { 0x769e50f4,  0x81f19554 },
++  (__ev64_s32__) { 0x7446c71a,  0xc71fb132 },
++  (__ev64_s32__) { 0x10a61f9a,  0x10c79f52 },
++  (__ev64_s32__) { 0xf9cb9ea0,  0x214dc64c },
++  (__ev64_s32__) { 0xefe86ba2,  0x51b50c6c },
++  (__ev64_s32__) { 0x840119a6,  0x5e3124fc },
++  (__ev64_s32__) { 0xb27d717c,  0x10df8810 },
++  (__ev64_s32__) { 0xd759f19e,  0xd8c703e8 },
++  (__ev64_s32__) { 0xccf5d964,  0xdf3e6fa8 },
++  (__ev64_s32__) { 0x699ed59e,  0xdda283a8 },
++  (__ev64_s32__) { 0x37eade0e,  0xb5f1dd78 },
++  (__ev64_s32__) { 0x58fb8436,  0xa2863d4c },
++  (__ev64_s32__) { 0x83532602,  0xd8fad584 },
++  (__ev64_s32__) { 0x7538086c,  0xd43323e4 },
++  (__ev64_s32__) { 0xadaf5b90,  0xd6d15af6 },
++  (__ev64_s32__) { 0xab5f9290,  0xa8f7e5a6 },
++  (__ev64_s32__) { 0xdf1ecfe8,  0x8fdce82a },
++  (__ev64_s32__) { 0x3f2925d2,  0x904c4e86 },
++  (__ev64_s32__) { 0x2df62bf2,  0x5d444dda },
++  (__ev64_s32__) { 0x2f9623c2,  0x42e22b1a },
++  (__ev64_s32__) { 0x4c997dc0,  0x74121f2a },
++  (__ev64_s32__) { 0xfd457bd6,  0x89d8d93e },
++  (__ev64_s32__) { 0xffa1bd92,  0x47b57bcc },
++  (__ev64_s32__) { 0xff7fda9e,  0x2d114a12 },
++  (__ev64_s32__) { 0x8ecde8e,  0x21449212 },
++  (__ev64_s32__) { 0x2c3de04e,  0x17c0b13e },
++  (__ev64_s32__) { 0x2cdee2b8,  0xaf7e5842 },
++  (__ev64_s32__) { 0x261a84c0,  0xbe9663ac },
++  (__ev64_s32__) { 0xa1ea552c,  0xb3fa2c54 },
++  (__ev64_s32__) { 0xa1d2d956,  0x9a7d5fde },
++  (__ev64_s32__) { 0x8c109fc0,  0x852f48d8 },
++  (__ev64_s32__) { 0x5d1bfd80,  0x7cd902e0 },
++  (__ev64_s32__) { 0x5bc1e6b0,  0x65ee4880 },
++  (__ev64_s32__) { 0xb54a936c,  0x3e172200 },
++  (__ev64_s32__) { 0x525ceb40,  0xef147f22 },
++  (__ev64_s32__) { 0x43d6eb98,  0x159589e },
++  (__ev64_s32__) { 0x5c0d320c,  0x9fd42c2e },
++  (__ev64_s32__) { 0x17d4434c,  0xa88b234c },
++  (__ev64_s32__) { 0x43da29b4,  0xa8a410ac },
++  (__ev64_s32__) { 0x4c78a600,  0x814c73ac },
++  (__ev64_s32__) { 0xf3711f8,  0xa58342ac },
++  (__ev64_s32__) { 0xe2880b30,  0xaaf27528 },
++  (__ev64_s32__) { 0xc2791fda,  0x6054959a },
++  (__ev64_s32__) { 0xcddb073a,  0x615cad8a },
++  (__ev64_s32__) { 0xd453284a,  0x3c35ab4a },
++  (__ev64_s32__) { 0xd3a5b2aa,  0x38fcb6b2 },
++  (__ev64_s32__) { 0xff7d1d2a,  0x37c05e96 },
++  (__ev64_s32__) { 0xaa5c3c2,  0xfb7ad646 },
++  (__ev64_s32__) { 0xa372ea2,  0x26a6cc26 },
++  (__ev64_s32__) { 0xdf8d7c92,  0x73a242e },
++  (__ev64_s32__) { 0xdb149e54,  0x19f6d6a8 },
++  (__ev64_s32__) { 0x22b75004,  0x21a3d2e6 },
++  (__ev64_s32__) { 0xd40876e2,  0x8370a12 },
++  (__ev64_s32__) { 0xc23d6c7c,  0x41029de },
++  (__ev64_s32__) { 0xccae8a74,  0x9ad4299c },
++  (__ev64_s32__) { 0x9d2afcf4,  0x869b0cfc },
++  (__ev64_s32__) { 0x75603194,  0xa6ff804c },
++  (__ev64_s32__) { 0x6dee78d2,  0x98b94734 },
++  (__ev64_s32__) { 0x171f054e,  0x9780be24 },
++  (__ev64_s32__) { 0x3c4c724e,  0x99be6c28 },
++  (__ev64_s32__) { 0x2009d24e,  0xa8617f90 },
++  (__ev64_s32__) { 0xec6e6c0e,  0x9eb413e6 },
++  (__ev64_s32__) { 0xeee8f928,  0xa6f91a0e },
++  (__ev64_s32__) { 0xe9aa286c,  0xa5e58c8e },
++  (__ev64_s32__) { 0x3393ac00,  0xbf1fccee },
++  (__ev64_s32__) { 0x1d23f50,  0xb948b5a6 },
++  (__ev64_s32__) { 0x2479b510,  0x6ae01114 },
++  (__ev64_s32__) { 0x27995818,  0x946ba5b4 },
++  (__ev64_s32__) { 0x4c1e8802,  0x32498bbc },
++  (__ev64_s32__) { 0xfba5570c,  0x42246f54 },
++  (__ev64_s32__) { 0x35cbcc2c,  0xff292f16 },
++  (__ev64_s32__) { 0xdc50dcc8,  0xbd6c613e },
++  (__ev64_s32__) { 0x9c5dc3c,  0xcc2d171c },
++  (__ev64_s32__) { 0x825a37fa,  0xc36e1a54 },
++  (__ev64_s32__) { 0x647f4086,  0xbc4ce5f4 },
++  (__ev64_s32__) { 0x6cbb9f02,  0x193a5d26 },
++  (__ev64_s32__) { 0x5bdd92ee,  0x3e80a906 },
++  (__ev64_s32__) { 0x4a7938ac,  0x4a1b2cae },
++  (__ev64_s32__) { 0xab53c9dc,  0x367a033e },
++  (__ev64_s32__) { 0xb69d0538,  0x43e7c260 },
++  (__ev64_s32__) { 0xbbe6ef40,  0xa54f660 },
++  (__ev64_s32__) { 0xb79e9600,  0x5013b1c2 },
++  (__ev64_s32__) { 0x4bd19abc,  0x407d9a10 },
++  (__ev64_s32__) { 0x57b71280,  0x566a1460 },
++  (__ev64_s32__) { 0x1c0a9234,  0x4f114670 },
++  (__ev64_s32__) { 0xfd3551f0,  0x57087bb4 },
++  (__ev64_s32__) { 0x42c745c0,  0x5967f0e2 },
++  (__ev64_s32__) { 0x6cf4bdc0,  0xf9fd6bda },
++  (__ev64_s32__) { 0x6dee18c0,  0x4b1d02b2 },
++  (__ev64_s32__) { 0x42c771ce,  0xbc00b0a },
++  (__ev64_s32__) { 0x43619886,  0xa9952f4 },
++  (__ev64_s32__) { 0x2d678d9e,  0xfceb3a32 },
++  (__ev64_s32__) { 0x2ba54af6,  0x1073508 },
++  (__ev64_s32__) { 0x5320fd2e,  0x1a837a0e },
++  (__ev64_s32__) { 0xd9ed0d74,  0x5546bfe2 },
++  (__ev64_s32__) { 0xef1394f0,  0x38c0e0e },
++  (__ev64_s32__) { 0x1c56ddf4,  0x14b209b6 },
++  (__ev64_s32__) { 0xc8ac3b44,  0x16fc67a2 },
++  (__ev64_s32__) { 0xdf4d49c8,  0x4516b484 },
++  (__ev64_s32__) { 0xbb83f384,  0x39ac0aec },
++  (__ev64_s32__) { 0x776b0b96,  0x3b370e5c },
++  (__ev64_s32__) { 0x2789caf6,  0x89145ecc },
++  (__ev64_s32__) { 0x42815c66,  0x7e0bc454 },
++  (__ev64_s32__) { 0x1f188aa6,  0xb476735c },
++  (__ev64_s32__) { 0x26edbc8e,  0x852d5a88 },
++  (__ev64_s32__) { 0x6c8b08a4,  0x8a1e16f0 },
++  (__ev64_s32__) { 0x60683b78,  0xbd2432fe },
++  (__ev64_s32__) { 0x59bfab84,  0x7f342862 },
++  (__ev64_s32__) { 0x533dc9f4,  0x7ceb7af4 },
++  (__ev64_s32__) { 0x37198f84,  0x724bd3b4 },
++  (__ev64_s32__) { 0x661fdc8c,  0x85593f4c },
++  (__ev64_s32__) { 0x73a14648,  0xa548b9ce },
++  (__ev64_s32__) { 0x9497cede,  0xe856a85e },
++  (__ev64_s32__) { 0x697d575a,  0xe028c66a },
++  (__ev64_s32__) { 0x873b44ea,  0xe0ae4506 },
++  (__ev64_s32__) { 0x956befee,  0x1c76c3d6 },
++  (__ev64_s32__) { 0x7886b3a6,  0x4191b16c },
++  (__ev64_s32__) { 0x5e8ad5b8,  0x22b629bc },
++  (__ev64_s32__) { 0x505f1904,  0xfce16282 },
++  (__ev64_s32__) { 0x551e70d4,  0x1315797a },
++  (__ev64_s32__) { 0xb43e00e8,  0x2d0b8594 },
++  (__ev64_s32__) { 0xde211168,  0x36a196f0 },
++  (__ev64_s32__) { 0xc19171da,  0x315e60b8 },
++  (__ev64_s32__) { 0xb998b902,  0x3f83390c },
++  (__ev64_s32__) { 0xc31f07c0,  0x729da376 },
++  (__ev64_s32__) { 0xc46fced4,  0x847eb7f0 },
++  (__ev64_s32__) { 0xb2d92c22,  0x805d1c08 },
++  (__ev64_s32__) { 0xd122cc36,  0x70382dfa },
++  (__ev64_s32__) { 0xd1ad3ad6,  0x778e4ff6 },
++  (__ev64_s32__) { 0x8d59b15e,  0x3b831740 },
++  (__ev64_s32__) { 0xaea339fe,  0x5de6a198 },
++  (__ev64_s32__) { 0x931261f6,  0x704326d8 },
++  (__ev64_s32__) { 0xb76c5572,  0x6dd389c0 },
++  (__ev64_s32__) { 0xae7218e4,  0x762b28f8 },
++  (__ev64_s32__) { 0xd9e12042,  0x3d8311fc },
++  (__ev64_s32__) { 0xa0d54622,  0xf0f525e },
++  (__ev64_s32__) { 0xe36d092a,  0x37831070 },
++  (__ev64_s32__) { 0x23bc40ca,  0x565c5d44 },
++  (__ev64_s32__) { 0xe7973ee8,  0x7274929c },
++  (__ev64_s32__) { 0x2ced5228,  0x3cd0adb0 },
++
++};
++#endif // __SPE__
++
++int evmhesmfanw_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++  VERIFY(regD[1] == 0x0);
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmfanw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x,  0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhesmfanw_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfanw_baseline[i][1]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmfanw_asm, "evmhesmfanw");
++
++#ifdef __SPE__
++__ev64_s32__ evmhesmfaaw_baseline[] = {
++
++  (__ev64_s32__) { 0xe743d2f8, 0xa4554652 },
++  (__ev64_s32__) { 0xe1603f3e, 0x90c8a65e },
++  (__ev64_s32__) { 0x342225b6, 0xbd9378d0 },
++  (__ev64_s32__) { 0x24e7da06, 0xd8531c70 },
++  (__ev64_s32__) { 0x4b649f66, 0x7c880a8 },
++  (__ev64_s32__) { 0x213b686, 0xf4cc707c },
++  (__ev64_s32__) { 0x4da25ee6, 0xf64365fc },
++  (__ev64_s32__) { 0x492072ea, 0xf56c2afe },
++  (__ev64_s32__) { 0x43192836, 0xe32ea92a },
++  (__ev64_s32__) { 0x462a609e, 0xb27eb11e },
++  (__ev64_s32__) { 0x1067311e, 0xff230986 },
++  (__ev64_s32__) { 0x26393406, 0xa930e730 },
++  (__ev64_s32__) { 0x666a68e2, 0xadb6ff78 },
++  (__ev64_s32__) { 0x5f7e8316, 0x669da098 },
++  (__ev64_s32__) { 0x6284ecce, 0x5ce2b2c4 },
++  (__ev64_s32__) { 0x514b3398, 0x6798da9e },
++  (__ev64_s32__) { 0x43d4b498, 0x5663ad9e },
++  (__ev64_s32__) { 0x7929b50, 0xe5dde59e },
++  (__ev64_s32__) { 0x3cccd1aa, 0x8f8cd146 },
++  (__ev64_s32__) { 0x9ac831a, 0x733e8dd6 },
++  (__ev64_s32__) { 0xe9a07e46, 0x735844d8 },
++  (__ev64_s32__) { 0xb0262956, 0x6b665d8c },
++  (__ev64_s32__) { 0xc1802896, 0x2efde0fc },
++  (__ev64_s32__) { 0xc971af26, 0x3d59cad0 },
++  (__ev64_s32__) { 0xdb3b0a56, 0x68eded38 },
++  (__ev64_s32__) { 0xc24401e6, 0x5f263638 },
++  (__ev64_s32__) { 0x4a67f1a0, 0x64b44428 },
++  (__ev64_s32__) { 0x8ccaf360, 0x65c87040 },
++  (__ev64_s32__) { 0x89d0af80, 0x62c2f82a },
++  (__ev64_s32__) { 0x8b82253a, 0x98a63314 },
++  (__ev64_s32__) { 0xa0a59d5c, 0xee62809c },
++  (__ev64_s32__) { 0x9d4b50dc, 0xdf880686 },
++  (__ev64_s32__) { 0xadc6fa3c, 0x2d669d36 },
++  (__ev64_s32__) { 0xeaa2cfc6, 0xfbde8586 },
++  (__ev64_s32__) { 0xf9154246, 0xfb87d3c6 },
++  (__ev64_s32__) { 0xf88f66c6, 0xfc185ad6 },
++  (__ev64_s32__) { 0xe8dc0346, 0xfbbbf7fe },
++  (__ev64_s32__) { 0xff456042, 0x1cc81916 },
++  (__ev64_s32__) { 0xda2b4ee2, 0x27aa30c2 },
++  (__ev64_s32__) { 0xdb82dc34, 0x39f37058 },
++  (__ev64_s32__) { 0xfb09c280, 0x328f16a4 },
++  (__ev64_s32__) { 0xe2f047a0, 0xda973e6c },
++  (__ev64_s32__) { 0xdeca7e04, 0xdfac09a0 },
++  (__ev64_s32__) { 0xee47a924, 0xd9e6197a },
++  (__ev64_s32__) { 0x72824fa, 0xcbf0151a },
++  (__ev64_s32__) { 0xd6bb8bfa, 0xc2c3cff8 },
++  (__ev64_s32__) { 0xe643396a, 0xc4060b94 },
++  (__ev64_s32__) { 0xb889d852, 0xb3bbab6c },
++  (__ev64_s32__) { 0xc35a4152, 0x469e5f0e },
++  (__ev64_s32__) { 0x6b501bb2, 0x4114609c },
++  (__ev64_s32__) { 0x702ce1b6, 0x10741b2c },
++  (__ev64_s32__) { 0x2cc8eee2, 0xf8ba82d2 },
++  (__ev64_s32__) { 0x2af019f6, 0xe79519be },
++  (__ev64_s32__) { 0x89c3584a, 0xda390f24 },
++  (__ev64_s32__) { 0x87e46ee6, 0xe788a7c4 },
++  (__ev64_s32__) { 0xddb6d39a, 0xe5c6f030 },
++  (__ev64_s32__) { 0xabdc9832, 0xc6ef3212 },
++  (__ev64_s32__) { 0xc25c4996, 0xee346232 },
++  (__ev64_s32__) { 0xe75bc826, 0x30fe3e76 },
++  (__ev64_s32__) { 0xe9ad46ea, 0x333a58e4 },
++  (__ev64_s32__) { 0xcf12fea, 0xfee77804 },
++  (__ev64_s32__) { 0x616ee62a, 0xff0009b4 },
++  (__ev64_s32__) { 0x16478382, 0x14b73774 },
++  (__ev64_s32__) { 0x38b4494, 0x708a98e },
++  (__ev64_s32__) { 0xca3a4fc8, 0x72a6be6 },
++  (__ev64_s32__) { 0xb0e8ab66, 0xc07f0f02 },
++  (__ev64_s32__) { 0xc1ae7708, 0xeb1f9802 },
++  (__ev64_s32__) { 0xd944c88, 0xfb6b30fc },
++  (__ev64_s32__) { 0x3be7b294, 0xf7df542c },
++  (__ev64_s32__) { 0x230695e0, 0xd4487b10 },
++  (__ev64_s32__) { 0x7f3df5e, 0xb54e04a0 },
++  (__ev64_s32__) { 0x7502d968, 0xe2ec8ca0 },
++  (__ev64_s32__) { 0x954fbc3c, 0xf3e97a1c },
++  (__ev64_s32__) { 0x7a102e58, 0xef776cdc },
++  (__ev64_s32__) { 0xbe96023c, 0x16b29d1c },
++  (__ev64_s32__) { 0x96644eb0, 0x121a7d5c },
++  (__ev64_s32__) { 0x980c09a4, 0xfdcf670 },
++  (__ev64_s32__) { 0x97f0edcc, 0xd612a70 },
++  (__ev64_s32__) { 0x797ffe84, 0xe707466e },
++  (__ev64_s32__) { 0xa41edfbc, 0x202a3502 },
++  (__ev64_s32__) { 0x54e04ac4, 0x30d9b882 },
++  (__ev64_s32__) { 0xc214256c, 0x2f484dfa },
++  (__ev64_s32__) { 0xd0314ad4, 0x4e34f57a },
++  (__ev64_s32__) { 0xe00cb614, 0xe091a48e },
++  (__ev64_s32__) { 0xd7d3d6f8, 0xdf99b71a },
++  (__ev64_s32__) { 0x7a884928, 0xa64acd1a },
++  (__ev64_s32__) { 0x674523b8, 0xa61e6a34 },
++  (__ev64_s32__) { 0xd1de797e, 0xa7619df8 },
++  (__ev64_s32__) { 0xec0e1e42, 0xb29a4418 },
++  (__ev64_s32__) { 0xec5b94fa, 0xb230a5d8 },
++  (__ev64_s32__) { 0x8676ee1a, 0x1f14cb94 },
++  (__ev64_s32__) { 0x8f655a62, 0x8f184d94 },
++  (__ev64_s32__) { 0x6b03558a, 0xa8d424a2 },
++  (__ev64_s32__) { 0x64d5b002, 0xbc9fe55c },
++  (__ev64_s32__) { 0x5e2ab22a, 0xb20de7a0 },
++  (__ev64_s32__) { 0x7545c9f2, 0x9c4b09b4 },
++  (__ev64_s32__) { 0x5daa092c, 0x8dd71a58 },
++  (__ev64_s32__) { 0x4d09bcbe, 0x7278d94c },
++  (__ev64_s32__) { 0x3f32c660, 0x53413c04 },
++  (__ev64_s32__) { 0x22ab55a0, 0x8db5f224 },
++  (__ev64_s32__) { 0x1ba1af48, 0xc51d9bb4 },
++  (__ev64_s32__) { 0x26edcf40, 0xd700b018 },
++  (__ev64_s32__) { 0x3556a4ae, 0x2d70b308 },
++  (__ev64_s32__) { 0x1f810cbc, 0x2483ec38 },
++  (__ev64_s32__) { 0x3e13a5ea, 0x29979878 },
++  (__ev64_s32__) { 0x3f4b09a0, 0x1e8f9146 },
++  (__ev64_s32__) { 0x31c3367c, 0x1654b484 },
++  (__ev64_s32__) { 0x26b72d00, 0x39c573f4 },
++  (__ev64_s32__) { 0x2d4acf40, 0x1c4df330 },
++  (__ev64_s32__) { 0xffc53824, 0x12d20928 },
++  (__ev64_s32__) { 0x5aa5830a, 0xe4386e8 },
++  (__ev64_s32__) { 0x5ed3d44a, 0xdd56eb5c },
++  (__ev64_s32__) { 0xe930b3e, 0xc2a90fea },
++  (__ev64_s32__) { 0x6592aaae, 0xba4a34f4 },
++  (__ev64_s32__) { 0x503ac56e, 0xbd90b0c8 },
++  (__ev64_s32__) { 0x52182e88, 0xd5678fc8 },
++  (__ev64_s32__) { 0x8961af0c, 0x7e0e6aac },
++  (__ev64_s32__) { 0x8bb938e6, 0x38e04ece },
++  (__ev64_s32__) { 0xef59e066, 0xef3860ae },
++  (__ev64_s32__) { 0x6346160, 0xdeb239b4 },
++  (__ev64_s32__) { 0x1017945e, 0xae4af394 },
++  (__ev64_s32__) { 0x7bfee65a, 0xa1cedb04 },
++  (__ev64_s32__) { 0x4d828e84, 0xef2077f0 },
++  (__ev64_s32__) { 0x28a60e62, 0x2738fc18 },
++  (__ev64_s32__) { 0x330a269c, 0x20c19058 },
++  (__ev64_s32__) { 0x96612a62, 0x225d7c58 },
++  (__ev64_s32__) { 0xc81521f2, 0x4a0e2288 },
++  (__ev64_s32__) { 0xa7047bca, 0x5d79c2b4 },
++  (__ev64_s32__) { 0x7cacd9fe, 0x27052a7c },
++  (__ev64_s32__) { 0x8ac7f794, 0x2bccdc1c },
++  (__ev64_s32__) { 0x5250a470, 0x292ea50a },
++  (__ev64_s32__) { 0x54a06d70, 0x57081a5a },
++  (__ev64_s32__) { 0x20e13018, 0x702317d6 },
++  (__ev64_s32__) { 0xc0d6da2e, 0x6fb3b17a },
++  (__ev64_s32__) { 0xd209d40e, 0xa2bbb226 },
++  (__ev64_s32__) { 0xd069dc3e, 0xbd1dd4e6 },
++  (__ev64_s32__) { 0xb3668240, 0x8bede0d6 },
++  (__ev64_s32__) { 0x2ba842a, 0x762726c2 },
++  (__ev64_s32__) { 0x5e426e, 0xb84a8434 },
++  (__ev64_s32__) { 0x802562, 0xd2eeb5ee },
++  (__ev64_s32__) { 0xf7132172, 0xdebb6dee },
++  (__ev64_s32__) { 0xd3c21fb2, 0xe83f4ec2 },
++  (__ev64_s32__) { 0xd3211d48, 0x5081a7be },
++  (__ev64_s32__) { 0xd9e57b40, 0x41699c54 },
++  (__ev64_s32__) { 0x5e15aad4, 0x4c05d3ac },
++  (__ev64_s32__) { 0x5e2d26aa, 0x6582a022 },
++  (__ev64_s32__) { 0x73ef6040, 0x7ad0b728 },
++  (__ev64_s32__) { 0xa2e40280, 0x8326fd20 },
++  (__ev64_s32__) { 0xa43e1950, 0x9a11b780 },
++  (__ev64_s32__) { 0x4ab56c94, 0xc1e8de00 },
++  (__ev64_s32__) { 0xada314c0, 0x10eb80de },
++  (__ev64_s32__) { 0xbc291468, 0xfea6a762 },
++  (__ev64_s32__) { 0xa3f2cdf4, 0x602bd3d2 },
++  (__ev64_s32__) { 0xe82bbcb4, 0x5774dcb4 },
++  (__ev64_s32__) { 0xbc25d64c, 0x575bef54 },
++  (__ev64_s32__) { 0xb3875a00, 0x7eb38c54 },
++  (__ev64_s32__) { 0xf0c8ee08, 0x5a7cbd54 },
++  (__ev64_s32__) { 0x1d77f4d0, 0x550d8ad8 },
++  (__ev64_s32__) { 0x3d86e026, 0x9fab6a66 },
++  (__ev64_s32__) { 0x3224f8c6, 0x9ea35276 },
++  (__ev64_s32__) { 0x2bacd7b6, 0xc3ca54b6 },
++  (__ev64_s32__) { 0x2c5a4d56, 0xc703494e },
++  (__ev64_s32__) { 0x82e2d6, 0xc83fa16a },
++  (__ev64_s32__) { 0xf55a3c3e, 0x48529ba },
++  (__ev64_s32__) { 0xf5c8d15e, 0xd95933da },
++  (__ev64_s32__) { 0x2072836e, 0xf8c5dbd2 },
++  (__ev64_s32__) { 0x24eb61ac, 0xe6092958 },
++  (__ev64_s32__) { 0xdd48affc, 0xde5c2d1a },
++  (__ev64_s32__) { 0x2bf7891e, 0xf7c8f5ee },
++  (__ev64_s32__) { 0x3dc29384, 0xfbefd622 },
++  (__ev64_s32__) { 0x3351758c, 0x652bd664 },
++  (__ev64_s32__) { 0x62d5030c, 0x7964f304 },
++  (__ev64_s32__) { 0x8a9fce6c, 0x59007fb4 },
++  (__ev64_s32__) { 0x9211872e, 0x6746b8cc },
++  (__ev64_s32__) { 0xe8e0fab2, 0x687f41dc },
++  (__ev64_s32__) { 0xc3b38db2, 0x664193d8 },
++  (__ev64_s32__) { 0xdff62db2, 0x579e8070 },
++  (__ev64_s32__) { 0x139193f2, 0x614bec1a },
++  (__ev64_s32__) { 0x111706d8, 0x5906e5f2 },
++  (__ev64_s32__) { 0x1655d794, 0x5a1a7372 },
++  (__ev64_s32__) { 0xcc6c5400, 0x40e03312 },
++  (__ev64_s32__) { 0xfe2dc0b0, 0x46b74a5a },
++  (__ev64_s32__) { 0xdb864af0, 0x951feeec },
++  (__ev64_s32__) { 0xd866a7e8, 0x6b945a4c },
++  (__ev64_s32__) { 0xb3e177fe, 0xcdb67444 },
++  (__ev64_s32__) { 0x45aa8f4, 0xbddb90ac },
++  (__ev64_s32__) { 0xca3433d4, 0xd6d0ea },
++  (__ev64_s32__) { 0x23af2338, 0x42939ec2 },
++  (__ev64_s32__) { 0xf63a23c4, 0x33d2e8e4 },
++  (__ev64_s32__) { 0x7da5c806, 0x3c91e5ac },
++  (__ev64_s32__) { 0x9b80bf7a, 0x43b31a0c },
++  (__ev64_s32__) { 0x934460fe, 0xe6c5a2da },
++  (__ev64_s32__) { 0xa4226d12, 0xc17f56fa },
++  (__ev64_s32__) { 0xb586c754, 0xb5e4d352 },
++  (__ev64_s32__) { 0x54ac3624, 0xc985fcc2 },
++  (__ev64_s32__) { 0x4962fac8, 0xbc183da0 },
++  (__ev64_s32__) { 0x441910c0, 0xf5ab09a0 },
++  (__ev64_s32__) { 0x48616a00, 0xafec4e3e },
++  (__ev64_s32__) { 0xb42e6544, 0xbf8265f0 },
++  (__ev64_s32__) { 0xa848ed80, 0xa995eba0 },
++  (__ev64_s32__) { 0xe3f56dcc, 0xb0eeb990 },
++  (__ev64_s32__) { 0x2caae10, 0xa8f7844c },
++  (__ev64_s32__) { 0xbd38ba40, 0xa6980f1e },
++  (__ev64_s32__) { 0x930b4240, 0x6029426 },
++  (__ev64_s32__) { 0x9211e740, 0xb4e2fd4e },
++  (__ev64_s32__) { 0xbd388e32, 0xf43ff4f6 },
++  (__ev64_s32__) { 0xbc9e677a, 0xf566ad0c },
++  (__ev64_s32__) { 0xd2987262, 0x314c5ce },
++  (__ev64_s32__) { 0xd45ab50a, 0xfef8caf8 },
++  (__ev64_s32__) { 0xacdf02d2, 0xe57c85f2 },
++  (__ev64_s32__) { 0x2612f28c, 0xaab9401e },
++  (__ev64_s32__) { 0x10ec6b10, 0xfc73f1f2 },
++  (__ev64_s32__) { 0xe3a9220c, 0xeb4df64a },
++  (__ev64_s32__) { 0x3753c4bc, 0xe903985e },
++  (__ev64_s32__) { 0x20b2b638, 0xbae94b7c },
++  (__ev64_s32__) { 0x447c0c7c, 0xc653f514 },
++  (__ev64_s32__) { 0x8894f46a, 0xc4c8f1a4 },
++  (__ev64_s32__) { 0xd876350a, 0x76eba134 },
++  (__ev64_s32__) { 0xbd7ea39a, 0x81f43bac },
++  (__ev64_s32__) { 0xe0e7755a, 0x4b898ca4 },
++  (__ev64_s32__) { 0xd9124372, 0x7ad2a578 },
++  (__ev64_s32__) { 0x9374f75c, 0x75e1e910 },
++  (__ev64_s32__) { 0x9f97c488, 0x42dbcd02 },
++  (__ev64_s32__) { 0xa640547c, 0x80cbd79e },
++  (__ev64_s32__) { 0xacc2360c, 0x8314850c },
++  (__ev64_s32__) { 0xc8e6707c, 0x8db42c4c },
++  (__ev64_s32__) { 0x99e02374, 0x7aa6c0b4 },
++  (__ev64_s32__) { 0x8c5eb9b8, 0x5ab74632 },
++  (__ev64_s32__) { 0x6b683122, 0x17a957a2 },
++  (__ev64_s32__) { 0x9682a8a6, 0x1fd73996 },
++  (__ev64_s32__) { 0x78c4bb16, 0x1f51bafa },
++  (__ev64_s32__) { 0x6a941012, 0xe3893c2a },
++  (__ev64_s32__) { 0x87794c5a, 0xbe6e4e94 },
++  (__ev64_s32__) { 0xa1752a48, 0xdd49d644 },
++  (__ev64_s32__) { 0xafa0e6fc, 0x31e9d7e },
++  (__ev64_s32__) { 0xaae18f2c, 0xecea8686 },
++  (__ev64_s32__) { 0x4bc1ff18, 0xd2f47a6c },
++  (__ev64_s32__) { 0x21deee98, 0xc95e6910 },
++  (__ev64_s32__) { 0x3e6e8e26, 0xcea19f48 },
++  (__ev64_s32__) { 0x466746fe, 0xc07cc6f4 },
++  (__ev64_s32__) { 0x3ce0f840, 0x8d625c8a },
++  (__ev64_s32__) { 0x3b90312c, 0x7b814810 },
++  (__ev64_s32__) { 0x4d26d3de, 0x7fa2e3f8 },
++  (__ev64_s32__) { 0x2edd33ca, 0x8fc7d206 },
++  (__ev64_s32__) { 0x2e52c52a, 0x8871b00a },
++  (__ev64_s32__) { 0x72a64ea2, 0xc47ce8c0 },
++  (__ev64_s32__) { 0x515cc602, 0xa2195e68 },
++  (__ev64_s32__) { 0x6ced9e0a, 0x8fbcd928 },
++  (__ev64_s32__) { 0x4893aa8e, 0x922c7640 },
++  (__ev64_s32__) { 0x518de71c, 0x89d4d708 },
++  (__ev64_s32__) { 0x261edfbe, 0xc27cee04 },
++  (__ev64_s32__) { 0x5f2ab9de, 0xf0f0ada2 },
++  (__ev64_s32__) { 0x1c92f6d6, 0xc87cef90 },
++  (__ev64_s32__) { 0xdc43bf36, 0xa9a3a2bc },
++  (__ev64_s32__) { 0x1868c118, 0x8d8b6d64 },
++  (__ev64_s32__) { 0xd312add8, 0xc32f5250 },
++
++};
++#endif // __SPE__
++
++int evmhesmfaaw_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  // Initialize the ACC.
++  regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++  VERIFY(regD[0] == 0x0);
++  VERIFY(regD[1] == 0x0);
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmfaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhesmfaaw_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfaaw_baseline[i][1]);
++#endif
++
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmfaaw_asm, "evmhesmfaaw");
++
++#ifdef __SPE__
++__ev64_s32__ evmhesmf_baseline[] = {
++
++  (__ev64_s32__) { 0xe743d2f8, 0xa4554652 },
++  (__ev64_s32__) { 0xfa1c6c46, 0xec73600c },
++  (__ev64_s32__) { 0x52c1e678, 0x2ccad272 },
++  (__ev64_s32__) { 0xf0c5b450, 0x1abfa3a0 },
++  (__ev64_s32__) { 0x267cc560, 0x2f756438 },
++  (__ev64_s32__) { 0xb6af1720, 0xed03efd4 },
++  (__ev64_s32__) { 0x4b8ea860, 0x176f580 },
++  (__ev64_s32__) { 0xfb7e1404, 0xff28c502 },
++  (__ev64_s32__) { 0xf9f8b54c, 0xedc27e2c },
++  (__ev64_s32__) { 0x3113868, 0xcf5007f4 },
++  (__ev64_s32__) { 0xca3cd080, 0x4ca45868 },
++  (__ev64_s32__) { 0x15d202e8, 0xaa0dddaa },
++  (__ev64_s32__) { 0x403134dc, 0x4861848 },
++  (__ev64_s32__) { 0xf9141a34, 0xb8e6a120 },
++  (__ev64_s32__) { 0x30669b8, 0xf645122c },
++  (__ev64_s32__) { 0xeec646ca, 0xab627da },
++  (__ev64_s32__) { 0xf2898100, 0xeecad300 },
++  (__ev64_s32__) { 0xc3bde6b8, 0x8f7a3800 },
++  (__ev64_s32__) { 0x353a365a, 0xa9aeeba8 },
++  (__ev64_s32__) { 0xccdfb170, 0xe3b1bc90 },
++  (__ev64_s32__) { 0xdff3fb2c, 0x19b702 },
++  (__ev64_s32__) { 0xc685ab10, 0xf80e18b4 },
++  (__ev64_s32__) { 0x1159ff40, 0xc3978370 },
++  (__ev64_s32__) { 0x7f18690, 0xe5be9d4 },
++  (__ev64_s32__) { 0x11c95b30, 0x2b942268 },
++  (__ev64_s32__) { 0xe708f790, 0xf6384900 },
++  (__ev64_s32__) { 0x8823efba, 0x58e0df0 },
++  (__ev64_s32__) { 0x426301c0, 0x1142c18 },
++  (__ev64_s32__) { 0xfd05bc20, 0xfcfa87ea },
++  (__ev64_s32__) { 0x1b175ba, 0x35e33aea },
++  (__ev64_s32__) { 0x15237822, 0x55bc4d88 },
++  (__ev64_s32__) { 0xfca5b380, 0xf12585ea },
++  (__ev64_s32__) { 0x107ba960, 0x4dde96b0 },
++  (__ev64_s32__) { 0x3cdbd58a, 0xce77e850 },
++  (__ev64_s32__) { 0xe727280, 0xffa94e40 },
++  (__ev64_s32__) { 0xff7a2480, 0x908710 },
++  (__ev64_s32__) { 0xf04c9c80, 0xffa39d28 },
++  (__ev64_s32__) { 0x16695cfc, 0x210c2118 },
++  (__ev64_s32__) { 0xdae5eea0, 0xae217ac },
++  (__ev64_s32__) { 0x1578d52, 0x12493f96 },
++  (__ev64_s32__) { 0x1f86e64c, 0xf89ba64c },
++  (__ev64_s32__) { 0xe7e68520, 0xa80827c8 },
++  (__ev64_s32__) { 0xfbda3664, 0x514cb34 },
++  (__ev64_s32__) { 0xf7d2b20, 0xfa3a0fda },
++  (__ev64_s32__) { 0x18e07bd6, 0xf209fba0 },
++  (__ev64_s32__) { 0xcf936700, 0xf6d3bade },
++  (__ev64_s32__) { 0xf87ad70, 0x1423b9c },
++  (__ev64_s32__) { 0xd2469ee8, 0xefb59fd8 },
++  (__ev64_s32__) { 0xad06900, 0x92e2b3a2 },
++  (__ev64_s32__) { 0xa7f5da60, 0xfa76018e },
++  (__ev64_s32__) { 0x4dcc604, 0xcf5fba90 },
++  (__ev64_s32__) { 0xbc9c0d2c, 0xe84667a6 },
++  (__ev64_s32__) { 0xfe272b14, 0xeeda96ec },
++  (__ev64_s32__) { 0x5ed33e54, 0xf2a3f566 },
++  (__ev64_s32__) { 0xfe21169c, 0xd4f98a0 },
++  (__ev64_s32__) { 0x55d264b4, 0xfe3e486c },
++  (__ev64_s32__) { 0xce25c498, 0xe12841e2 },
++  (__ev64_s32__) { 0x167fb164, 0x27453020 },
++  (__ev64_s32__) { 0x24ff7e90, 0x42c9dc44 },
++  (__ev64_s32__) { 0x2517ec4, 0x23c1a6e },
++  (__ev64_s32__) { 0x2343e900, 0xcbad1f20 },
++  (__ev64_s32__) { 0x547db640, 0x1891b0 },
++  (__ev64_s32__) { 0xb4d89d58, 0x15b72dc0 },
++  (__ev64_s32__) { 0xed43c112, 0xf251721a },
++  (__ev64_s32__) { 0xc6af0b34, 0x21c258 },
++  (__ev64_s32__) { 0xe6ae5b9e, 0xb954a31c },
++  (__ev64_s32__) { 0x10c5cba2, 0x2aa08900 },
++  (__ev64_s32__) { 0x4be5d580, 0x104b98fa },
++  (__ev64_s32__) { 0x2e53660c, 0xfc742330 },
++  (__ev64_s32__) { 0xe71ee34c, 0xdc6926e4 },
++  (__ev64_s32__) { 0xe4ed497e, 0xe1058990 },
++  (__ev64_s32__) { 0x6d0efa0a, 0x2d9e8800 },
++  (__ev64_s32__) { 0x204ce2d4, 0x10fced7c },
++  (__ev64_s32__) { 0xe4c0721c, 0xfb8df2c0 },
++  (__ev64_s32__) { 0x4485d3e4, 0x273b3040 },
++  (__ev64_s32__) { 0xd7ce4c74, 0xfb67e040 },
++  (__ev64_s32__) { 0x1a7baf4, 0xfdc27914 },
++  (__ev64_s32__) { 0xffe4e428, 0xfd843400 },
++  (__ev64_s32__) { 0xe18f10b8, 0xd9a61bfe },
++  (__ev64_s32__) { 0x2a9ee138, 0x3922ee94 },
++  (__ev64_s32__) { 0xb0c16b08, 0x10af8380 },
++  (__ev64_s32__) { 0x6d33daa8, 0xfe6e9578 },
++  (__ev64_s32__) { 0xe1d2568, 0x1eeca780 },
++  (__ev64_s32__) { 0xfdb6b40, 0x925caf14 },
++  (__ev64_s32__) { 0xf7c720e4, 0xff08128c },
++  (__ev64_s32__) { 0xa2b47230, 0xc6b11600 },
++  (__ev64_s32__) { 0xecbcda90, 0xffd39d1a },
++  (__ev64_s32__) { 0x6a9955c6, 0x14333c4 },
++  (__ev64_s32__) { 0x1a2fa4c4, 0xb38a620 },
++  (__ev64_s32__) { 0x4d76b8, 0xff9661c0 },
++  (__ev64_s32__) { 0x9a1b5920, 0x6ce425bc },
++  (__ev64_s32__) { 0x8ee6c48, 0x70038200 },
++  (__ev64_s32__) { 0xdb9dfb28, 0x19bbd70e },
++  (__ev64_s32__) { 0xf9d25a78, 0x13cbc0ba },
++  (__ev64_s32__) { 0xf9550228, 0xf56e0244 },
++  (__ev64_s32__) { 0x171b17c8, 0xea3d2214 },
++  (__ev64_s32__) { 0xe8643f3a, 0xf18c10a4 },
++  (__ev64_s32__) { 0xef5fb392, 0xe4a1bef4 },
++  (__ev64_s32__) { 0xf22909a2, 0xe0c862b8 },
++  (__ev64_s32__) { 0xe3788f40, 0x3a74b620 },
++  (__ev64_s32__) { 0xf8f659a8, 0x3767a990 },
++  (__ev64_s32__) { 0xb4c1ff8, 0x11e31464 },
++  (__ev64_s32__) { 0xe68d56e, 0x567002f0 },
++  (__ev64_s32__) { 0xea2a680e, 0xf7133930 },
++  (__ev64_s32__) { 0x1e92992e, 0x513ac40 },
++  (__ev64_s32__) { 0x13763b6, 0xf4f7f8ce },
++  (__ev64_s32__) { 0xf2782cdc, 0xf7c5233e },
++  (__ev64_s32__) { 0xf4f3f684, 0x2370bf70 },
++  (__ev64_s32__) { 0x693a240, 0xe2887f3c },
++  (__ev64_s32__) { 0xd27a68e4, 0xf68415f8 },
++  (__ev64_s32__) { 0x5ae04ae6, 0xfb717dc0 },
++  (__ev64_s32__) { 0x42e5140, 0xcf136474 },
++  (__ev64_s32__) { 0xafbf36f4, 0xe552248e },
++  (__ev64_s32__) { 0x56ff9f70, 0xf7a1250a },
++  (__ev64_s32__) { 0xeaa81ac0, 0x3467bd4 },
++  (__ev64_s32__) { 0x1dd691a, 0x17d6df00 },
++  (__ev64_s32__) { 0x37498084, 0xa8a6dae4 },
++  (__ev64_s32__) { 0x25789da, 0xbad1e422 },
++  (__ev64_s32__) { 0x63a0a780, 0xb65811e0 },
++  (__ev64_s32__) { 0x16da80fa, 0xef79d906 },
++  (__ev64_s32__) { 0x9e332fe, 0xcf98b9e0 },
++  (__ev64_s32__) { 0x6be751fc, 0xf383e770 },
++  (__ev64_s32__) { 0xd183a82a, 0x4d519cec },
++  (__ev64_s32__) { 0xdb237fde, 0x38188428 },
++  (__ev64_s32__) { 0xa64183a, 0xf9889440 },
++  (__ev64_s32__) { 0x635703c6, 0x19bec00 },
++  (__ev64_s32__) { 0x31b3f790, 0x27b0a630 },
++  (__ev64_s32__) { 0xdeef59d8, 0x136ba02c },
++  (__ev64_s32__) { 0xd5a85e34, 0xc98b67c8 },
++  (__ev64_s32__) { 0xe1b1d96, 0x4c7b1a0 },
++  (__ev64_s32__) { 0xc788acdc, 0xfd61c8ee },
++  (__ev64_s32__) { 0x24fc900, 0x2dd97550 },
++  (__ev64_s32__) { 0xcc40c2a8, 0x191afd7c },
++  (__ev64_s32__) { 0x9ff5aa16, 0xff9099a4 },
++  (__ev64_s32__) { 0x1132f9e0, 0x330800ac },
++  (__ev64_s32__) { 0xfe600830, 0x1a6222c0 },
++  (__ev64_s32__) { 0xe2fca602, 0xced00bf0 },
++  (__ev64_s32__) { 0x4f5401ea, 0xea3945ec },
++  (__ev64_s32__) { 0xfda3be44, 0x42235d72 },
++  (__ev64_s32__) { 0x21e2f4, 0x1aa431ba },
++  (__ev64_s32__) { 0xf692fc10, 0xbccb800 },
++  (__ev64_s32__) { 0xdcaefe40, 0x983e0d4 },
++  (__ev64_s32__) { 0xff5efd96, 0x684258fc },
++  (__ev64_s32__) { 0x6c45df8, 0xf0e7f496 },
++  (__ev64_s32__) { 0x84302f94, 0xa9c3758 },
++  (__ev64_s32__) { 0x177bd6, 0x197ccc76 },
++  (__ev64_s32__) { 0x15c23996, 0x154e1706 },
++  (__ev64_s32__) { 0x2ef4a240, 0x85645f8 },
++  (__ev64_s32__) { 0x15a16d0, 0x16eaba60 },
++  (__ev64_s32__) { 0xa6775344, 0x27d72680 },
++  (__ev64_s32__) { 0x62eda82c, 0x4f02a2de },
++  (__ev64_s32__) { 0xe85ffa8, 0xedbb2684 },
++  (__ev64_s32__) { 0xe7c9b98c, 0x61852c70 },
++  (__ev64_s32__) { 0x4438eec0, 0xf74908e2 },
++  (__ev64_s32__) { 0xd3fa1998, 0xffe712a0 },
++  (__ev64_s32__) { 0xf76183b4, 0x27579d00 },
++  (__ev64_s32__) { 0x3d419408, 0xdbc93100 },
++  (__ev64_s32__) { 0x2caf06c8, 0xfa90cd84 },
++  (__ev64_s32__) { 0x200eeb56, 0x4a9ddf8e },
++  (__ev64_s32__) { 0xf49e18a0, 0xfef7e810 },
++  (__ev64_s32__) { 0xf987def0, 0x25270240 },
++  (__ev64_s32__) { 0xad75a0, 0x338f498 },
++  (__ev64_s32__) { 0xd4289580, 0x13c581c },
++  (__ev64_s32__) { 0xf4d75968, 0x3c458850 },
++  (__ev64_s32__) { 0x6e9520, 0xd4d40a20 },
++  (__ev64_s32__) { 0x2aa9b210, 0x1f6ca7f8 },
++  (__ev64_s32__) { 0x478de3e, 0xed434d86 },
++  (__ev64_s32__) { 0xb85d4e50, 0xf85303c2 },
++  (__ev64_s32__) { 0x4eaed922, 0x196cc8d4 },
++  (__ev64_s32__) { 0x11cb0a66, 0x426e034 },
++  (__ev64_s32__) { 0xf58ee208, 0x693c0042 },
++  (__ev64_s32__) { 0x2f838d80, 0x14391ca0 },
++  (__ev64_s32__) { 0x27cacb60, 0xdf9b8cb0 },
++  (__ev64_s32__) { 0x771b8c2, 0xe463918 },
++  (__ev64_s32__) { 0x56cf7384, 0x1388910 },
++  (__ev64_s32__) { 0xdad29300, 0xfdc251fc },
++  (__ev64_s32__) { 0x1c42a000, 0xf15cec98 },
++  (__ev64_s32__) { 0x339b6640, 0x9ad6baa },
++  (__ev64_s32__) { 0xfd8572e6, 0xf7baf9d8 },
++  (__ev64_s32__) { 0x53ed0bc, 0x1138d80 },
++  (__ev64_s32__) { 0xb6167c6c, 0xe6c5bfa0 },
++  (__ev64_s32__) { 0x31c16cb0, 0x5d71748 },
++  (__ev64_s32__) { 0xdd588a40, 0x4e68a492 },
++  (__ev64_s32__) { 0xfce05cf8, 0xd6746b60 },
++  (__ev64_s32__) { 0xdb7ad016, 0x622219f8 },
++  (__ev64_s32__) { 0x507930f6, 0xf0251c68 },
++  (__ev64_s32__) { 0xc5d98ae0, 0x42fb403e },
++  (__ev64_s32__) { 0x597aef64, 0x41bccdd8 },
++  (__ev64_s32__) { 0xd28b008c, 0xf13f4a22 },
++  (__ev64_s32__) { 0x876ba442, 0x8befcc8 },
++  (__ev64_s32__) { 0x1ddaf774, 0x7213460 },
++  (__ev64_s32__) { 0xf7c3a184, 0xa31288ce },
++  (__ev64_s32__) { 0x10de0c14, 0xdab9b420 },
++  (__ev64_s32__) { 0x11645a42, 0xf4657c58 },
++  (__ev64_s32__) { 0x9f256ed0, 0x13a12970 },
++  (__ev64_s32__) { 0xf4b6c4a4, 0xf29240de },
++  (__ev64_s32__) { 0xfab615f8, 0x3992cc00 },
++  (__ev64_s32__) { 0x4485940, 0xba41449e },
++  (__ev64_s32__) { 0x6bccfb44, 0xf9617b2 },
++  (__ev64_s32__) { 0xf41a883c, 0xea1385b0 },
++  (__ev64_s32__) { 0x3bac804c, 0x758cdf0 },
++  (__ev64_s32__) { 0x1ed54044, 0xf808cabc },
++  (__ev64_s32__) { 0xba6e0c30, 0xfda08ad2 },
++  (__ev64_s32__) { 0xd5d28800, 0x5f6a8508 },
++  (__ev64_s32__) { 0xff06a500, 0xaee06928 },
++  (__ev64_s32__) { 0x2b26a6f2, 0x3f5cf7a8 },
++  (__ev64_s32__) { 0xff65d948, 0x126b816 },
++  (__ev64_s32__) { 0x15fa0ae8, 0xdae18c2 },
++  (__ev64_s32__) { 0x1c242a8, 0xfbe4052a },
++  (__ev64_s32__) { 0xd8844dc8, 0xe683bafa },
++  (__ev64_s32__) { 0x7933efba, 0xc53cba2c },
++  (__ev64_s32__) { 0xead97884, 0x51bab1d4 },
++  (__ev64_s32__) { 0xd2bcb6fc, 0xeeda0458 },
++  (__ev64_s32__) { 0x53aaa2b0, 0xfdb5a214 },
++  (__ev64_s32__) { 0xe95ef17c, 0xd1e5b31e },
++  (__ev64_s32__) { 0x23c95644, 0xb6aa998 },
++  (__ev64_s32__) { 0x4418e7ee, 0xfe74fc90 },
++  (__ev64_s32__) { 0x4fe140a0, 0xb222af90 },
++  (__ev64_s32__) { 0xe5086e90, 0xb089a78 },
++  (__ev64_s32__) { 0x2368d1c0, 0xc99550f8 },
++  (__ev64_s32__) { 0xf82ace18, 0x2f4918d4 },
++  (__ev64_s32__) { 0xba62b3ea, 0xfb0f4398 },
++  (__ev64_s32__) { 0xc22cd2c, 0xccf9e3f2 },
++  (__ev64_s32__) { 0x6a88ff4, 0x3df00a9c },
++  (__ev64_s32__) { 0x681e190, 0x248ad6e },
++  (__ev64_s32__) { 0x1c243a70, 0xa9fa740 },
++  (__ev64_s32__) { 0xd0f9b2f8, 0xecf29468 },
++  (__ev64_s32__) { 0xf27e9644, 0xe010857e },
++  (__ev64_s32__) { 0xdf09776a, 0xbcf21170 },
++  (__ev64_s32__) { 0x2b1a7784, 0x82de1f4 },
++  (__ev64_s32__) { 0xe2421270, 0xff7a8164 },
++  (__ev64_s32__) { 0xf1cf54fc, 0xc4378130 },
++  (__ev64_s32__) { 0x1ce53c48, 0xdae5126a },
++  (__ev64_s32__) { 0x19fbddee, 0x1edb87b0 },
++  (__ev64_s32__) { 0xe2bbcb4, 0x25d4c73a },
++  (__ev64_s32__) { 0xfb40a830, 0xe9cbe908 },
++  (__ev64_s32__) { 0xa0e06fec, 0xe609f3e6 },
++  (__ev64_s32__) { 0xd61cef80, 0xf669eea4 },
++  (__ev64_s32__) { 0x1c8f9f8e, 0x5433638 },
++  (__ev64_s32__) { 0x7f8b8d8, 0xf1db27ac },
++  (__ev64_s32__) { 0xf679b142, 0xcce59596 },
++  (__ev64_s32__) { 0xfeaf38ec, 0xee1eeb86 },
++  (__ev64_s32__) { 0x1196a2b2, 0x4219be8 },
++  (__ev64_s32__) { 0xe1b65fec, 0x1024ee0e },
++  (__ev64_s32__) { 0xff759160, 0xf8a9de04 },
++  (__ev64_s32__) { 0x44538978, 0x3c0b38b6 },
++  (__ev64_s32__) { 0xdeb67760, 0xdd9c75a8 },
++  (__ev64_s32__) { 0x1b90d808, 0xeda37ac0 },
++  (__ev64_s32__) { 0xdba60c84, 0x26f9d18 },
++  (__ev64_s32__) { 0x8fa3c8e, 0xf7a860c8 },
++  (__ev64_s32__) { 0xd490f8a2, 0x38a816fc },
++  (__ev64_s32__) { 0x390bda20, 0x2e73bf9e },
++  (__ev64_s32__) { 0xbd683cf8, 0xd78c41ee },
++  (__ev64_s32__) { 0xbfb0c860, 0xe126b32c },
++  (__ev64_s32__) { 0x3c2501e2, 0xe3e7caa8 },
++  (__ev64_s32__) { 0xbaa9ecc0, 0x35a3e4ec },
++
++};
++#endif // __SPE__
++
++int evmhesmf_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhesmf_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmf_baseline[i][1]);
++#endif
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmf_asm, "evmhesmf");
++
++#ifdef __SPE__
++__ev64_s32__ *evmhesmfa_baseline = evmhesmf_baseline;
++#endif // __SPE__
++
++int evmhesmfa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s32__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++    VERIFY(regD[1] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhesmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
++#else
++    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
++#endif
++    // Verify that evmhesmfa wrote into the ACC:
++    regD = (__ev64_s32__) { 0x0, 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhesmfa_asm, "evmhesmfa");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -11087,6 +12961,14 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+     F(evmwsmfa_asm),
+     F(evmwhsmf_asm),
+     F(evmwhsmfa_asm),
++    F(evmhosmfanw_asm),
++    F(evmhosmfaaw_asm),
++    F(evmhosmf_asm),
++    F(evmhosmfa_asm),
++    F(evmhesmfanw_asm),
++    F(evmhesmfaaw_asm),
++    F(evmhesmf_asm),
++    F(evmhesmfa_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index c8239d1..f7acf19 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfan_asm (test_spe.c:9376)
+@@ -22,7 +22,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -32,14 +32,14 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 184 bytes inside a block of size 256 free'd
+    at 0x........: free (vg_replace_malloc.c:...)
+    by 0x........: simple_loop (test_spe.c:333)
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfaa_asm (test_spe.c:9750)
+@@ -48,7 +48,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -58,7 +58,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfan_asm (test_spe.c:9349)
+@@ -67,7 +67,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmf_asm (test_spe.c:10136)
+@@ -76,7 +76,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -86,7 +86,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfaa_asm (test_spe.c:9723)
+@@ -95,7 +95,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfa_asm (test_spe.c:10267)
+@@ -104,7 +104,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -114,7 +114,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmf_asm (test_spe.c:10109)
+@@ -123,7 +123,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmf_asm (test_spe.c:10656)
+@@ -132,7 +132,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -142,7 +142,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfa_asm (test_spe.c:10229)
+@@ -151,7 +151,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmfa_asm (test_spe.c:10784)
+@@ -160,7 +160,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -170,7 +170,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwhsmf_asm (test_spe.c:10628)
+@@ -179,7 +179,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 
+ HEAP SUMMARY:
+@@ -193,7 +193,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -203,7 +203,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -213,7 +213,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -223,7 +223,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -233,7 +233,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -243,7 +243,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -253,7 +253,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:11299)
++   by 0x........: main (test_spe.c:13181)
+ 
+ LEAK SUMMARY:
+    definitely lost: 98,344 bytes in 1,537 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 3696198..11ff10e 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -145,6 +145,14 @@ SPE Regression Tests: PASS
+ ....evmwsmfa: PASS
+ ....evmwhsmf: PASS
+ ....evmwhsmfa: PASS
++....evmhosmfanw: PASS
++....evmhosmfaaw: PASS
++....evmhosmf: PASS
++....evmhosmfa: PASS
++....evmhesmfanw: PASS
++....evmhesmfaaw: PASS
++....evmhesmf: PASS
++....evmhesmfa: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index ccd0bb1..74fb3cb 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 73 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 79 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 72 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 73 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 74 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 79 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 29767 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  2712 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 30327 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 13444 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  2745 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 32662 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  7227 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  4523 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 24642 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 12611 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 29997 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18032 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0041-Add-document-FSL-SPE-README.txt.patch b/recipes-devtools/valgrind/files/0041-Add-document-FSL-SPE-README.txt.patch
new file mode 100644
index 0000000..5a1723b
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0041-Add-document-FSL-SPE-README.txt.patch
@@ -0,0 +1,104 @@
+From b6fa475a97c8b818e76bf64470473463e982f7f8 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Mar 2013 16:53:25 -0700
+Subject: [PATCH 41/65] Add document: FSL-SPE-README.txt
+
+---
+ FSL-SPE-README.txt |   85 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 85 insertions(+), 0 deletions(-)
+ create mode 100644 FSL-SPE-README.txt
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+new file mode 100644
+index 0000000..4729803
+--- /dev/null
++++ b/FSL-SPE-README.txt
+@@ -0,0 +1,85 @@
++
++                               FSL-SPE-README
++                               ==============
++
++ Introduction:
++ -------------
++ 
++ This document contains instructions for building and details the current status
++ of the SPE port for the Valgrind/memcheck tool.
++
++ Note: Let $TOP be the "top-level" directory, in which valgrind-3.8.1.tar.gz has
++       been unzipped and untarred.
++
++       This document appears as: $TOP/valgrind-3.8.1/FSL-SPE-README.txt
++
++ Building:
++ ---------
++
++ $TOP/valgrind-3.8.1# make distclean # (To start all over)
++ $TOP/valgrind-3.8.1# ./autogen.sh
++ $TOP/valgrind-3.8.1# ./configure --prefix=$PWD
++ $TOP/valgrind-3.8.1# make
++ $TOP/valgrind-3.8.1# make install
++
++ The resultant Valgrind binary is found as: $TOP/valgrind-3.8.1/bin/valgrind
++
++ To check the Valgrind version: $TOP/valgrind-3.8.1/bin/valgrind --version
++
++ The Valgrind User Manual is found as:
++
++ $TOP/valgrind-3.8.1/share/doc/valgrind/valgrind_manual.pdf
++
++ Current Status:
++ ---------------
++
++ The following SPE instructions have been implemented as a part of the SPE port
++ and are verified to now execute under Valgrind:
++
++ evldd, evstdd, evxor, evlddx, evstddx, evldh, evstdh, evor, _evmr, evldhx,
++ evstdhx, evldw, evstdw, evldwx, evstdwx, evlwhe, evstwhe, evlwhex, evstwhex,
++ evlwhos, evlwhosx, evlwhou, evlwhoux, evstwho, evstwhox, evstwwe, evstwwex,
++ evstwwo, evstwwox, evlhhesplat, evlhhesplatx, evlhhossplat, evlhhossplatx,
++ evlhhousplat, evlhhousplatx evlwhsplat, evlwhsplatx, evlwwsplat, evlwwsplatx
++ evmergehi, evmergehilo, evmergelo, evmergelohi, evand, evandc, eveqv, evnand,
++ evnor, _evnot, evorc, evrlw, evrlwi, evslw, evslwi, evsrwu, evsrwiu, evsrws,
++ evsrwis, evextsb, evextsh, evcntlsw, evcntlzw, evsplatfi, evsplati, evneg,
++ evabs, evrndw, evcmpeq, evcmpgts, evcmpgtu, evcmplts, evcmpltu, evsel,
++ evmra, evaddsmiaaw, evaddumiaaw, evsubfsmiaaw, evsubfumiaaw, evaddiw, evaddw,
++ evsubifw, evsubfw, evmhesmi, evmhesmia, evmhesmiaaw, evmhesmianw, evmheumi,
++ evmheumia, evmheumiaaw, evmheumianw, evmhosmi, evmhosmia, evmhosmiaaw,
++ evmhosmianw, evmhoumi, evmhoumia, evmhoumiaaw, evmhoumianw, evmwlumi,
++ evmwlumia, evmwlumiaaw, evmwlumianw, evmwsmi, evmwsmia, evmwsmiaa, evmwsmian,
++ evmwumi, evmwumia, evmwumiaa, evmwumian, evmwhsm, evmwhsma, evmwhum, evmwhuma,
++ evmwlsmiaaw, evmwlsmianw, evmwsmfan, evmwsmfaa, evmwsmf, evmwsmfa, evmwhsmf,
++ evmwhsmfa, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhesmf, evmhesmfa,
++ evmhesmfaaw, evmhesmfanw
++
++ Note: Synthetic instructions appear prefixed with a leading underscore in the
++       above list. All synthetic instructions are tested as working under
++       Valgrind even though, strictly speaking, such an instruction is not
++       explcitly implemented, but works as a result of some other instruction
++       being implemented.
++
++ The following instructions have not been implemented yet:
++
++ Note: Non SPE instructions are indicated by suffixing them with a '?' sign.
++
++ eciwx?, ecowx?, efdabs, efdadd, efdcfs, efdcfsf, efdcfsi, efdcfsid, efdcfuf,
++ efdcfui, efdcfuid, efdcmpeq, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsidz,
++ efdctsiz, efdctuf, efdctui, efdctuidz, efdctuiz, efddiv, efdmul, efdnabs,
++ efdneg, efdsub, efdtsteq, efdtstgt, efdtstlt, efsabs, efsadd, efscfd, efscfsf,
++ efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt, efscmplt, efsctsf, efsctsi,
++ efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul, efsnabs, efsneg, efssub,
++ efststeq, efststgt, efststlt, ehpriv?, eqv?, eqv.?, evfsabs, evfsadd,
++ evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt, evfscmplt,
++ evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
++ evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
++ evmhegsmfaa, evmhegsmfan, evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
++ evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw,
++ evmheusiaaw, evmheusianw, evmhogsmfaa, evmhogsmfan, evmhogsmiaa, evmhogsmian,
++ evmhogumiaa, evmhogumian, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
++ evmhossiaaw, evmhossianw, evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia,
++ evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlssiaaw, evmwlssianw,
++ evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
++ evsubfssiaaw, evsubfusiaaw, extsb?, extsb.?, extsh?, extsh.?
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0042-Mark-version-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch b/recipes-devtools/valgrind/files/0042-Mark-version-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch
new file mode 100644
index 0000000..1759612
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0042-Mark-version-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch
@@ -0,0 +1,25 @@
+From 20d6df7c8b4df4e43a33ff9c91172a03c2c9f73d Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Mar 2013 17:11:12 -0700
+Subject: [PATCH 42/65] Mark version as: 3.8.1-FSL-Thu-Mar-28-165508-PDT-2013
+
+---
+ configure.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 3445879..75e479c 100644
+--- a/configure.in
++++ b/configure.in
+@@ -8,7 +8,7 @@
+ ##------------------------------------------------------------##
+ 
+ # Process this file with autoconf to produce a configure script.
+-AC_INIT([Valgrind],[3.8.1],[valgrind-users at lists.sourceforge.net])
++AC_INIT([Valgrind],[3.8.1-FSL-Thu-Mar-28-165508-PDT-2013],[valgrind-users at lists.sourceforge.net])
+ AC_CONFIG_SRCDIR(coregrind/m_main.c)
+ AC_CONFIG_HEADERS([config.h])
+ AM_INIT_AUTOMAKE([foreign])
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0043-Minor-edits-to-FSL-SPE-README.txt.patch b/recipes-devtools/valgrind/files/0043-Minor-edits-to-FSL-SPE-README.txt.patch
new file mode 100644
index 0000000..9c0c726
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0043-Minor-edits-to-FSL-SPE-README.txt.patch
@@ -0,0 +1,72 @@
+From 57c7f823fd60b9a19f9f63a9a35ba75da70037a2 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 28 Mar 2013 18:38:24 -0700
+Subject: [PATCH 43/65] Minor edits to FSL-SPE-README.txt.
+
+---
+ FSL-SPE-README.txt |   38 +++++++++++++++++++++++++-------------
+ 1 files changed, 25 insertions(+), 13 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 4729803..312a50e 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -5,30 +5,42 @@
+  Introduction:
+  -------------
+  
+- This document contains instructions for building and details the current status
+- of the SPE port for the Valgrind/memcheck tool.
++ This document contains instructions for installation, building and details the
++ current status of the SPE port for the Valgrind/memcheck tool.
+ 
+- Note: Let $TOP be the "top-level" directory, in which valgrind-3.8.1.tar.gz has
+-       been unzipped and untarred.
++ Installation:
++ -------------
++
++ Let $TOP be the "top-level" directory that contains:
++
++  valgrind-3.8.1-<id>.tar.gz
+ 
+-       This document appears as: $TOP/valgrind-3.8.1/FSL-SPE-README.txt
++ $TOP# mkdir valgrind-3.8.1-<id>
++ $TOP# mv valgrind-3.8.1-<id>.tar.gz valgrind-3.8.1-<id>
++ $TOP# cd valgrind-3.8.1-<id>
++ $TOP/valgrind-3.8.1-<id># gunzip -d valgrind-3.8.1-<id>.tar.gz
++ $TOP/valgrind-3.8.1-<id># tar -xvf valgrind-3.8.1-<id>.tar
+ 
+  Building:
+  ---------
+ 
+- $TOP/valgrind-3.8.1# make distclean # (To start all over)
+- $TOP/valgrind-3.8.1# ./autogen.sh
+- $TOP/valgrind-3.8.1# ./configure --prefix=$PWD
+- $TOP/valgrind-3.8.1# make
+- $TOP/valgrind-3.8.1# make install
++ $TOP/valgrind-3.8.1-<id># make distclean # (To start all over)
++ $TOP/valgrind-3.8.1-<id># ./autogen.sh
++ $TOP/valgrind-3.8.1-<id># ./configure --prefix=$PWD
++ $TOP/valgrind-3.8.1-<id># make
++ $TOP/valgrind-3.8.1-<id># make install
++
++ The resultant Valgrind binary is found as:
++
++  $TOP/valgrind-3.8.1-<id>/bin/valgrind
+ 
+- The resultant Valgrind binary is found as: $TOP/valgrind-3.8.1/bin/valgrind
++ To check the Valgrind version:
+ 
+- To check the Valgrind version: $TOP/valgrind-3.8.1/bin/valgrind --version
++ $TOP/valgrind-3.8.1-<id># ./bin/valgrind --version
+ 
+  The Valgrind User Manual is found as:
+ 
+- $TOP/valgrind-3.8.1/share/doc/valgrind/valgrind_manual.pdf
++ $TOP/valgrind-3.8.1-<id>/share/doc/valgrind/valgrind_manual.pdf
+ 
+  Current Status:
+  ---------------
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0044-Minor-edits-FSL-SPE-README.txt.patch b/recipes-devtools/valgrind/files/0044-Minor-edits-FSL-SPE-README.txt.patch
new file mode 100644
index 0000000..c511e28
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0044-Minor-edits-FSL-SPE-README.txt.patch
@@ -0,0 +1,297 @@
+From 2e666cf8e8e4f162cbaca8af5df154796c38628b Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 29 Mar 2013 17:55:25 -0700
+Subject: [PATCH 44/65] Minor edits: FSL-SPE-README.txt
+
+---
+ FSL-SPE-README.txt |  261 ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 255 insertions(+), 6 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 312a50e..6760303 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -4,9 +4,11 @@
+ 
+  Introduction:
+  -------------
+- 
++
+  This document contains instructions for installation, building and details the
+- current status of the SPE port for the Valgrind/memcheck tool.
++ current status of the SPE port for the Valgrind/memcheck tool. Some example
++ sessions of standard UNIX programs running on Valgrind with SPE support, on a
++ p1022ds board running Linux, appear at the end.
+ 
+  Installation:
+  -------------
+@@ -15,11 +17,9 @@
+ 
+   valgrind-3.8.1-<id>.tar.gz
+ 
+- $TOP# mkdir valgrind-3.8.1-<id>
+- $TOP# mv valgrind-3.8.1-<id>.tar.gz valgrind-3.8.1-<id>
++ $TOP# gunzip -dr valgrind-3.8.1-<id>.tar.gz
++ $TOP# tar -xvf valgrind-3.8.1-<id>.tar
+  $TOP# cd valgrind-3.8.1-<id>
+- $TOP/valgrind-3.8.1-<id># gunzip -d valgrind-3.8.1-<id>.tar.gz
+- $TOP/valgrind-3.8.1-<id># tar -xvf valgrind-3.8.1-<id>.tar
+ 
+  Building:
+  ---------
+@@ -95,3 +95,252 @@
+  evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlssiaaw, evmwlssianw,
+  evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
+  evsubfssiaaw, evsubfusiaaw, extsb?, extsb.?, extsh?, extsh.?
++
++ Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
++ ----------------------------------------------------------------------
++
++ Example 0: wc
++
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full wc memcheck/tests/ppc32/test_spe.c
++==31682== Memcheck, a memory error detector
++==31682== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==31682== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
++==31682== Command: wc memcheck/tests/ppc32/test_spe.c
++==31682==
++ 13217  51751 438010 memcheck/tests/ppc32/test_spe.c
++==31682==
++==31682== HEAP SUMMARY:
++==31682==     in use at exit: 0 bytes in 0 blocks
++==31682==   total heap usage: 4 allocs, 4 frees, 168 bytes allocated
++==31682==
++==31682== All heap blocks were freed -- no leaks are possible
++==31682==
++==31682== For counts of detected and suppressed errors, rerun with: -v
++==31682== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# wc memcheck/tests/ppc32/test_spe.c
++ 13217  51751 438010 memcheck/tests/ppc32/test_spe.c
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
++
++ Example 1: grep
++
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full grep evmhesmfa memcheck/tests/ppc32/test_spe.c
++==31694== Memcheck, a memory error detector
++==31694== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==31694== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
++==31694== Command: grep evmhesmfa memcheck/tests/ppc32/test_spe.c
++==31694==
++__ev64_s32__ evmhesmfanw_baseline[] = {
++int evmhesmfanw_asm(void)
++    asm volatile ("evmhesmfanw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == evmhesmfanw_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfanw_baseline[i][1]);
++TEST_SPE_DECL(evmhesmfanw_asm, "evmhesmfanw");
++__ev64_s32__ evmhesmfaaw_baseline[] = {
++int evmhesmfaaw_asm(void)
++    asm volatile ("evmhesmfaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == evmhesmfaaw_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfaaw_baseline[i][1]);
++TEST_SPE_DECL(evmhesmfaaw_asm, "evmhesmfaaw");
++__ev64_s32__ *evmhesmfa_baseline = evmhesmf_baseline;
++int evmhesmfa_asm(void)
++    asm volatile ("evmhesmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
++    // Verify that evmhesmfa wrote into the ACC:
++    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
++TEST_SPE_DECL(evmhesmfa_asm, "evmhesmfa");
++    F(evmhesmfanw_asm),
++    F(evmhesmfaaw_asm),
++    F(evmhesmfa_asm),
++==31694==
++==31694== HEAP SUMMARY:
++==31694==     in use at exit: 43,687 bytes in 42 blocks
++==31694==   total heap usage: 243 allocs, 201 frees, 46,650 bytes allocated
++==31694==
++==31694== LEAK SUMMARY:
++==31694==    definitely lost: 0 bytes in 0 blocks
++==31694==    indirectly lost: 0 bytes in 0 blocks
++==31694==      possibly lost: 0 bytes in 0 blocks
++==31694==    still reachable: 43,687 bytes in 42 blocks
++==31694==         suppressed: 0 bytes in 0 blocks
++==31694== Reachable blocks (those to which a pointer was found) are not shown.
++==31694== To see them, rerun with: --leak-check=full --show-reachable=yes
++==31694==
++==31694== For counts of detected and suppressed errors, rerun with: -v
++==31694== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
++
++ Example 2: ls
++
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full ls memcheck/tests/ppc32/test_spe.c
++==31699== Memcheck, a memory error detector
++==31699== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==31699== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
++==31699== Command: ls memcheck/tests/ppc32/test_spe.c
++==31699==
++memcheck/tests/ppc32/test_spe.c
++==31699==
++==31699== HEAP SUMMARY:
++==31699==     in use at exit: 13,776 bytes in 7 blocks
++==31699==   total heap usage: 9 allocs, 2 frees, 13,808 bytes allocated
++==31699==
++==31699== LEAK SUMMARY:
++==31699==    definitely lost: 0 bytes in 0 blocks
++==31699==    indirectly lost: 0 bytes in 0 blocks
++==31699==      possibly lost: 0 bytes in 0 blocks
++==31699==    still reachable: 13,776 bytes in 7 blocks
++==31699==         suppressed: 0 bytes in 0 blocks
++==31699== Reachable blocks (those to which a pointer was found) are not shown.
++==31699== To see them, rerun with: --leak-check=full --show-reachable=yes
++==31699==
++==31699== For counts of detected and suppressed errors, rerun with: -v
++==31699== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
++
++ Example 3: ls -l
++
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full ls -l memcheck/tests/ppc32/test_spe.c
++==31700== Memcheck, a memory error detector
++==31700== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==31700== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
++==31700== Command: ls -l memcheck/tests/ppc32/test_spe.c
++==31700==
++-rw-r--r-- 1 65002905 rn453 438010 Mar 27 10:56 memcheck/tests/ppc32/test_spe.c
++==31700==
++==31700== HEAP SUMMARY:
++==31700==     in use at exit: 14,083 bytes in 29 blocks
++==31700==   total heap usage: 98 allocs, 69 frees, 22,687 bytes allocated
++==31700==
++==31700== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 29
++==31700==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==31700==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
++==31700==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
++==31700==    by 0xFC3AA47: ???
++==31700==    by 0xFC3C33B: ???
++==31700==    by 0x40B5AC3: getpwuid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
++==31700==    by 0x40B52E3: getpwuid (getXXbyYY.c:117)
++==31700==    by 0x1000D60F: ??? (in /bin/ls.coreutils)
++==31700==    by 0x10005E4B: ??? (in /bin/ls.coreutils)
++==31700==    by 0x10007B5F: ??? (in /bin/ls.coreutils)
++==31700==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
++==31700==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==31700==
++==31700== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 28 of 29
++==31700==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==31700==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
++==31700==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
++==31700==    by 0xFC39563: ???
++==31700==    by 0xFC3A3B3: ???
++==31700==    by 0x40B3FCF: getgrgid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
++==31700==    by 0x40B35F7: getgrgid (getXXbyYY.c:117)
++==31700==    by 0x1000D89F: ??? (in /bin/ls.coreutils)
++==31700==    by 0x10007BE7: ??? (in /bin/ls.coreutils)
++==31700==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
++==31700==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==31700==    by 0x402606B: (below main) (libc-start.c:105)
++==31700==
++==31700== LEAK SUMMARY:
++==31700==    definitely lost: 80 bytes in 2 blocks
++==31700==    indirectly lost: 240 bytes in 20 blocks
++==31700==      possibly lost: 0 bytes in 0 blocks
++==31700==    still reachable: 13,763 bytes in 7 blocks
++==31700==         suppressed: 0 bytes in 0 blocks
++==31700== Reachable blocks (those to which a pointer was found) are not shown.
++==31700== To see them, rerun with: --leak-check=full --show-reachable=yes
++==31700==
++==31700== For counts of detected and suppressed errors, rerun with: -v
++==31700== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 1 from 1)
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
++
++ Example 4: cat, awk (output too long)
++
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full cat memcheck/tests/ppc32/test_spe.c
++root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full cat memcheck/tests/ppc32/test_spe.c | awk 'length ($0) > 80 { print; }'
++
++ Example 5: Loading a simple hello-world program under gdb - under valgrind:
++
++root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# cat /home/root/hello.c
++#include <stdio.h>
++
++int main(void)
++{
++  printf("hello!\n");
++  return 0;
++}
++root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full gdb /home/root/hello
++==9312== Memcheck, a memory error detector
++==9312== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==9312== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
++==9312== Command: gdb /home/root/hello
++==9312==
++==9313==
++==9313== HEAP SUMMARY:
++==9313==     in use at exit: 310,578 bytes in 13,009 blocks
++==9313==   total heap usage: 13,940 allocs, 931 frees, 395,157 bytes allocated
++==9313==
++==9313== LEAK SUMMARY:
++==9313==    definitely lost: 0 bytes in 0 blocks
++==9313==    indirectly lost: 0 bytes in 0 blocks
++==9313==      possibly lost: 0 bytes in 0 blocks
++==9313==    still reachable: 310,578 bytes in 13,009 blocks
++==9313==         suppressed: 0 bytes in 0 blocks
++==9313== Reachable blocks (those to which a pointer was found) are not shown.
++==9313== To see them, rerun with: --leak-check=full --show-reachable=yes
++==9313==
++==9313== For counts of detected and suppressed errors, rerun with: -v
++==9313== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++GNU gdb (GDB) 7.3
++Copyright (C) 2011 Free Software Foundation, Inc.
++License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
++This is free software: you are free to change and redistribute it.
++There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
++and "show warranty" for details.
++This GDB was configured as "powerpc-fsl-linux-gnuspe".
++For bug reporting instructions, please see:
++<http://www.gnu.org/software/gdb/bugs/>...
++Reading symbols from /home/root/hello...==9312== Source and destination overlap in memcpy(0x435a680, 0x435a680, 40)
++==9312==    at 0xFF4B988: memcpy (mc_replace_strmem.c:878)
++==9312==    by 0x1000D4E7: ??? (in /usr/bin/gdb)
++==9312==    by 0x100B4CA7: ??? (in /usr/bin/gdb)
++==9312==    by 0x1010FEEF: ??? (in /usr/bin/gdb)
++==9312==    by 0x10110233: ??? (in /usr/bin/gdb)
++==9312==    by 0x10110AC7: ??? (in /usr/bin/gdb)
++==9312==    by 0x1013463F: ??? (in /usr/bin/gdb)
++==9312==    by 0x100058AB: ??? (in /usr/bin/gdb)
++==9312==    by 0x1013459B: ??? (in /usr/bin/gdb)
++==9312==    by 0x10006043: ??? (in /usr/bin/gdb)
++==9312==    by 0x10004D03: ??? (in /usr/bin/gdb)
++==9312==    by 0x4026E9B: generic_start_main.isra.0 (libc-start.c:226)
++==9312==
++done.
++(gdb) q
++... *** LONG OUTPUT DELETED ***                                                          <---------------
++... *** LONG OUTPUT DELETED ***                                                          <---------------
++... *** LONG OUTPUT DELETED ***                                                          <---------------
++==9312== 4,064 bytes in 1 blocks are possibly lost in loss record 14,227 of 14,239
++==9312==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==9312==    by 0x10013277: xmalloc (in /usr/bin/gdb)
++==9312==    by 0x40918CF: _obstack_begin (obstack.c:186)
++==9312==    by 0x1013E3BB: ??? (in /usr/bin/gdb)
++==9312==    by 0x1003BAAF: ??? (in /usr/bin/gdb)
++==9312==    by 0x10149503: ??? (in /usr/bin/gdb)
++==9312==    by 0x1014A4DB: ??? (in /usr/bin/gdb)
++==9312==    by 0x10006827: ??? (in /usr/bin/gdb)
++==9312==    by 0x1013463F: ??? (in /usr/bin/gdb)
++==9312==    by 0x10005C37: ??? (in /usr/bin/gdb)
++==9312==    by 0x1013459B: ??? (in /usr/bin/gdb)
++==9312==    by 0x10006043: ??? (in /usr/bin/gdb)
++==9312==
++==9312== LEAK SUMMARY:
++==9312==    definitely lost: 4,948 bytes in 30 blocks
++==9312==    indirectly lost: 24 bytes in 2 blocks
++==9312==      possibly lost: 14,240 bytes in 130 blocks
++==9312==    still reachable: 526,254 bytes in 14,235 blocks
++==9312==         suppressed: 0 bytes in 0 blocks
++==9312== Reachable blocks (those to which a pointer was found) are not shown.
++==9312== To see them, rerun with: --leak-check=full --show-reachable=yes
++==9312==
++==9312== For counts of detected and suppressed errors, rerun with: -v
++==9312== ERROR SUMMARY: 199 errors from 161 contexts (suppressed: 1 from 1)
++root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0045-VEX-priv-guest_ppc_helpers.c-Use-__ev_convert_s64-in.patch b/recipes-devtools/valgrind/files/0045-VEX-priv-guest_ppc_helpers.c-Use-__ev_convert_s64-in.patch
new file mode 100644
index 0000000..7788e99
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0045-VEX-priv-guest_ppc_helpers.c-Use-__ev_convert_s64-in.patch
@@ -0,0 +1,306 @@
+From 3781e3c6fec72a1159704b357702d6c748d0faa3 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 3 Apr 2013 15:26:31 -0700
+Subject: [PATCH 45/65] VEX/priv/guest_ppc_helpers.c: Use __ev_convert_s64 () instead of array indexing to access content in an __ev64_s64__ type variable.
+
+---
+ VEX/priv/guest_ppc_helpers.c |   20 +++++++++---------
+ regtest-power7-64.log        |   46 +++++++++++++++++++++---------------------
+ 2 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 16af8e6..a3ea92d 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -234,12 +234,12 @@ void spe_dirtyhelper_evmwsmfan ( VexGuestPPC32State* gst,
+   // rD[0:63] <- ACC[0:63] - rT[0:63]
+   rD = (__ev64_s64__) { (Long) ((Long) ACC - (Long) rT) };
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+   // ACC[0:63] <- rD[0:63]
+   ACC = rD;
+   // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+ #endif // __SPE__
+   return;
+ }
+@@ -286,12 +286,12 @@ void spe_dirtyhelper_evmwsmfaa ( VexGuestPPC32State* gst,
+   // rD[0:63] <- ACC[0:63] + rT[0:63]
+   rD = (__ev64_s64__) { (Long) ((Long) ACC + (Long) rT) };
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+   // ACC[0:63] <- rD[0:63]
+   ACC = rD;
+   // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+ #endif // __SPE__
+   return;
+ }
+@@ -334,12 +334,12 @@ void spe_dirtyhelper_evmwsmfa ( VexGuestPPC32State* gst,
+   asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+ 
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+   // ACC[0:63] <- rD[0:63]
+   ACC = rD;
+   // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+ #endif // __SPE__
+   return;
+ }
+@@ -379,7 +379,7 @@ void spe_dirtyhelper_evmwsmf ( VexGuestPPC32State* gst,
+   asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+ 
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+ #endif // __SPE__
+   return;
+@@ -424,12 +424,12 @@ void spe_dirtyhelper_evmwhsmfa ( VexGuestPPC32State* gst,
+   asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+ 
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+   // ACC[0:63] <- rD[0:63]
+   ACC = rD;
+   // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = ACC[0];
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+ #endif // __SPE__
+   return;
+ }
+@@ -469,7 +469,7 @@ void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
+   asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+ 
+   // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = rD[0];
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+ 
+ #endif // __SPE__
+   return;
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 74fb3cb..3036799 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 78 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 79 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 74 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 80 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 79 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 79 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 79 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  2712 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 19173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 13444 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 28118 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 32662 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 28842 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  4523 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 13161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 12611 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 19037 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 18032 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  8328 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0046-Implement-SPE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch b/recipes-devtools/valgrind/files/0046-Implement-SPE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch
new file mode 100644
index 0000000..b489467
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0046-Implement-SPE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch
@@ -0,0 +1,2041 @@
+From c31e5fb96179807408f56bc32fac83428b142914 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 4 Apr 2013 13:44:38 -0700
+Subject: [PATCH 46/65] Implement SPE Instructions: { evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan }.
+
+---
+ FSL-SPE-README.txt                       |    8 +-
+ VEX/priv/guest_ppc_defs.h                |   20 +
+ VEX/priv/guest_ppc_helpers.c             |  188 +++++
+ VEX/priv/guest_ppc_toIR.c                |  128 ++++
+ memcheck/tests/ppc32/test_spe.c          | 1216 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |   54 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.log                    |   26 +-
+ 8 files changed, 1602 insertions(+), 42 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 6760303..6e6c331 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -67,6 +67,10 @@
+  evmwhsmfa, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhesmf, evmhesmfa,
+  evmhesmfaaw, evmhesmfanw
+ 
++ New instructions implemented since last drop:
++
++ evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan,
++
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+@@ -87,9 +91,9 @@
+  evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt, evfscmplt,
+  evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+  evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+- evmhegsmfaa, evmhegsmfan, evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
++ evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
+  evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw,
+- evmheusiaaw, evmheusianw, evmhogsmfaa, evmhogsmfan, evmhogsmiaa, evmhogsmian,
++ evmheusiaaw, evmheusianw, evmhogsmiaa, evmhogsmian,
+  evmhogumiaa, evmhogumian, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
+  evmhossiaaw, evmhossianw, evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia,
+  evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlssiaaw, evmwlssianw,
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 9581447..2aba8e9 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -223,6 +223,26 @@ extern void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
+                                        UInt rD_off,
+                                        UInt rA_off,
+                                        UInt rB_off);
++extern void spe_dirtyhelper_evmhogsmfan ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhogsmfaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhegsmfan ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index a3ea92d..a3697d8 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -835,6 +835,194 @@ void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
+   return;
+ }
+ 
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogsmfan ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogsmfan (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional
++  // and Accumulate Negative, SPEPEM p5-161)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogsmfan reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsf rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogsmfan %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogsmfaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogsmfaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional
++  // and Accumulate, SPEPEM p5-160)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogsmfaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsf rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogsmfaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegsmfan ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegsmfan (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional
++  // and Accumulate Negative, SPEPEM p5-139)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegsmfan reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsf rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegsmfan %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegsmfaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional
++  // and Accumulate, SPEPEM p5-138)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegsmfaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsf rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegsmfaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+ /*----------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index c1df7d7..9d29bef 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -14605,6 +14605,130 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x52b:
++     // evmhegsmfaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional and Accumulate, SPEPEM p5-138)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegsmfaa",
++                            &spe_dirtyhelper_evmhegsmfaa,
++                            args);
++     DIP( "evmhegsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5ab:
++     // evmhegsmfan (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-139)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegsmfan",
++                            &spe_dirtyhelper_evmhegsmfan,
++                            args);
++     DIP( "evmhegsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x52f:
++     // evmhogsmfaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional and Accumulate, SPEPEM p5-160)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogsmfaa",
++                            &spe_dirtyhelper_evmhogsmfaa,
++                            args);
++     DIP( "evmhogsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5af:
++     // evmhogsmfan (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-161)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogsmfan",
++                            &spe_dirtyhelper_evmhogsmfan,
++                            args);
++     DIP( "evmhogsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
+   default:
+      return False;
+   }
+@@ -20733,9 +20857,13 @@ DisResult disInstr_PPC_WRK (
+       case 0x47b: // evmwsmfa
+       case 0x50b: // evmhesmfaaw
+       case 0x50f: // evmhosmfaaw
++      case 0x52b: // evmhegsmfaa
++      case 0x52f: // evmhogsmfaa
+       case 0x58b: // evmhesmfanw
+       case 0x58f: // evmhosmfanw
+       case 0x55b: // evmwsmfaa
++      case 0x5ab: // evmhegsmfan
++      case 0x5af: // evmhogsmfan
+       case 0x5db: // evmwsmfan
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_ACC_based_fractional_multiply_insns( theInstr )) goto decode_success;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index cf7fa8c..0f4a5a3 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -12715,6 +12715,1218 @@ int evmhesmfa_asm(void)
+ }
+ TEST_SPE_DECL(evmhesmfa_asm, "evmhesmfa");
+ 
++#ifdef __SPE__
++__ev64_s64__ evmhogsmfan_baseline[] = {
++
++  (__ev64_s64__) { 0x57aa7ba },
++  (__ev64_s64__) { 0xffffffff9c1a9378 },
++  (__ev64_s64__) { 0x92b4058 },
++  (__ev64_s64__) { 0xffffffffe03e4a78 },
++  (__ev64_s64__) { 0x45255770 },
++  (__ev64_s64__) { 0x1058e8cc },
++  (__ev64_s64__) { 0xa9a8ee0 },
++  (__ev64_s64__) { 0x6af4640 },
++  (__ev64_s64__) { 0xffffffffd8c0fd5a },
++  (__ev64_s64__) { 0x2288687c },
++  (__ev64_s64__) { 0xffffffffe10bb75c },
++  (__ev64_s64__) { 0xf812cf4 },
++  (__ev64_s64__) { 0xfffffffffe9ba968 },
++  (__ev64_s64__) { 0xfffffffffa21757c },
++  (__ev64_s64__) { 0xfffffffff92f2d68 },
++  (__ev64_s64__) { 0xfffffffff1774c24 },
++  (__ev64_s64__) { 0xffffffffc0f2cae8 },
++  (__ev64_s64__) { 0xffffffffb276ce04 },
++  (__ev64_s64__) { 0xffffffffc64924cc },
++  (__ev64_s64__) { 0xfffffffff3e90818 },
++  (__ev64_s64__) { 0xffffffffec196944 },
++  (__ev64_s64__) { 0xa5b8480 },
++  (__ev64_s64__) { 0xfffffffffea1bf64 },
++  (__ev64_s64__) { 0x4be6547c },
++  (__ev64_s64__) { 0xffffffffec2dda10 },
++  (__ev64_s64__) { 0x41a58c14 },
++  (__ev64_s64__) { 0xffffffffa6070ce0 },
++  (__ev64_s64__) { 0x238a03fc },
++  (__ev64_s64__) { 0xffffffffd2e78b60 },
++  (__ev64_s64__) { 0xbadae02 },
++  (__ev64_s64__) { 0x5cb43700 },
++  (__ev64_s64__) { 0x23dda7b2 },
++  (__ev64_s64__) { 0x3403bcca },
++  (__ev64_s64__) { 0x335add4 },
++  (__ev64_s64__) { 0x2595ae70 },
++  (__ev64_s64__) { 0xffffffffa31ceb98 },
++  (__ev64_s64__) { 0xffffffffaf8e3074 },
++  (__ev64_s64__) { 0x2a8a85ac },
++  (__ev64_s64__) { 0xffffffffdb39a710 },
++  (__ev64_s64__) { 0x3f697a1c },
++  (__ev64_s64__) { 0x3b039d00 },
++  (__ev64_s64__) { 0xfffffffff747c9dc },
++  (__ev64_s64__) { 0x342b9a90 },
++  (__ev64_s64__) { 0x2201c4f0 },
++  (__ev64_s64__) { 0xfffffffffbd50340 },
++  (__ev64_s64__) { 0xffffffffffa81c10 },
++  (__ev64_s64__) { 0xffffffffdf66d2dc },
++  (__ev64_s64__) { 0xffffffffc85b512c },
++  (__ev64_s64__) { 0xffffffffdf3c5742 },
++  (__ev64_s64__) { 0xfffffffffbd00752 },
++  (__ev64_s64__) { 0xffffffffd1988e78 },
++  (__ev64_s64__) { 0xfffffffff946eb16 },
++  (__ev64_s64__) { 0x3037b194 },
++  (__ev64_s64__) { 0xd917ef2 },
++  (__ev64_s64__) { 0x8dbecf0 },
++  (__ev64_s64__) { 0xffffffffebae1d04 },
++  (__ev64_s64__) { 0x39c109b4 },
++  (__ev64_s64__) { 0x34104028 },
++  (__ev64_s64__) { 0x236f55d0 },
++  (__ev64_s64__) { 0x20cc2ae8 },
++  (__ev64_s64__) { 0xb8cd10 },
++  (__ev64_s64__) { 0x1f2b7958 },
++  (__ev64_s64__) { 0x1c3c6380 },
++  (__ev64_s64__) { 0x68be3f76 },
++  (__ev64_s64__) { 0xffffffffffdce4ea },
++  (__ev64_s64__) { 0x2259aaac },
++  (__ev64_s64__) { 0x1660980 },
++  (__ev64_s64__) { 0xfffffffffa04a1ec },
++  (__ev64_s64__) { 0xfffffffffecd6acc },
++  (__ev64_s64__) { 0xfffffffffdf8bf3c },
++  (__ev64_s64__) { 0xbde6190 },
++  (__ev64_s64__) { 0x24fe2a70 },
++  (__ev64_s64__) { 0x1b71dd8a },
++  (__ev64_s64__) { 0xffffffffff7e547c },
++  (__ev64_s64__) { 0xffffffffdc521180 },
++  (__ev64_s64__) { 0xffffffffcb288c80 },
++  (__ev64_s64__) { 0x16bdde40 },
++  (__ev64_s64__) { 0xffffffff93332080 },
++  (__ev64_s64__) { 0x8c050c8 },
++  (__ev64_s64__) { 0xffffffffe7f5a080 },
++  (__ev64_s64__) { 0x83547f6 },
++  (__ev64_s64__) { 0xffffffffebc84f60 },
++  (__ev64_s64__) { 0x961fee8 },
++  (__ev64_s64__) { 0xd56322e },
++  (__ev64_s64__) { 0x2229f6d0 },
++  (__ev64_s64__) { 0x65c0718 },
++  (__ev64_s64__) { 0xffffffffec8c9c48 },
++  (__ev64_s64__) { 0xffffffffea563670 },
++  (__ev64_s64__) { 0xffffffffcb61daf8 },
++  (__ev64_s64__) { 0xffffffffc7e56450 },
++  (__ev64_s64__) { 0xffffffffde64dec0 },
++  (__ev64_s64__) { 0x4a2a0f94 },
++  (__ev64_s64__) { 0xffffffffa27eb386 },
++  (__ev64_s64__) { 0xffffffffbfbd3b5c },
++  (__ev64_s64__) { 0x68ca228 },
++  (__ev64_s64__) { 0xffffffffe404ff18 },
++  (__ev64_s64__) { 0xffffffffd5226e70 },
++  (__ev64_s64__) { 0x932a00 },
++  (__ev64_s64__) { 0xffffffffd72ba870 },
++  (__ev64_s64__) { 0xffffffffec3eb098 },
++  (__ev64_s64__) { 0xffffffffbdc51238 },
++  (__ev64_s64__) { 0xffffffffc26186d8 },
++  (__ev64_s64__) { 0xffffffffdadecfe0 },
++  (__ev64_s64__) { 0xfffffffffd787dbe },
++  (__ev64_s64__) { 0xfffffffffa75c6f0 },
++  (__ev64_s64__) { 0x67385eda },
++  (__ev64_s64__) { 0xffffffffdfea4070 },
++  (__ev64_s64__) { 0xffffffffffe6e138 },
++  (__ev64_s64__) { 0xffffffffd4465dd8 },
++  (__ev64_s64__) { 0xfffffffff49ea5b8 },
++  (__ev64_s64__) { 0x702578c },
++  (__ev64_s64__) { 0x32cbdd94 },
++  (__ev64_s64__) { 0x100276b8 },
++  (__ev64_s64__) { 0xfffffffff1182340 },
++  (__ev64_s64__) { 0xfffffffff03da15c },
++  (__ev64_s64__) { 0x3f6a194 },
++  (__ev64_s64__) { 0x3faf70 },
++  (__ev64_s64__) { 0xffffffffdb525600 },
++  (__ev64_s64__) { 0x4d7b5548 },
++  (__ev64_s64__) { 0xef67f18 },
++  (__ev64_s64__) { 0xffffffffd92405a4 },
++  (__ev64_s64__) { 0x2968a118 },
++  (__ev64_s64__) { 0x4f6654e },
++  (__ev64_s64__) { 0x1a391ea0 },
++  (__ev64_s64__) { 0x92a0c },
++  (__ev64_s64__) { 0x44f3be30 },
++  (__ev64_s64__) { 0x16027e82 },
++  (__ev64_s64__) { 0x11f772c0 },
++  (__ev64_s64__) { 0xf160da2 },
++  (__ev64_s64__) { 0x3a05c47c },
++  (__ev64_s64__) { 0xffffffffe40a9e48 },
++  (__ev64_s64__) { 0xffffffffd9c6c27c },
++  (__ev64_s64__) { 0xfa5f260 },
++  (__ev64_s64__) { 0x2562cea6 },
++  (__ev64_s64__) { 0x2ac51a8 },
++  (__ev64_s64__) { 0xfffffffffa2319d0 },
++  (__ev64_s64__) { 0x29eda0a0 },
++  (__ev64_s64__) { 0x4a494964 },
++  (__ev64_s64__) { 0x206a802 },
++  (__ev64_s64__) { 0x6a98750 },
++  (__ev64_s64__) { 0x637aeb60 },
++  (__ev64_s64__) { 0x2fe89254 },
++  (__ev64_s64__) { 0xfffffffffdd59780 },
++  (__ev64_s64__) { 0x725694 },
++  (__ev64_s64__) { 0xffffffffde6da986 },
++  (__ev64_s64__) { 0x6887400 },
++  (__ev64_s64__) { 0x11eaa8dc },
++  (__ev64_s64__) { 0x20d079a0 },
++  (__ev64_s64__) { 0x1f1db90a },
++  (__ev64_s64__) { 0xffffffffffbd4210 },
++  (__ev64_s64__) { 0x5e677ec },
++  (__ev64_s64__) { 0x3fa8d20 },
++  (__ev64_s64__) { 0xfffffffff4e705a6 },
++  (__ev64_s64__) { 0x2f08fea8 },
++  (__ev64_s64__) { 0xfffffffff0cf80b0 },
++  (__ev64_s64__) { 0xffffffffca2114bc },
++  (__ev64_s64__) { 0xfffffffffa4d68f8 },
++  (__ev64_s64__) { 0xffffffffff5ba1e8 },
++  (__ev64_s64__) { 0x35242110 },
++  (__ev64_s64__) { 0xfffffffff285273a },
++  (__ev64_s64__) { 0x5048bf8 },
++  (__ev64_s64__) { 0x173d1c9c },
++  (__ev64_s64__) { 0xffffffffe3f56dec },
++  (__ev64_s64__) { 0xffffffffdcaa8108 },
++  (__ev64_s64__) { 0x14617b4c },
++  (__ev64_s64__) { 0x113136b4 },
++  (__ev64_s64__) { 0xfffffffffffa7770 },
++  (__ev64_s64__) { 0xffffffffa7c51ca0 },
++  (__ev64_s64__) { 0xffffffffe92bc3e0 },
++  (__ev64_s64__) { 0x7c4c970 },
++  (__ev64_s64__) { 0xffffffffff4c5254 },
++  (__ev64_s64__) { 0xfffffffff77481d6 },
++  (__ev64_s64__) { 0x53f9d940 },
++  (__ev64_s64__) { 0x2dbd92e8 },
++  (__ev64_s64__) { 0x3bbe5138 },
++  (__ev64_s64__) { 0x1375c580 },
++  (__ev64_s64__) { 0xffffffffcd8082c8 },
++  (__ev64_s64__) { 0xffffffffd8ba6828 },
++  (__ev64_s64__) { 0x55b2a6 },
++  (__ev64_s64__) { 0xfffffffff0349c20 },
++  (__ev64_s64__) { 0xfffffffffa75526a },
++  (__ev64_s64__) { 0x219dde60 },
++  (__ev64_s64__) { 0xfffffffff956ef7a },
++  (__ev64_s64__) { 0x1c94fc10 },
++  (__ev64_s64__) { 0xffffffffacafcd98 },
++  (__ev64_s64__) { 0x41926b38 },
++  (__ev64_s64__) { 0xffffffffe4a07134 },
++  (__ev64_s64__) { 0xb630b68 },
++  (__ev64_s64__) { 0xffffffffbadea3c8 },
++  (__ev64_s64__) { 0xffffffffe6969494 },
++  (__ev64_s64__) { 0xfffffffff08ea614 },
++  (__ev64_s64__) { 0x48749bc },
++  (__ev64_s64__) { 0xffffffffc9e7b9a6 },
++  (__ev64_s64__) { 0xfffffffffe15cbc0 },
++  (__ev64_s64__) { 0x70f6af8 },
++  (__ev64_s64__) { 0xffffffffff96a48a },
++  (__ev64_s64__) { 0x49f2f8 },
++  (__ev64_s64__) { 0x24ef5f50 },
++  (__ev64_s64__) { 0xffffffffaf8a1890 },
++  (__ev64_s64__) { 0xfffffffffe484502 },
++  (__ev64_s64__) { 0xffffffffd1add996 },
++  (__ev64_s64__) { 0x172a91b0 },
++  (__ev64_s64__) { 0x1ff1291c },
++  (__ev64_s64__) { 0xffffffffefb60ec6 },
++  (__ev64_s64__) { 0xd5000ac },
++  (__ev64_s64__) { 0x12146fe4 },
++  (__ev64_s64__) { 0x5b6b229e },
++  (__ev64_s64__) { 0xfffffffff40545f4 },
++  (__ev64_s64__) { 0x2cfd68a0 },
++  (__ev64_s64__) { 0xffffffffb26f1e48 },
++  (__ev64_s64__) { 0xffffffffe9ef41d6 },
++  (__ev64_s64__) { 0xfffffffffd81fe3a },
++  (__ev64_s64__) { 0x178e03fc },
++  (__ev64_s64__) { 0x184a4d50 },
++  (__ev64_s64__) { 0x394cf71c },
++  (__ev64_s64__) { 0xb65b270 },
++  (__ev64_s64__) { 0xdd8f86 },
++  (__ev64_s64__) { 0x5fac60 },
++  (__ev64_s64__) { 0x244e34d8 },
++  (__ev64_s64__) { 0xffffffffe4c54e64 },
++  (__ev64_s64__) { 0x16ae0926 },
++  (__ev64_s64__) { 0x4a2fe14a },
++  (__ev64_s64__) { 0x4e8aab0 },
++  (__ev64_s64__) { 0x509d7fa2 },
++  (__ev64_s64__) { 0xfffffffff41ad088 },
++  (__ev64_s64__) { 0x50f8fda },
++  (__ev64_s64__) { 0xfffffffffca82f4c },
++  (__ev64_s64__) { 0xf976f88 },
++  (__ev64_s64__) { 0x20823aec },
++  (__ev64_s64__) { 0x42d84838 },
++  (__ev64_s64__) { 0xfffffffff89f3488 },
++  (__ev64_s64__) { 0x41359da },
++  (__ev64_s64__) { 0xfffffffff3897a5e },
++  (__ev64_s64__) { 0xffffffffb33fa8c4 },
++  (__ev64_s64__) { 0x2ebc180 },
++  (__ev64_s64__) { 0xffffffffd05c2f9e },
++  (__ev64_s64__) { 0x2a6ab28 },
++  (__ev64_s64__) { 0x25473d56 },
++  (__ev64_s64__) { 0xffffffffde49d1a2 },
++  (__ev64_s64__) { 0xffffffffcc765c8e },
++  (__ev64_s64__) { 0xfffffffffb283186 },
++  (__ev64_s64__) { 0xfffffffffe3fb828 },
++  (__ev64_s64__) { 0xffffffffc5b43ad8 },
++  (__ev64_s64__) { 0xffffffffce49ff40 },
++  (__ev64_s64__) { 0xfffffffff685ff5a },
++  (__ev64_s64__) { 0xffffffffd66561c0 },
++  (__ev64_s64__) { 0x5aebff50 },
++  (__ev64_s64__) { 0xffffffffffa7297e },
++  (__ev64_s64__) { 0xffffffffff65aa9c },
++  (__ev64_s64__) { 0xffffffffe872df98 },
++  (__ev64_s64__) { 0x5e99450 },
++  (__ev64_s64__) { 0xfffffffffb450e0c },
++  (__ev64_s64__) { 0xffffffffd60bbc42 },
++  (__ev64_s64__) { 0xffffffffdd6d61ae },
++  (__ev64_s64__) { 0x10762f6 },
++  (__ev64_s64__) { 0x22f7a9fc },
++
++};
++#endif // __SPE__
++
++int evmhogsmfan_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhogsmfan %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogsmfan_baseline[i][0]);
++#endif
++    // Verify that evmhogsmfan wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogsmfan_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogsmfan_asm, "evmhogsmfan");
++
++#ifdef __SPE__
++__ev64_s64__ evmhogsmfaa_baseline[] = {
++
++  (__ev64_s64__) { 0xfffffffffa855846 },
++  (__ev64_s64__) { 0x63e56c88 },
++  (__ev64_s64__) { 0xfffffffff6d4bfa8 },
++  (__ev64_s64__) { 0x1fc1b588 },
++  (__ev64_s64__) { 0xffffffffbadaa890 },
++  (__ev64_s64__) { 0xffffffffefa71734 },
++  (__ev64_s64__) { 0xfffffffff5657120 },
++  (__ev64_s64__) { 0xfffffffff950b9c0 },
++  (__ev64_s64__) { 0x273f02a6 },
++  (__ev64_s64__) { 0xffffffffdd779784 },
++  (__ev64_s64__) { 0x1ef448a4 },
++  (__ev64_s64__) { 0xfffffffff07ed30c },
++  (__ev64_s64__) { 0x1645698 },
++  (__ev64_s64__) { 0x5de8a84 },
++  (__ev64_s64__) { 0x6d0d298 },
++  (__ev64_s64__) { 0xe88b3dc },
++  (__ev64_s64__) { 0x3f0d3518 },
++  (__ev64_s64__) { 0x4d8931fc },
++  (__ev64_s64__) { 0x39b6db34 },
++  (__ev64_s64__) { 0xc16f7e8 },
++  (__ev64_s64__) { 0x13e696bc },
++  (__ev64_s64__) { 0xfffffffff5a47b80 },
++  (__ev64_s64__) { 0x15e409c },
++  (__ev64_s64__) { 0xffffffffb419ab84 },
++  (__ev64_s64__) { 0x13d225f0 },
++  (__ev64_s64__) { 0xffffffffbe5a73ec },
++  (__ev64_s64__) { 0x59f8f320 },
++  (__ev64_s64__) { 0xffffffffdc75fc04 },
++  (__ev64_s64__) { 0x2d1874a0 },
++  (__ev64_s64__) { 0xfffffffff45251fe },
++  (__ev64_s64__) { 0xffffffffa34bc900 },
++  (__ev64_s64__) { 0xffffffffdc22584e },
++  (__ev64_s64__) { 0xffffffffcbfc4336 },
++  (__ev64_s64__) { 0xfffffffffcca522c },
++  (__ev64_s64__) { 0xffffffffda6a5190 },
++  (__ev64_s64__) { 0x5ce31468 },
++  (__ev64_s64__) { 0x5071cf8c },
++  (__ev64_s64__) { 0xffffffffd5757a54 },
++  (__ev64_s64__) { 0x24c658f0 },
++  (__ev64_s64__) { 0xffffffffc09685e4 },
++  (__ev64_s64__) { 0xffffffffc4fc6300 },
++  (__ev64_s64__) { 0x8b83624 },
++  (__ev64_s64__) { 0xffffffffcbd46570 },
++  (__ev64_s64__) { 0xffffffffddfe3b10 },
++  (__ev64_s64__) { 0x42afcc0 },
++  (__ev64_s64__) { 0x57e3f0 },
++  (__ev64_s64__) { 0x20992d24 },
++  (__ev64_s64__) { 0x37a4aed4 },
++  (__ev64_s64__) { 0x20c3a8be },
++  (__ev64_s64__) { 0x42ff8ae },
++  (__ev64_s64__) { 0x2e677188 },
++  (__ev64_s64__) { 0x6b914ea },
++  (__ev64_s64__) { 0xffffffffcfc84e6c },
++  (__ev64_s64__) { 0xfffffffff26e810e },
++  (__ev64_s64__) { 0xfffffffff7241310 },
++  (__ev64_s64__) { 0x1451e2fc },
++  (__ev64_s64__) { 0xffffffffc63ef64c },
++  (__ev64_s64__) { 0xffffffffcbefbfd8 },
++  (__ev64_s64__) { 0xffffffffdc90aa30 },
++  (__ev64_s64__) { 0xffffffffdf33d518 },
++  (__ev64_s64__) { 0xffffffffff4732f0 },
++  (__ev64_s64__) { 0xffffffffe0d486a8 },
++  (__ev64_s64__) { 0xffffffffe3c39c80 },
++  (__ev64_s64__) { 0xffffffff9741c08a },
++  (__ev64_s64__) { 0x231b16 },
++  (__ev64_s64__) { 0xffffffffdda65554 },
++  (__ev64_s64__) { 0xfffffffffe99f680 },
++  (__ev64_s64__) { 0x5fb5e14 },
++  (__ev64_s64__) { 0x1329534 },
++  (__ev64_s64__) { 0x20740c4 },
++  (__ev64_s64__) { 0xfffffffff4219e70 },
++  (__ev64_s64__) { 0xffffffffdb01d590 },
++  (__ev64_s64__) { 0xffffffffe48e2276 },
++  (__ev64_s64__) { 0x81ab84 },
++  (__ev64_s64__) { 0x23adee80 },
++  (__ev64_s64__) { 0x34d77380 },
++  (__ev64_s64__) { 0xffffffffe94221c0 },
++  (__ev64_s64__) { 0x6cccdf80 },
++  (__ev64_s64__) { 0xfffffffff73faf38 },
++  (__ev64_s64__) { 0x180a5f80 },
++  (__ev64_s64__) { 0xfffffffff7cab80a },
++  (__ev64_s64__) { 0x1437b0a0 },
++  (__ev64_s64__) { 0xfffffffff69e0118 },
++  (__ev64_s64__) { 0xfffffffff2a9cdd2 },
++  (__ev64_s64__) { 0xffffffffddd60930 },
++  (__ev64_s64__) { 0xfffffffff9a3f8e8 },
++  (__ev64_s64__) { 0x137363b8 },
++  (__ev64_s64__) { 0x15a9c990 },
++  (__ev64_s64__) { 0x349e2508 },
++  (__ev64_s64__) { 0x381a9bb0 },
++  (__ev64_s64__) { 0x219b2140 },
++  (__ev64_s64__) { 0xffffffffb5d5f06c },
++  (__ev64_s64__) { 0x5d814c7a },
++  (__ev64_s64__) { 0x4042c4a4 },
++  (__ev64_s64__) { 0xfffffffff9735dd8 },
++  (__ev64_s64__) { 0x1bfb00e8 },
++  (__ev64_s64__) { 0x2add9190 },
++  (__ev64_s64__) { 0xffffffffff6cd600 },
++  (__ev64_s64__) { 0x28d45790 },
++  (__ev64_s64__) { 0x13c14f68 },
++  (__ev64_s64__) { 0x423aedc8 },
++  (__ev64_s64__) { 0x3d9e7928 },
++  (__ev64_s64__) { 0x25213020 },
++  (__ev64_s64__) { 0x2878242 },
++  (__ev64_s64__) { 0x58a3910 },
++  (__ev64_s64__) { 0xffffffff98c7a126 },
++  (__ev64_s64__) { 0x2015bf90 },
++  (__ev64_s64__) { 0x191ec8 },
++  (__ev64_s64__) { 0x2bb9a228 },
++  (__ev64_s64__) { 0xb615a48 },
++  (__ev64_s64__) { 0xfffffffff8fda874 },
++  (__ev64_s64__) { 0xffffffffcd34226c },
++  (__ev64_s64__) { 0xffffffffeffd8948 },
++  (__ev64_s64__) { 0xee7dcc0 },
++  (__ev64_s64__) { 0xfc25ea4 },
++  (__ev64_s64__) { 0xfffffffffc095e6c },
++  (__ev64_s64__) { 0xffffffffffc05090 },
++  (__ev64_s64__) { 0x24adaa00 },
++  (__ev64_s64__) { 0xffffffffb284aab8 },
++  (__ev64_s64__) { 0xfffffffff10980e8 },
++  (__ev64_s64__) { 0x26dbfa5c },
++  (__ev64_s64__) { 0xffffffffd6975ee8 },
++  (__ev64_s64__) { 0xfffffffffb099ab2 },
++  (__ev64_s64__) { 0xffffffffe5c6e160 },
++  (__ev64_s64__) { 0xfffffffffff6d5f4 },
++  (__ev64_s64__) { 0xffffffffbb0c41d0 },
++  (__ev64_s64__) { 0xffffffffe9fd817e },
++  (__ev64_s64__) { 0xffffffffee088d40 },
++  (__ev64_s64__) { 0xfffffffff0e9f25e },
++  (__ev64_s64__) { 0xffffffffc5fa3b84 },
++  (__ev64_s64__) { 0x1bf561b8 },
++  (__ev64_s64__) { 0x26393d84 },
++  (__ev64_s64__) { 0xfffffffff05a0da0 },
++  (__ev64_s64__) { 0xffffffffda9d315a },
++  (__ev64_s64__) { 0xfffffffffd53ae58 },
++  (__ev64_s64__) { 0x5dce630 },
++  (__ev64_s64__) { 0xffffffffd6125f60 },
++  (__ev64_s64__) { 0xffffffffb5b6b69c },
++  (__ev64_s64__) { 0xfffffffffdf957fe },
++  (__ev64_s64__) { 0xfffffffff95678b0 },
++  (__ev64_s64__) { 0xffffffff9c8514a0 },
++  (__ev64_s64__) { 0xffffffffd0176dac },
++  (__ev64_s64__) { 0x22a6880 },
++  (__ev64_s64__) { 0xffffffffff8da96c },
++  (__ev64_s64__) { 0x2192567a },
++  (__ev64_s64__) { 0xfffffffff9778c00 },
++  (__ev64_s64__) { 0xffffffffee155724 },
++  (__ev64_s64__) { 0xffffffffdf2f8660 },
++  (__ev64_s64__) { 0xffffffffe0e246f6 },
++  (__ev64_s64__) { 0x42bdf0 },
++  (__ev64_s64__) { 0xfffffffffa198814 },
++  (__ev64_s64__) { 0xfffffffffc0572e0 },
++  (__ev64_s64__) { 0xb18fa5a },
++  (__ev64_s64__) { 0xffffffffd0f70158 },
++  (__ev64_s64__) { 0xf307f50 },
++  (__ev64_s64__) { 0x35deeb44 },
++  (__ev64_s64__) { 0x5b29708 },
++  (__ev64_s64__) { 0xa45e18 },
++  (__ev64_s64__) { 0xffffffffcadbdef0 },
++  (__ev64_s64__) { 0xd7ad8c6 },
++  (__ev64_s64__) { 0xfffffffffafb7408 },
++  (__ev64_s64__) { 0xffffffffe8c2e364 },
++  (__ev64_s64__) { 0x1c0a9214 },
++  (__ev64_s64__) { 0x23557ef8 },
++  (__ev64_s64__) { 0xffffffffeb9e84b4 },
++  (__ev64_s64__) { 0xffffffffeecec94c },
++  (__ev64_s64__) { 0x58890 },
++  (__ev64_s64__) { 0x583ae360 },
++  (__ev64_s64__) { 0x16d43c20 },
++  (__ev64_s64__) { 0xfffffffff83b3690 },
++  (__ev64_s64__) { 0xb3adac },
++  (__ev64_s64__) { 0x88b7e2a },
++  (__ev64_s64__) { 0xffffffffac0626c0 },
++  (__ev64_s64__) { 0xffffffffd2426d18 },
++  (__ev64_s64__) { 0xffffffffc441aec8 },
++  (__ev64_s64__) { 0xffffffffec8a3a80 },
++  (__ev64_s64__) { 0x327f7d38 },
++  (__ev64_s64__) { 0x274597d8 },
++  (__ev64_s64__) { 0xffffffffffaa4d5a },
++  (__ev64_s64__) { 0xfcb63e0 },
++  (__ev64_s64__) { 0x58aad96 },
++  (__ev64_s64__) { 0xffffffffde6221a0 },
++  (__ev64_s64__) { 0x6a91086 },
++  (__ev64_s64__) { 0xffffffffe36b03f0 },
++  (__ev64_s64__) { 0x53503268 },
++  (__ev64_s64__) { 0xffffffffbe6d94c8 },
++  (__ev64_s64__) { 0x1b5f8ecc },
++  (__ev64_s64__) { 0xfffffffff49cf498 },
++  (__ev64_s64__) { 0x45215c38 },
++  (__ev64_s64__) { 0x19696b6c },
++  (__ev64_s64__) { 0xf7159ec },
++  (__ev64_s64__) { 0xfffffffffb78b644 },
++  (__ev64_s64__) { 0x3618465a },
++  (__ev64_s64__) { 0x1ea3440 },
++  (__ev64_s64__) { 0xfffffffff8f09508 },
++  (__ev64_s64__) { 0x695b76 },
++  (__ev64_s64__) { 0xffffffffffb60d08 },
++  (__ev64_s64__) { 0xffffffffdb10a0b0 },
++  (__ev64_s64__) { 0x5075e770 },
++  (__ev64_s64__) { 0x1b7bafe },
++  (__ev64_s64__) { 0x2e52266a },
++  (__ev64_s64__) { 0xffffffffe8d56e50 },
++  (__ev64_s64__) { 0xffffffffe00ed6e4 },
++  (__ev64_s64__) { 0x1049f13a },
++  (__ev64_s64__) { 0xfffffffff2afff54 },
++  (__ev64_s64__) { 0xffffffffedeb901c },
++  (__ev64_s64__) { 0xffffffffa494dd62 },
++  (__ev64_s64__) { 0xbfaba0c },
++  (__ev64_s64__) { 0xffffffffd3029760 },
++  (__ev64_s64__) { 0x4d90e1b8 },
++  (__ev64_s64__) { 0x1610be2a },
++  (__ev64_s64__) { 0x27e01c6 },
++  (__ev64_s64__) { 0xffffffffe871fc04 },
++  (__ev64_s64__) { 0xffffffffe7b5b2b0 },
++  (__ev64_s64__) { 0xffffffffc6b308e4 },
++  (__ev64_s64__) { 0xfffffffff49a4d90 },
++  (__ev64_s64__) { 0xffffffffff22707a },
++  (__ev64_s64__) { 0xffffffffffa053a0 },
++  (__ev64_s64__) { 0xffffffffdbb1cb28 },
++  (__ev64_s64__) { 0x1b3ab19c },
++  (__ev64_s64__) { 0xffffffffe951f6da },
++  (__ev64_s64__) { 0xffffffffb5d01eb6 },
++  (__ev64_s64__) { 0xfffffffffb175550 },
++  (__ev64_s64__) { 0xffffffffaf62805e },
++  (__ev64_s64__) { 0xbe52f78 },
++  (__ev64_s64__) { 0xfffffffffaf07026 },
++  (__ev64_s64__) { 0x357d0b4 },
++  (__ev64_s64__) { 0xfffffffff0689078 },
++  (__ev64_s64__) { 0xffffffffdf7dc514 },
++  (__ev64_s64__) { 0xffffffffbd27b7c8 },
++  (__ev64_s64__) { 0x760cb78 },
++  (__ev64_s64__) { 0xfffffffffbeca626 },
++  (__ev64_s64__) { 0xc7685a2 },
++  (__ev64_s64__) { 0x4cc0573c },
++  (__ev64_s64__) { 0xfffffffffd143e80 },
++  (__ev64_s64__) { 0x2fa3d062 },
++  (__ev64_s64__) { 0xfffffffffd5954d8 },
++  (__ev64_s64__) { 0xffffffffdab8c2aa },
++  (__ev64_s64__) { 0x21b62e5e },
++  (__ev64_s64__) { 0x3389a372 },
++  (__ev64_s64__) { 0x4d7ce7a },
++  (__ev64_s64__) { 0x1c047d8 },
++  (__ev64_s64__) { 0x3a4bc528 },
++  (__ev64_s64__) { 0x31b600c0 },
++  (__ev64_s64__) { 0x97a00a6 },
++  (__ev64_s64__) { 0x299a9e40 },
++  (__ev64_s64__) { 0xffffffffa51400b0 },
++  (__ev64_s64__) { 0x58d682 },
++  (__ev64_s64__) { 0x9a5564 },
++  (__ev64_s64__) { 0x178d2068 },
++  (__ev64_s64__) { 0xfffffffffa166bb0 },
++  (__ev64_s64__) { 0x4baf1f4 },
++  (__ev64_s64__) { 0x29f443be },
++  (__ev64_s64__) { 0x22929e52 },
++  (__ev64_s64__) { 0xfffffffffef89d0a },
++  (__ev64_s64__) { 0xffffffffdd085604 },
++
++};
++#endif // __SPE__
++
++int evmhogsmfaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhogsmfaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogsmfaa_baseline[i][0]);
++#endif
++    // Verify that evmhogsmfaa wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogsmfaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogsmfaa_asm, "evmhogsmfaa");
++
++#ifdef __SPE__
++__ev64_s64__ evmhegsmfan_baseline[] = {
++
++  (__ev64_s64__) { 0x5baab9ae },
++  (__ev64_s64__) { 0x138c9ff4 },
++  (__ev64_s64__) { 0xffffffffd3352d8e },
++  (__ev64_s64__) { 0xffffffffe5405c60 },
++  (__ev64_s64__) { 0xffffffffd08a9bc8 },
++  (__ev64_s64__) { 0x12fc102c },
++  (__ev64_s64__) { 0xfffffffffe890a80 },
++  (__ev64_s64__) { 0xd73afe },
++  (__ev64_s64__) { 0x123d81d4 },
++  (__ev64_s64__) { 0x30aff80c },
++  (__ev64_s64__) { 0xffffffffb35ba798 },
++  (__ev64_s64__) { 0x55f22256 },
++  (__ev64_s64__) { 0xfffffffffb79e7b8 },
++  (__ev64_s64__) { 0x47195ee0 },
++  (__ev64_s64__) { 0x9baedd4 },
++  (__ev64_s64__) { 0xfffffffff549d826 },
++  (__ev64_s64__) { 0x11352d00 },
++  (__ev64_s64__) { 0x7085c800 },
++  (__ev64_s64__) { 0x56511458 },
++  (__ev64_s64__) { 0x1c4e4370 },
++  (__ev64_s64__) { 0xffffffffffe648fe },
++  (__ev64_s64__) { 0x7f1e74c },
++  (__ev64_s64__) { 0x3c687c90 },
++  (__ev64_s64__) { 0xfffffffff1a4162c },
++  (__ev64_s64__) { 0xffffffffd46bdd98 },
++  (__ev64_s64__) { 0x9c7b700 },
++  (__ev64_s64__) { 0xfffffffffa71f210 },
++  (__ev64_s64__) { 0xfffffffffeebd3e8 },
++  (__ev64_s64__) { 0x3057816 },
++  (__ev64_s64__) { 0xffffffffca1cc516 },
++  (__ev64_s64__) { 0xffffffffaa43b278 },
++  (__ev64_s64__) { 0xeda7a16 },
++  (__ev64_s64__) { 0xffffffffb2216950 },
++  (__ev64_s64__) { 0x318817b0 },
++  (__ev64_s64__) { 0x56b1c0 },
++  (__ev64_s64__) { 0xffffffffff6f78f0 },
++  (__ev64_s64__) { 0x5c62d8 },
++  (__ev64_s64__) { 0xffffffffdef3dee8 },
++  (__ev64_s64__) { 0xfffffffff51de854 },
++  (__ev64_s64__) { 0xffffffffedb6c06a },
++  (__ev64_s64__) { 0x76459b4 },
++  (__ev64_s64__) { 0x57f7d838 },
++  (__ev64_s64__) { 0xfffffffffaeb34cc },
++  (__ev64_s64__) { 0x5c5f026 },
++  (__ev64_s64__) { 0xdf60460 },
++  (__ev64_s64__) { 0x92c4522 },
++  (__ev64_s64__) { 0xfffffffffebdc464 },
++  (__ev64_s64__) { 0x104a6028 },
++  (__ev64_s64__) { 0x6d1d4c5e },
++  (__ev64_s64__) { 0x589fe72 },
++  (__ev64_s64__) { 0x30a04570 },
++  (__ev64_s64__) { 0x17b9985a },
++  (__ev64_s64__) { 0x11256914 },
++  (__ev64_s64__) { 0xd5c0a9a },
++  (__ev64_s64__) { 0xfffffffff2b06760 },
++  (__ev64_s64__) { 0x1c1b794 },
++  (__ev64_s64__) { 0x1ed7be1e },
++  (__ev64_s64__) { 0xffffffffd8bacfe0 },
++  (__ev64_s64__) { 0xffffffffbd3623bc },
++  (__ev64_s64__) { 0xfffffffffdc3e592 },
++  (__ev64_s64__) { 0x3452e0e0 },
++  (__ev64_s64__) { 0xffffffffffe76e50 },
++  (__ev64_s64__) { 0xffffffffea48d240 },
++  (__ev64_s64__) { 0xdae8de6 },
++  (__ev64_s64__) { 0xffffffffffde3da8 },
++  (__ev64_s64__) { 0x46ab5ce4 },
++  (__ev64_s64__) { 0xffffffffd55f7700 },
++  (__ev64_s64__) { 0xffffffffefb46706 },
++  (__ev64_s64__) { 0x38bdcd0 },
++  (__ev64_s64__) { 0x2396d91c },
++  (__ev64_s64__) { 0x1efa7670 },
++  (__ev64_s64__) { 0xffffffffd2617800 },
++  (__ev64_s64__) { 0xffffffffef031284 },
++  (__ev64_s64__) { 0x4720d40 },
++  (__ev64_s64__) { 0xffffffffd8c4cfc0 },
++  (__ev64_s64__) { 0x4981fc0 },
++  (__ev64_s64__) { 0x23d86ec },
++  (__ev64_s64__) { 0x27bcc00 },
++  (__ev64_s64__) { 0x2659e402 },
++  (__ev64_s64__) { 0xffffffffc6dd116c },
++  (__ev64_s64__) { 0xffffffffef507c80 },
++  (__ev64_s64__) { 0x1916a88 },
++  (__ev64_s64__) { 0xffffffffe1135880 },
++  (__ev64_s64__) { 0x6da350ec },
++  (__ev64_s64__) { 0xf7ed74 },
++  (__ev64_s64__) { 0x394eea00 },
++  (__ev64_s64__) { 0x2c62e6 },
++  (__ev64_s64__) { 0xfffffffffebccc3c },
++  (__ev64_s64__) { 0xfffffffff4c759e0 },
++  (__ev64_s64__) { 0x699e40 },
++  (__ev64_s64__) { 0xffffffff931bda44 },
++  (__ev64_s64__) { 0xffffffff8ffc7e00 },
++  (__ev64_s64__) { 0xffffffffe64428f2 },
++  (__ev64_s64__) { 0xffffffffec343f46 },
++  (__ev64_s64__) { 0xa91fdbc },
++  (__ev64_s64__) { 0x15c2ddec },
++  (__ev64_s64__) { 0xe73ef5c },
++  (__ev64_s64__) { 0x1b5e410c },
++  (__ev64_s64__) { 0x1f379d48 },
++  (__ev64_s64__) { 0xffffffffc58b49e0 },
++  (__ev64_s64__) { 0xffffffffc8985670 },
++  (__ev64_s64__) { 0xffffffffee1ceb9c },
++  (__ev64_s64__) { 0xffffffffa98ffd10 },
++  (__ev64_s64__) { 0x8ecc6d0 },
++  (__ev64_s64__) { 0xfffffffffaec53c0 },
++  (__ev64_s64__) { 0xb080732 },
++  (__ev64_s64__) { 0x83adcc2 },
++  (__ev64_s64__) { 0xffffffffdc8f4090 },
++  (__ev64_s64__) { 0x1d7780c4 },
++  (__ev64_s64__) { 0x97bea08 },
++  (__ev64_s64__) { 0x48e8240 },
++  (__ev64_s64__) { 0x30ec9b8c },
++  (__ev64_s64__) { 0x1aaddb72 },
++  (__ev64_s64__) { 0x85edaf6 },
++  (__ev64_s64__) { 0xfffffffffcb9842c },
++  (__ev64_s64__) { 0xffffffffe8292100 },
++  (__ev64_s64__) { 0x5759251c },
++  (__ev64_s64__) { 0x452e1bde },
++  (__ev64_s64__) { 0x49a7ee20 },
++  (__ev64_s64__) { 0x108626fa },
++  (__ev64_s64__) { 0x30674620 },
++  (__ev64_s64__) { 0xc7c1890 },
++  (__ev64_s64__) { 0xffffffffb2ae6314 },
++  (__ev64_s64__) { 0xffffffffc7e77bd8 },
++  (__ev64_s64__) { 0x6776bc0 },
++  (__ev64_s64__) { 0xfffffffffe641400 },
++  (__ev64_s64__) { 0xffffffffd84f59d0 },
++  (__ev64_s64__) { 0xffffffffec945fd4 },
++  (__ev64_s64__) { 0x36749838 },
++  (__ev64_s64__) { 0xfffffffffb384e60 },
++  (__ev64_s64__) { 0x29e3712 },
++  (__ev64_s64__) { 0xffffffffd2268ab0 },
++  (__ev64_s64__) { 0xffffffffe6e50284 },
++  (__ev64_s64__) { 0x6f665c },
++  (__ev64_s64__) { 0xffffffffccf7ff54 },
++  (__ev64_s64__) { 0xffffffffe59ddd40 },
++  (__ev64_s64__) { 0x312ff410 },
++  (__ev64_s64__) { 0x15c6ba14 },
++  (__ev64_s64__) { 0xffffffffbddca28e },
++  (__ev64_s64__) { 0xffffffffe55bce46 },
++  (__ev64_s64__) { 0xfffffffff4334800 },
++  (__ev64_s64__) { 0xfffffffff67c1f2c },
++  (__ev64_s64__) { 0xffffffff97bda704 },
++  (__ev64_s64__) { 0xf180b6a },
++  (__ev64_s64__) { 0xfffffffff563c8a8 },
++  (__ev64_s64__) { 0xffffffffe683338a },
++  (__ev64_s64__) { 0xffffffffeab1e8fa },
++  (__ev64_s64__) { 0xfffffffff7a9ba08 },
++  (__ev64_s64__) { 0xffffffffe91545a0 },
++  (__ev64_s64__) { 0xffffffffd828d980 },
++  (__ev64_s64__) { 0xffffffffb0fd5d22 },
++  (__ev64_s64__) { 0x1244d97c },
++  (__ev64_s64__) { 0xffffffff9e7ad390 },
++  (__ev64_s64__) { 0x8b6f71e },
++  (__ev64_s64__) { 0x18ed60 },
++  (__ev64_s64__) { 0xffffffffd8a86300 },
++  (__ev64_s64__) { 0x2436cf00 },
++  (__ev64_s64__) { 0x56f327c },
++  (__ev64_s64__) { 0xffffffffb5622072 },
++  (__ev64_s64__) { 0x10817f0 },
++  (__ev64_s64__) { 0xffffffffdad8fdc0 },
++  (__ev64_s64__) { 0xfffffffffcc70b68 },
++  (__ev64_s64__) { 0xfffffffffec3a7e4 },
++  (__ev64_s64__) { 0xffffffffc3ba77b0 },
++  (__ev64_s64__) { 0x2b2bf5e0 },
++  (__ev64_s64__) { 0xffffffffe0935808 },
++  (__ev64_s64__) { 0x12bcb27a },
++  (__ev64_s64__) { 0x7acfc3e },
++  (__ev64_s64__) { 0xffffffffe693372c },
++  (__ev64_s64__) { 0xfffffffffbd91fcc },
++  (__ev64_s64__) { 0xffffffff96c3ffbe },
++  (__ev64_s64__) { 0xffffffffebc6e360 },
++  (__ev64_s64__) { 0x20647350 },
++  (__ev64_s64__) { 0xfffffffff1b9c6e8 },
++  (__ev64_s64__) { 0xfffffffffec776f0 },
++  (__ev64_s64__) { 0x23dae04 },
++  (__ev64_s64__) { 0xea31368 },
++  (__ev64_s64__) { 0xfffffffff6529456 },
++  (__ev64_s64__) { 0x8450628 },
++  (__ev64_s64__) { 0xfffffffffeec7280 },
++  (__ev64_s64__) { 0x193a4060 },
++  (__ev64_s64__) { 0xfffffffffa28e8b8 },
++  (__ev64_s64__) { 0xffffffffb1975b6e },
++  (__ev64_s64__) { 0x298b94a0 },
++  (__ev64_s64__) { 0xffffffff9ddde608 },
++  (__ev64_s64__) { 0xfdae398 },
++  (__ev64_s64__) { 0xffffffffbd04bfc2 },
++  (__ev64_s64__) { 0xffffffffbe433228 },
++  (__ev64_s64__) { 0xec0b5de },
++  (__ev64_s64__) { 0xfffffffff7410338 },
++  (__ev64_s64__) { 0xfffffffff8decba0 },
++  (__ev64_s64__) { 0x5ced7732 },
++  (__ev64_s64__) { 0x25464be0 },
++  (__ev64_s64__) { 0xb9a83a8 },
++  (__ev64_s64__) { 0xffffffffec5ed690 },
++  (__ev64_s64__) { 0xd6dbf22 },
++  (__ev64_s64__) { 0xffffffffc66d3400 },
++  (__ev64_s64__) { 0x45bebb62 },
++  (__ev64_s64__) { 0xfffffffff069e84e },
++  (__ev64_s64__) { 0x15ec7a50 },
++  (__ev64_s64__) { 0xfffffffff8a73210 },
++  (__ev64_s64__) { 0x7f73544 },
++  (__ev64_s64__) { 0x25f752e },
++  (__ev64_s64__) { 0xffffffffa0957af8 },
++  (__ev64_s64__) { 0x511f96d8 },
++  (__ev64_s64__) { 0xffffffffc0a30858 },
++  (__ev64_s64__) { 0xfffffffffed947ea },
++  (__ev64_s64__) { 0xfffffffff251e73e },
++  (__ev64_s64__) { 0x41bfad6 },
++  (__ev64_s64__) { 0x197c4506 },
++  (__ev64_s64__) { 0x3ac345d4 },
++  (__ev64_s64__) { 0xffffffffae454e2c },
++  (__ev64_s64__) { 0x1125fba8 },
++  (__ev64_s64__) { 0x24a5dec },
++  (__ev64_s64__) { 0x2e1a4ce2 },
++  (__ev64_s64__) { 0xfffffffff4955668 },
++  (__ev64_s64__) { 0x18b0370 },
++  (__ev64_s64__) { 0x4ddd5070 },
++  (__ev64_s64__) { 0xfffffffff4f76588 },
++  (__ev64_s64__) { 0x366aaf08 },
++  (__ev64_s64__) { 0xffffffffd0b6e72c },
++  (__ev64_s64__) { 0x4f0bc68 },
++  (__ev64_s64__) { 0x33061c0e },
++  (__ev64_s64__) { 0xffffffffc20ff564 },
++  (__ev64_s64__) { 0xfffffffffdb75292 },
++  (__ev64_s64__) { 0xfffffffff56058c0 },
++  (__ev64_s64__) { 0x130d6b98 },
++  (__ev64_s64__) { 0x1fef7a82 },
++  (__ev64_s64__) { 0x430dee90 },
++  (__ev64_s64__) { 0xfffffffff7d21e0c },
++  (__ev64_s64__) { 0x857e9c },
++  (__ev64_s64__) { 0x3bc87ed0 },
++  (__ev64_s64__) { 0x251aed96 },
++  (__ev64_s64__) { 0xffffffffe1247850 },
++  (__ev64_s64__) { 0xffffffffda2b38c6 },
++  (__ev64_s64__) { 0x163416f8 },
++  (__ev64_s64__) { 0x19f60c1a },
++  (__ev64_s64__) { 0x996115c },
++  (__ev64_s64__) { 0xfffffffffabcc9c8 },
++  (__ev64_s64__) { 0xe24d854 },
++  (__ev64_s64__) { 0x331a6a6a },
++  (__ev64_s64__) { 0x11e1147a },
++  (__ev64_s64__) { 0xfffffffffbde6418 },
++  (__ev64_s64__) { 0xffffffffefdb11f2 },
++  (__ev64_s64__) { 0x75621fc },
++  (__ev64_s64__) { 0xffffffffc3f4c74a },
++  (__ev64_s64__) { 0x22638a58 },
++  (__ev64_s64__) { 0x125c8540 },
++  (__ev64_s64__) { 0xfffffffffd9062e8 },
++  (__ev64_s64__) { 0x8579f38 },
++  (__ev64_s64__) { 0xffffffffc757e904 },
++  (__ev64_s64__) { 0xffffffffd18c4062 },
++  (__ev64_s64__) { 0x2873be12 },
++  (__ev64_s64__) { 0x1ed94cd4 },
++  (__ev64_s64__) { 0x1c183558 },
++  (__ev64_s64__) { 0xffffffffca5c1b14 },
++
++};
++#endif // __SPE__
++
++int evmhegsmfan_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhegsmfan %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegsmfan_baseline[i][0]);
++#endif
++    // Verify that evmhegsmfan wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegsmfan_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegsmfan_asm, "evmhegsmfan");
++
++#ifdef __SPE__
++__ev64_s64__ evmhegsmfaa_baseline[] = {
++
++  (__ev64_s64__) { 0xffffffffa4554652 },
++  (__ev64_s64__) { 0xffffffffec73600c },
++  (__ev64_s64__) { 0x2ccad272 },
++  (__ev64_s64__) { 0x1abfa3a0 },
++  (__ev64_s64__) { 0x2f756438 },
++  (__ev64_s64__) { 0xffffffffed03efd4 },
++  (__ev64_s64__) { 0x176f580 },
++  (__ev64_s64__) { 0xffffffffff28c502 },
++  (__ev64_s64__) { 0xffffffffedc27e2c },
++  (__ev64_s64__) { 0xffffffffcf5007f4 },
++  (__ev64_s64__) { 0x4ca45868 },
++  (__ev64_s64__) { 0xffffffffaa0dddaa },
++  (__ev64_s64__) { 0x4861848 },
++  (__ev64_s64__) { 0xffffffffb8e6a120 },
++  (__ev64_s64__) { 0xfffffffff645122c },
++  (__ev64_s64__) { 0xab627da },
++  (__ev64_s64__) { 0xffffffffeecad300 },
++  (__ev64_s64__) { 0xffffffff8f7a3800 },
++  (__ev64_s64__) { 0xffffffffa9aeeba8 },
++  (__ev64_s64__) { 0xffffffffe3b1bc90 },
++  (__ev64_s64__) { 0x19b702 },
++  (__ev64_s64__) { 0xfffffffff80e18b4 },
++  (__ev64_s64__) { 0xffffffffc3978370 },
++  (__ev64_s64__) { 0xe5be9d4 },
++  (__ev64_s64__) { 0x2b942268 },
++  (__ev64_s64__) { 0xfffffffff6384900 },
++  (__ev64_s64__) { 0x58e0df0 },
++  (__ev64_s64__) { 0x1142c18 },
++  (__ev64_s64__) { 0xfffffffffcfa87ea },
++  (__ev64_s64__) { 0x35e33aea },
++  (__ev64_s64__) { 0x55bc4d88 },
++  (__ev64_s64__) { 0xfffffffff12585ea },
++  (__ev64_s64__) { 0x4dde96b0 },
++  (__ev64_s64__) { 0xffffffffce77e850 },
++  (__ev64_s64__) { 0xffffffffffa94e40 },
++  (__ev64_s64__) { 0x908710 },
++  (__ev64_s64__) { 0xffffffffffa39d28 },
++  (__ev64_s64__) { 0x210c2118 },
++  (__ev64_s64__) { 0xae217ac },
++  (__ev64_s64__) { 0x12493f96 },
++  (__ev64_s64__) { 0xfffffffff89ba64c },
++  (__ev64_s64__) { 0xffffffffa80827c8 },
++  (__ev64_s64__) { 0x514cb34 },
++  (__ev64_s64__) { 0xfffffffffa3a0fda },
++  (__ev64_s64__) { 0xfffffffff209fba0 },
++  (__ev64_s64__) { 0xfffffffff6d3bade },
++  (__ev64_s64__) { 0x1423b9c },
++  (__ev64_s64__) { 0xffffffffefb59fd8 },
++  (__ev64_s64__) { 0xffffffff92e2b3a2 },
++  (__ev64_s64__) { 0xfffffffffa76018e },
++  (__ev64_s64__) { 0xffffffffcf5fba90 },
++  (__ev64_s64__) { 0xffffffffe84667a6 },
++  (__ev64_s64__) { 0xffffffffeeda96ec },
++  (__ev64_s64__) { 0xfffffffff2a3f566 },
++  (__ev64_s64__) { 0xd4f98a0 },
++  (__ev64_s64__) { 0xfffffffffe3e486c },
++  (__ev64_s64__) { 0xffffffffe12841e2 },
++  (__ev64_s64__) { 0x27453020 },
++  (__ev64_s64__) { 0x42c9dc44 },
++  (__ev64_s64__) { 0x23c1a6e },
++  (__ev64_s64__) { 0xffffffffcbad1f20 },
++  (__ev64_s64__) { 0x1891b0 },
++  (__ev64_s64__) { 0x15b72dc0 },
++  (__ev64_s64__) { 0xfffffffff251721a },
++  (__ev64_s64__) { 0x21c258 },
++  (__ev64_s64__) { 0xffffffffb954a31c },
++  (__ev64_s64__) { 0x2aa08900 },
++  (__ev64_s64__) { 0x104b98fa },
++  (__ev64_s64__) { 0xfffffffffc742330 },
++  (__ev64_s64__) { 0xffffffffdc6926e4 },
++  (__ev64_s64__) { 0xffffffffe1058990 },
++  (__ev64_s64__) { 0x2d9e8800 },
++  (__ev64_s64__) { 0x10fced7c },
++  (__ev64_s64__) { 0xfffffffffb8df2c0 },
++  (__ev64_s64__) { 0x273b3040 },
++  (__ev64_s64__) { 0xfffffffffb67e040 },
++  (__ev64_s64__) { 0xfffffffffdc27914 },
++  (__ev64_s64__) { 0xfffffffffd843400 },
++  (__ev64_s64__) { 0xffffffffd9a61bfe },
++  (__ev64_s64__) { 0x3922ee94 },
++  (__ev64_s64__) { 0x10af8380 },
++  (__ev64_s64__) { 0xfffffffffe6e9578 },
++  (__ev64_s64__) { 0x1eeca780 },
++  (__ev64_s64__) { 0xffffffff925caf14 },
++  (__ev64_s64__) { 0xffffffffff08128c },
++  (__ev64_s64__) { 0xffffffffc6b11600 },
++  (__ev64_s64__) { 0xffffffffffd39d1a },
++  (__ev64_s64__) { 0x14333c4 },
++  (__ev64_s64__) { 0xb38a620 },
++  (__ev64_s64__) { 0xffffffffff9661c0 },
++  (__ev64_s64__) { 0x6ce425bc },
++  (__ev64_s64__) { 0x70038200 },
++  (__ev64_s64__) { 0x19bbd70e },
++  (__ev64_s64__) { 0x13cbc0ba },
++  (__ev64_s64__) { 0xfffffffff56e0244 },
++  (__ev64_s64__) { 0xffffffffea3d2214 },
++  (__ev64_s64__) { 0xfffffffff18c10a4 },
++  (__ev64_s64__) { 0xffffffffe4a1bef4 },
++  (__ev64_s64__) { 0xffffffffe0c862b8 },
++  (__ev64_s64__) { 0x3a74b620 },
++  (__ev64_s64__) { 0x3767a990 },
++  (__ev64_s64__) { 0x11e31464 },
++  (__ev64_s64__) { 0x567002f0 },
++  (__ev64_s64__) { 0xfffffffff7133930 },
++  (__ev64_s64__) { 0x513ac40 },
++  (__ev64_s64__) { 0xfffffffff4f7f8ce },
++  (__ev64_s64__) { 0xfffffffff7c5233e },
++  (__ev64_s64__) { 0x2370bf70 },
++  (__ev64_s64__) { 0xffffffffe2887f3c },
++  (__ev64_s64__) { 0xfffffffff68415f8 },
++  (__ev64_s64__) { 0xfffffffffb717dc0 },
++  (__ev64_s64__) { 0xffffffffcf136474 },
++  (__ev64_s64__) { 0xffffffffe552248e },
++  (__ev64_s64__) { 0xfffffffff7a1250a },
++  (__ev64_s64__) { 0x3467bd4 },
++  (__ev64_s64__) { 0x17d6df00 },
++  (__ev64_s64__) { 0xffffffffa8a6dae4 },
++  (__ev64_s64__) { 0xffffffffbad1e422 },
++  (__ev64_s64__) { 0xffffffffb65811e0 },
++  (__ev64_s64__) { 0xffffffffef79d906 },
++  (__ev64_s64__) { 0xffffffffcf98b9e0 },
++  (__ev64_s64__) { 0xfffffffff383e770 },
++  (__ev64_s64__) { 0x4d519cec },
++  (__ev64_s64__) { 0x38188428 },
++  (__ev64_s64__) { 0xfffffffff9889440 },
++  (__ev64_s64__) { 0x19bec00 },
++  (__ev64_s64__) { 0x27b0a630 },
++  (__ev64_s64__) { 0x136ba02c },
++  (__ev64_s64__) { 0xffffffffc98b67c8 },
++  (__ev64_s64__) { 0x4c7b1a0 },
++  (__ev64_s64__) { 0xfffffffffd61c8ee },
++  (__ev64_s64__) { 0x2dd97550 },
++  (__ev64_s64__) { 0x191afd7c },
++  (__ev64_s64__) { 0xffffffffff9099a4 },
++  (__ev64_s64__) { 0x330800ac },
++  (__ev64_s64__) { 0x1a6222c0 },
++  (__ev64_s64__) { 0xffffffffced00bf0 },
++  (__ev64_s64__) { 0xffffffffea3945ec },
++  (__ev64_s64__) { 0x42235d72 },
++  (__ev64_s64__) { 0x1aa431ba },
++  (__ev64_s64__) { 0xbccb800 },
++  (__ev64_s64__) { 0x983e0d4 },
++  (__ev64_s64__) { 0x684258fc },
++  (__ev64_s64__) { 0xfffffffff0e7f496 },
++  (__ev64_s64__) { 0xa9c3758 },
++  (__ev64_s64__) { 0x197ccc76 },
++  (__ev64_s64__) { 0x154e1706 },
++  (__ev64_s64__) { 0x85645f8 },
++  (__ev64_s64__) { 0x16eaba60 },
++  (__ev64_s64__) { 0x27d72680 },
++  (__ev64_s64__) { 0x4f02a2de },
++  (__ev64_s64__) { 0xffffffffedbb2684 },
++  (__ev64_s64__) { 0x61852c70 },
++  (__ev64_s64__) { 0xfffffffff74908e2 },
++  (__ev64_s64__) { 0xffffffffffe712a0 },
++  (__ev64_s64__) { 0x27579d00 },
++  (__ev64_s64__) { 0xffffffffdbc93100 },
++  (__ev64_s64__) { 0xfffffffffa90cd84 },
++  (__ev64_s64__) { 0x4a9ddf8e },
++  (__ev64_s64__) { 0xfffffffffef7e810 },
++  (__ev64_s64__) { 0x25270240 },
++  (__ev64_s64__) { 0x338f498 },
++  (__ev64_s64__) { 0x13c581c },
++  (__ev64_s64__) { 0x3c458850 },
++  (__ev64_s64__) { 0xffffffffd4d40a20 },
++  (__ev64_s64__) { 0x1f6ca7f8 },
++  (__ev64_s64__) { 0xffffffffed434d86 },
++  (__ev64_s64__) { 0xfffffffff85303c2 },
++  (__ev64_s64__) { 0x196cc8d4 },
++  (__ev64_s64__) { 0x426e034 },
++  (__ev64_s64__) { 0x693c0042 },
++  (__ev64_s64__) { 0x14391ca0 },
++  (__ev64_s64__) { 0xffffffffdf9b8cb0 },
++  (__ev64_s64__) { 0xe463918 },
++  (__ev64_s64__) { 0x1388910 },
++  (__ev64_s64__) { 0xfffffffffdc251fc },
++  (__ev64_s64__) { 0xfffffffff15cec98 },
++  (__ev64_s64__) { 0x9ad6baa },
++  (__ev64_s64__) { 0xfffffffff7baf9d8 },
++  (__ev64_s64__) { 0x1138d80 },
++  (__ev64_s64__) { 0xffffffffe6c5bfa0 },
++  (__ev64_s64__) { 0x5d71748 },
++  (__ev64_s64__) { 0x4e68a492 },
++  (__ev64_s64__) { 0xffffffffd6746b60 },
++  (__ev64_s64__) { 0x622219f8 },
++  (__ev64_s64__) { 0xfffffffff0251c68 },
++  (__ev64_s64__) { 0x42fb403e },
++  (__ev64_s64__) { 0x41bccdd8 },
++  (__ev64_s64__) { 0xfffffffff13f4a22 },
++  (__ev64_s64__) { 0x8befcc8 },
++  (__ev64_s64__) { 0x7213460 },
++  (__ev64_s64__) { 0xffffffffa31288ce },
++  (__ev64_s64__) { 0xffffffffdab9b420 },
++  (__ev64_s64__) { 0xfffffffff4657c58 },
++  (__ev64_s64__) { 0x13a12970 },
++  (__ev64_s64__) { 0xfffffffff29240de },
++  (__ev64_s64__) { 0x3992cc00 },
++  (__ev64_s64__) { 0xffffffffba41449e },
++  (__ev64_s64__) { 0xf9617b2 },
++  (__ev64_s64__) { 0xffffffffea1385b0 },
++  (__ev64_s64__) { 0x758cdf0 },
++  (__ev64_s64__) { 0xfffffffff808cabc },
++  (__ev64_s64__) { 0xfffffffffda08ad2 },
++  (__ev64_s64__) { 0x5f6a8508 },
++  (__ev64_s64__) { 0xffffffffaee06928 },
++  (__ev64_s64__) { 0x3f5cf7a8 },
++  (__ev64_s64__) { 0x126b816 },
++  (__ev64_s64__) { 0xdae18c2 },
++  (__ev64_s64__) { 0xfffffffffbe4052a },
++  (__ev64_s64__) { 0xffffffffe683bafa },
++  (__ev64_s64__) { 0xffffffffc53cba2c },
++  (__ev64_s64__) { 0x51bab1d4 },
++  (__ev64_s64__) { 0xffffffffeeda0458 },
++  (__ev64_s64__) { 0xfffffffffdb5a214 },
++  (__ev64_s64__) { 0xffffffffd1e5b31e },
++  (__ev64_s64__) { 0xb6aa998 },
++  (__ev64_s64__) { 0xfffffffffe74fc90 },
++  (__ev64_s64__) { 0xffffffffb222af90 },
++  (__ev64_s64__) { 0xb089a78 },
++  (__ev64_s64__) { 0xffffffffc99550f8 },
++  (__ev64_s64__) { 0x2f4918d4 },
++  (__ev64_s64__) { 0xfffffffffb0f4398 },
++  (__ev64_s64__) { 0xffffffffccf9e3f2 },
++  (__ev64_s64__) { 0x3df00a9c },
++  (__ev64_s64__) { 0x248ad6e },
++  (__ev64_s64__) { 0xa9fa740 },
++  (__ev64_s64__) { 0xffffffffecf29468 },
++  (__ev64_s64__) { 0xffffffffe010857e },
++  (__ev64_s64__) { 0xffffffffbcf21170 },
++  (__ev64_s64__) { 0x82de1f4 },
++  (__ev64_s64__) { 0xffffffffff7a8164 },
++  (__ev64_s64__) { 0xffffffffc4378130 },
++  (__ev64_s64__) { 0xffffffffdae5126a },
++  (__ev64_s64__) { 0x1edb87b0 },
++  (__ev64_s64__) { 0x25d4c73a },
++  (__ev64_s64__) { 0xffffffffe9cbe908 },
++  (__ev64_s64__) { 0xffffffffe609f3e6 },
++  (__ev64_s64__) { 0xfffffffff669eea4 },
++  (__ev64_s64__) { 0x5433638 },
++  (__ev64_s64__) { 0xfffffffff1db27ac },
++  (__ev64_s64__) { 0xffffffffcce59596 },
++  (__ev64_s64__) { 0xffffffffee1eeb86 },
++  (__ev64_s64__) { 0x4219be8 },
++  (__ev64_s64__) { 0x1024ee0e },
++  (__ev64_s64__) { 0xfffffffff8a9de04 },
++  (__ev64_s64__) { 0x3c0b38b6 },
++  (__ev64_s64__) { 0xffffffffdd9c75a8 },
++  (__ev64_s64__) { 0xffffffffeda37ac0 },
++  (__ev64_s64__) { 0x26f9d18 },
++  (__ev64_s64__) { 0xfffffffff7a860c8 },
++  (__ev64_s64__) { 0x38a816fc },
++  (__ev64_s64__) { 0x2e73bf9e },
++  (__ev64_s64__) { 0xffffffffd78c41ee },
++  (__ev64_s64__) { 0xffffffffe126b32c },
++  (__ev64_s64__) { 0xffffffffe3e7caa8 },
++  (__ev64_s64__) { 0x35a3e4ec },
++
++};
++#endif // __SPE__
++
++int evmhegsmfaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhegsmfaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegsmfaa_baseline[i][0]);
++#endif
++    // Verify that evmhegsmfaa wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegsmfaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegsmfaa_asm, "evmhegsmfaa");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -12969,6 +14181,10 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+     F(evmhesmfaaw_asm),
+     F(evmhesmf_asm),
+     F(evmhesmfa_asm),
++    F(evmhogsmfan_asm),
++    F(evmhogsmfaa_asm),
++    F(evmhegsmfan_asm),
++    F(evmhegsmfaa_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index f7acf19..e33bfd4 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfan_asm (test_spe.c:9376)
+@@ -22,7 +22,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -32,14 +32,14 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 184 bytes inside a block of size 256 free'd
+    at 0x........: free (vg_replace_malloc.c:...)
+    by 0x........: simple_loop (test_spe.c:333)
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfaa_asm (test_spe.c:9750)
+@@ -48,7 +48,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -58,7 +58,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfan_asm (test_spe.c:9349)
+@@ -67,7 +67,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmf_asm (test_spe.c:10136)
+@@ -76,7 +76,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -86,7 +86,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfaa_asm (test_spe.c:9723)
+@@ -95,7 +95,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfa_asm (test_spe.c:10267)
+@@ -104,7 +104,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -114,7 +114,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmf_asm (test_spe.c:10109)
+@@ -123,7 +123,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmf_asm (test_spe.c:10656)
+@@ -132,7 +132,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -142,7 +142,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfa_asm (test_spe.c:10229)
+@@ -151,7 +151,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmfa_asm (test_spe.c:10784)
+@@ -160,7 +160,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -170,7 +170,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwhsmf_asm (test_spe.c:10628)
+@@ -179,7 +179,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 
+ HEAP SUMMARY:
+@@ -193,7 +193,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -203,7 +203,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -213,7 +213,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -223,7 +223,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -233,7 +233,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -243,7 +243,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -253,7 +253,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:13181)
++   by 0x........: main (test_spe.c:14397)
+ 
+ LEAK SUMMARY:
+    definitely lost: 98,344 bytes in 1,537 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 11ff10e..4b33ab5 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -153,6 +153,10 @@ SPE Regression Tests: PASS
+ ....evmhesmfaaw: PASS
+ ....evmhesmf: PASS
+ ....evmhesmfa: PASS
++....evmhogsmfan: PASS
++....evmhogsmfaa: PASS
++....evmhegsmfan: PASS
++....evmhegsmfaa: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 3036799..2afb7f9 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 80 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 75 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 71 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 80 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 19173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 11642 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 28118 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 12325 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 28842 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 17173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 13161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 21924 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 19037 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  7109 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  8328 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 12451 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0047-Implement-SPE-Instructions-evmhegsmiaa-evmhegsmian-e.patch b/recipes-devtools/valgrind/files/0047-Implement-SPE-Instructions-evmhegsmiaa-evmhegsmian-e.patch
new file mode 100644
index 0000000..65d08fd
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0047-Implement-SPE-Instructions-evmhegsmiaa-evmhegsmian-e.patch
@@ -0,0 +1,3864 @@
+From 17c1f13c320f1fbc99ddb780a1fcfab69dc973b6 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 5 Apr 2013 17:19:47 -0700
+Subject: [PATCH 47/65] Implement SPE Instructions: { evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian, evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian }.
+
+---
+ FSL-SPE-README.txt                       |    6 +-
+ VEX/priv/guest_ppc_defs.h                |   40 +
+ VEX/priv/guest_ppc_helpers.c             |  376 ++++
+ VEX/priv/guest_ppc_toIR.c                |  264 +++
+ memcheck/tests/ppc32/test_spe.c          | 2735 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |   54 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    8 +
+ regtest-power7-64.log                    |   16 +-
+ 8 files changed, 3461 insertions(+), 38 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 6e6c331..64e5c4a 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -70,6 +70,8 @@
+  New instructions implemented since last drop:
+ 
+  evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan,
++ evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
++ evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian,
+ 
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+@@ -91,10 +93,8 @@
+  evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt, evfscmplt,
+  evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+  evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+- evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
+  evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw,
+- evmheusiaaw, evmheusianw, evmhogsmiaa, evmhogsmian,
+- evmhogumiaa, evmhogumian, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
++ evmheusiaaw, evmheusianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
+  evmhossiaaw, evmhossianw, evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia,
+  evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlssiaaw, evmwlssianw,
+  evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 2aba8e9..18837b1 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -243,6 +243,46 @@ extern void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
+                                           UInt rD_off,
+                                           UInt rA_off,
+                                           UInt rB_off);
++extern void spe_dirtyhelper_evmhegsmiaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhegsmian ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhegumiaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhegumian ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhogsmiaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhogsmian ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhogumiaa ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
++extern void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
++                                          UInt ACC_off,
++                                          UInt rD_off,
++                                          UInt rA_off,
++                                          UInt rB_off);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index a3697d8..f62ac3e 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1023,6 +1023,382 @@ void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
+   return;
+ }
+ 
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegsmiaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegsmiaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
++  // and Accumulate, SPEPEM p5-140)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegsmiaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTS (rA[32:47] Xsi rB[32:47])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegsmiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegsmian ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegsmian (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
++  // and Accumulate Negative, SPEPEM p5-141)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegsmian reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTS (rA[32:47] Xsi rB[32:47])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegsmian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegumiaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegumiaa (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
++  // and Accumulate, SPEPEM p5-142)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegumiaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTZ (rA[32:47] Xui rB[32:47])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegumiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhegumian ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhegumian (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
++  // and Accumulate Negative, SPEPEM p5-143)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhegumian reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTZ (rA[32:47] Xui rB[32:47])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhegumian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogsmiaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogsmiaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
++  // and Accumulate, SPEPEM p5-162)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogsmiaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsi rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogsmiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogsmian ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogsmian (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
++  // and Accumulate Negative, SPEPEM p5-163)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogsmian reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsi rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogsmian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogumiaa ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogumiaa (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
++  // and Accumulate, SPEPEM p5-164)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogumiaa reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] + EXTZ (rA[48:63] Xui rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogumiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
++                                   UInt ACC_off,
++                                   UInt rD_off,
++                                   UInt rA_off,
++                                   UInt rB_off)
++{
++#ifdef __SPE__
++
++  // evmhogumian (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
++  // and Accumulate Negative, SPEPEM p5-165)
++
++  register __ev64_opaque__ rA  asm ("29");
++  register __ev64_opaque__ rB  asm ("28");
++  register __ev64_opaque__ rD  asm ("27");
++  register __ev64_opaque__ ACC asm ("26");
++
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
++
++  // Read ACC, rA, rB from the Guest State:
++  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
++  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
++  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
++
++  // Since evmhogumian reads the ACC, get the guest state ACC value into
++  // the hard ACC:
++  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
++
++  // rD[0:63] <- ACC[0:63] - EXTZ (rA[48:63] Xui rB[48:63])
++  // (hard) ACC[0:63] <- rD[0:63]
++  asm volatile ("evmhogumian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
++
++  // Write rD to the Guest State:
++  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
++
++  // ACC[00:63] <- rD[0:63]
++  ACC = rD;
++  // Write ACC to the Guest State:
++  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
++#endif // __SPE__
++  return;
++}
++
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+ /*----------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 9d29bef..0f137c2 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -14481,6 +14481,262 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x528:
++     // evmhegumiaa (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
++     // and Accumulate, SPEPEM p5-142)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegumiaa",
++                            &spe_dirtyhelper_evmhegumiaa,
++                            args);
++     DIP( "evmhegumiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x529:
++     // evmhegsmiaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
++     // and Accumulate, SPEPEM p5-140)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegsmiaa",
++                            &spe_dirtyhelper_evmhegsmiaa,
++                            args);
++     DIP( "evmhegsmiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5a8:
++     // evmhegumian (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
++     // and Accumulate Negative, SPEPEM p5-143)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegumian",
++                            &spe_dirtyhelper_evmhegumian,
++                            args);
++     DIP( "evmhegumian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5a9:
++     // evmhegsmian (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
++     // and Accumulate Negative, SPEPEM p5-141)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhegsmian",
++                            &spe_dirtyhelper_evmhegsmian,
++                            args);
++     DIP( "evmhegsmian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x52c:
++     // evmhogumiaa (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
++     // and Accumulate, SPEPEM p5-164)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogumiaa",
++                            &spe_dirtyhelper_evmhogumiaa,
++                            args);
++     DIP( "evmhogumiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x52d:
++     // evmhogsmiaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
++     // and Accumulate, SPEPEM p5-162)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogsmiaa",
++                            &spe_dirtyhelper_evmhogsmiaa,
++                            args);
++     DIP( "evmhogsmiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5ac:
++     // evmhogumian (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
++     // and Accumulate Negative, SPEPEM p5-165)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogumian",
++                            &spe_dirtyhelper_evmhogumian,
++                            args);
++     DIP( "evmhogumian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
++  case 0x5ad:
++     // evmhogsmian (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
++     // and Accumulate Negative, SPEPEM p5-163)
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),
++                            mkU32( rD_off ),
++                            mkU32( rA_off ),
++                            mkU32( rB_off ) );
++     d = unsafeIRDirty_0_N (0 /* regparms */,
++                            "spe_dirtyhelper_evmhogsmian",
++                            &spe_dirtyhelper_evmhogsmian,
++                            args);
++     DIP( "evmhogsmian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
++     /* declare guest state effects */
++     d->needsBBP = True;
++     d->nFxState = 4;
++     vex_bzero(&d->fxState, sizeof(d->fxState));
++     d->fxState[0].fx     = Ifx_Modify;
++     d->fxState[0].offset = ACC_off;
++     d->fxState[0].size   = sizeof(ULong);
++     d->fxState[1].fx     = Ifx_Write;
++     d->fxState[1].offset = rD_off;
++     d->fxState[1].size   = 2 * sizeof(UInt);
++     d->fxState[2].fx     = Ifx_Read;
++     d->fxState[2].offset = rA_off;
++     d->fxState[2].size   = 2 * sizeof(UInt);
++     d->fxState[3].fx     = Ifx_Read;
++     d->fxState[3].offset = rB_off;
++     d->fxState[3].size   = 2 * sizeof(UInt);
++
++     /* execute the dirty call, side-effecting guest state */
++     stmt( IRStmt_Dirty(d) );
++     break;
+   case 0x55b:
+      // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -20857,12 +21113,20 @@ DisResult disInstr_PPC_WRK (
+       case 0x47b: // evmwsmfa
+       case 0x50b: // evmhesmfaaw
+       case 0x50f: // evmhosmfaaw
++      case 0x528: // evmhegumiaa
++      case 0x529: // evmhegsmiaa
+       case 0x52b: // evmhegsmfaa
++      case 0x52c: // evmhogumiaa
++      case 0x52d: // evmhogsmiaa
+       case 0x52f: // evmhogsmfaa
+       case 0x58b: // evmhesmfanw
+       case 0x58f: // evmhosmfanw
+       case 0x55b: // evmwsmfaa
++      case 0x5a8: // evmhegumian
++      case 0x5a9: // evmhegsmian
+       case 0x5ab: // evmhegsmfan
++      case 0x5ac: // evmhogumian
++      case 0x5ad: // evmhogsmian
+       case 0x5af: // evmhogsmfan
+       case 0x5db: // evmwsmfan
+          if (!allow_SPE) goto decode_noSPE;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 0f4a5a3..06b10db 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -13927,6 +13927,2733 @@ int evmhegsmfaa_asm(void)
+ }
+ TEST_SPE_DECL(evmhegsmfaa_asm, "evmhegsmfaa");
+ 
++#ifdef __SPE__
++__ev64_s64__ evmhegsmiaa_baseline[] = {
++
++  (__ev64_s64__) { 0xffffffffd22aa329 },
++  (__ev64_s64__) { 0xfffffffff639b006 },
++  (__ev64_s64__) { 0x16656939 },
++  (__ev64_s64__) { 0xd5fd1d0 },
++  (__ev64_s64__) { 0x17bab21c },
++  (__ev64_s64__) { 0xfffffffff681f7ea },
++  (__ev64_s64__) { 0xbb7ac0 },
++  (__ev64_s64__) { 0xffffffffff946281 },
++  (__ev64_s64__) { 0xfffffffff6e13f16 },
++  (__ev64_s64__) { 0xffffffffe7a803fa },
++  (__ev64_s64__) { 0x26522c34 },
++  (__ev64_s64__) { 0xffffffffd506eed5 },
++  (__ev64_s64__) { 0x2430c24 },
++  (__ev64_s64__) { 0xffffffffdc735090 },
++  (__ev64_s64__) { 0xfffffffffb228916 },
++  (__ev64_s64__) { 0x55b13ed },
++  (__ev64_s64__) { 0xfffffffff7656980 },
++  (__ev64_s64__) { 0xffffffffc7bd1c00 },
++  (__ev64_s64__) { 0xffffffffd4d775d4 },
++  (__ev64_s64__) { 0xfffffffff1d8de48 },
++  (__ev64_s64__) { 0xcdb81 },
++  (__ev64_s64__) { 0xfffffffffc070c5a },
++  (__ev64_s64__) { 0xffffffffe1cbc1b8 },
++  (__ev64_s64__) { 0x72df4ea },
++  (__ev64_s64__) { 0x15ca1134 },
++  (__ev64_s64__) { 0xfffffffffb1c2480 },
++  (__ev64_s64__) { 0x2c706f8 },
++  (__ev64_s64__) { 0x8a160c },
++  (__ev64_s64__) { 0xfffffffffe7d43f5 },
++  (__ev64_s64__) { 0x1af19d75 },
++  (__ev64_s64__) { 0x2ade26c4 },
++  (__ev64_s64__) { 0xfffffffff892c2f5 },
++  (__ev64_s64__) { 0x26ef4b58 },
++  (__ev64_s64__) { 0xffffffffe73bf428 },
++  (__ev64_s64__) { 0xffffffffffd4a720 },
++  (__ev64_s64__) { 0x484388 },
++  (__ev64_s64__) { 0xffffffffffd1ce94 },
++  (__ev64_s64__) { 0x1086108c },
++  (__ev64_s64__) { 0x5710bd6 },
++  (__ev64_s64__) { 0x9249fcb },
++  (__ev64_s64__) { 0xfffffffffc4dd326 },
++  (__ev64_s64__) { 0xffffffffd40413e4 },
++  (__ev64_s64__) { 0x28a659a },
++  (__ev64_s64__) { 0xfffffffffd1d07ed },
++  (__ev64_s64__) { 0xfffffffff904fdd0 },
++  (__ev64_s64__) { 0xfffffffffb69dd6f },
++  (__ev64_s64__) { 0xa11dce },
++  (__ev64_s64__) { 0xfffffffff7dacfec },
++  (__ev64_s64__) { 0xffffffffc97159d1 },
++  (__ev64_s64__) { 0xfffffffffd3b00c7 },
++  (__ev64_s64__) { 0xffffffffe7afdd48 },
++  (__ev64_s64__) { 0xfffffffff42333d3 },
++  (__ev64_s64__) { 0xfffffffff76d4b76 },
++  (__ev64_s64__) { 0xfffffffff951fab3 },
++  (__ev64_s64__) { 0x6a7cc50 },
++  (__ev64_s64__) { 0xffffffffff1f2436 },
++  (__ev64_s64__) { 0xfffffffff09420f1 },
++  (__ev64_s64__) { 0x13a29810 },
++  (__ev64_s64__) { 0x2164ee22 },
++  (__ev64_s64__) { 0x11e0d37 },
++  (__ev64_s64__) { 0xffffffffe5d68f90 },
++  (__ev64_s64__) { 0xc48d8 },
++  (__ev64_s64__) { 0xadb96e0 },
++  (__ev64_s64__) { 0xfffffffff928b90d },
++  (__ev64_s64__) { 0x10e12c },
++  (__ev64_s64__) { 0xffffffffdcaa518e },
++  (__ev64_s64__) { 0x15504480 },
++  (__ev64_s64__) { 0x825cc7d },
++  (__ev64_s64__) { 0xfffffffffe3a1198 },
++  (__ev64_s64__) { 0xffffffffee349372 },
++  (__ev64_s64__) { 0xfffffffff082c4c8 },
++  (__ev64_s64__) { 0x16cf4400 },
++  (__ev64_s64__) { 0x87e76be },
++  (__ev64_s64__) { 0xfffffffffdc6f960 },
++  (__ev64_s64__) { 0x139d9820 },
++  (__ev64_s64__) { 0xfffffffffdb3f020 },
++  (__ev64_s64__) { 0xfffffffffee13c8a },
++  (__ev64_s64__) { 0xfffffffffec21a00 },
++  (__ev64_s64__) { 0xffffffffecd30dff },
++  (__ev64_s64__) { 0x1c91774a },
++  (__ev64_s64__) { 0x857c1c0 },
++  (__ev64_s64__) { 0xffffffffff374abc },
++  (__ev64_s64__) { 0xf7653c0 },
++  (__ev64_s64__) { 0xffffffffc92e578a },
++  (__ev64_s64__) { 0xffffffffff840946 },
++  (__ev64_s64__) { 0xffffffffe3588b00 },
++  (__ev64_s64__) { 0xffffffffffe9ce8d },
++  (__ev64_s64__) { 0xa199e2 },
++  (__ev64_s64__) { 0x59c5310 },
++  (__ev64_s64__) { 0xffffffffffcb30e0 },
++  (__ev64_s64__) { 0x367212de },
++  (__ev64_s64__) { 0x3801c100 },
++  (__ev64_s64__) { 0xcddeb87 },
++  (__ev64_s64__) { 0x9e5e05d },
++  (__ev64_s64__) { 0xfffffffffab70122 },
++  (__ev64_s64__) { 0xfffffffff51e910a },
++  (__ev64_s64__) { 0xfffffffff8c60852 },
++  (__ev64_s64__) { 0xfffffffff250df7a },
++  (__ev64_s64__) { 0xfffffffff064315c },
++  (__ev64_s64__) { 0x1d3a5b10 },
++  (__ev64_s64__) { 0x1bb3d4c8 },
++  (__ev64_s64__) { 0x8f18a32 },
++  (__ev64_s64__) { 0x2b380178 },
++  (__ev64_s64__) { 0xfffffffffb899c98 },
++  (__ev64_s64__) { 0x289d620 },
++  (__ev64_s64__) { 0xfffffffffa7bfc67 },
++  (__ev64_s64__) { 0xfffffffffbe2919f },
++  (__ev64_s64__) { 0x11b85fb8 },
++  (__ev64_s64__) { 0xfffffffff1443f9e },
++  (__ev64_s64__) { 0xfffffffffb420afc },
++  (__ev64_s64__) { 0xfffffffffdb8bee0 },
++  (__ev64_s64__) { 0xffffffffe789b23a },
++  (__ev64_s64__) { 0xfffffffff2a91247 },
++  (__ev64_s64__) { 0xfffffffffbd09285 },
++  (__ev64_s64__) { 0x1a33dea },
++  (__ev64_s64__) { 0xbeb6f80 },
++  (__ev64_s64__) { 0xffffffffd4536d72 },
++  (__ev64_s64__) { 0xffffffffdd68f211 },
++  (__ev64_s64__) { 0xffffffffdb2c08f0 },
++  (__ev64_s64__) { 0xfffffffff7bcec83 },
++  (__ev64_s64__) { 0xffffffffe7cc5cf0 },
++  (__ev64_s64__) { 0xfffffffff9c1f3b8 },
++  (__ev64_s64__) { 0x26a8ce76 },
++  (__ev64_s64__) { 0x1c0c4214 },
++  (__ev64_s64__) { 0xfffffffffcc44a20 },
++  (__ev64_s64__) { 0xcdf600 },
++  (__ev64_s64__) { 0x13d85318 },
++  (__ev64_s64__) { 0x9b5d016 },
++  (__ev64_s64__) { 0xffffffffe4c5b3e4 },
++  (__ev64_s64__) { 0x263d8d0 },
++  (__ev64_s64__) { 0xfffffffffeb0e477 },
++  (__ev64_s64__) { 0x16ecbaa8 },
++  (__ev64_s64__) { 0xc8d7ebe },
++  (__ev64_s64__) { 0xffffffffffc84cd2 },
++  (__ev64_s64__) { 0x19840056 },
++  (__ev64_s64__) { 0xd311160 },
++  (__ev64_s64__) { 0xffffffffe76805f8 },
++  (__ev64_s64__) { 0xfffffffff51ca2f6 },
++  (__ev64_s64__) { 0x2111aeb9 },
++  (__ev64_s64__) { 0xd5218dd },
++  (__ev64_s64__) { 0x5e65c00 },
++  (__ev64_s64__) { 0x4c1f06a },
++  (__ev64_s64__) { 0x34212c7e },
++  (__ev64_s64__) { 0xfffffffff873fa4b },
++  (__ev64_s64__) { 0x54e1bac },
++  (__ev64_s64__) { 0xcbe663b },
++  (__ev64_s64__) { 0xaa70b83 },
++  (__ev64_s64__) { 0x42b22fc },
++  (__ev64_s64__) { 0xb755d30 },
++  (__ev64_s64__) { 0x13eb9340 },
++  (__ev64_s64__) { 0x2781516f },
++  (__ev64_s64__) { 0xfffffffff6dd9342 },
++  (__ev64_s64__) { 0x30c29638 },
++  (__ev64_s64__) { 0xfffffffffba48471 },
++  (__ev64_s64__) { 0xfffffffffff38950 },
++  (__ev64_s64__) { 0x13abce80 },
++  (__ev64_s64__) { 0xffffffffede49880 },
++  (__ev64_s64__) { 0xfffffffffd4866c2 },
++  (__ev64_s64__) { 0x254eefc7 },
++  (__ev64_s64__) { 0xffffffffff7bf408 },
++  (__ev64_s64__) { 0x12938120 },
++  (__ev64_s64__) { 0x19c7a4c },
++  (__ev64_s64__) { 0x9e2c0e },
++  (__ev64_s64__) { 0x1e22c428 },
++  (__ev64_s64__) { 0xffffffffea6a0510 },
++  (__ev64_s64__) { 0xfb653fc },
++  (__ev64_s64__) { 0xfffffffff6a1a6c3 },
++  (__ev64_s64__) { 0xfffffffffc2981e1 },
++  (__ev64_s64__) { 0xcb6646a },
++  (__ev64_s64__) { 0x213701a },
++  (__ev64_s64__) { 0x349e0021 },
++  (__ev64_s64__) { 0xa1c8e50 },
++  (__ev64_s64__) { 0xffffffffefcdc658 },
++  (__ev64_s64__) { 0x7231c8c },
++  (__ev64_s64__) { 0x9c4488 },
++  (__ev64_s64__) { 0xfffffffffee128fe },
++  (__ev64_s64__) { 0xfffffffff8ae764c },
++  (__ev64_s64__) { 0x4d6b5d5 },
++  (__ev64_s64__) { 0xfffffffffbdd7cec },
++  (__ev64_s64__) { 0x89c6c0 },
++  (__ev64_s64__) { 0xfffffffff362dfd0 },
++  (__ev64_s64__) { 0x2eb8ba4 },
++  (__ev64_s64__) { 0x27345249 },
++  (__ev64_s64__) { 0xffffffffeb3a35b0 },
++  (__ev64_s64__) { 0x31110cfc },
++  (__ev64_s64__) { 0xfffffffff8128e34 },
++  (__ev64_s64__) { 0x217da01f },
++  (__ev64_s64__) { 0x20de66ec },
++  (__ev64_s64__) { 0xfffffffff89fa511 },
++  (__ev64_s64__) { 0x45f7e64 },
++  (__ev64_s64__) { 0x3909a30 },
++  (__ev64_s64__) { 0xffffffffd1894467 },
++  (__ev64_s64__) { 0xffffffffed5cda10 },
++  (__ev64_s64__) { 0xfffffffffa32be2c },
++  (__ev64_s64__) { 0x9d094b8 },
++  (__ev64_s64__) { 0xfffffffff949206f },
++  (__ev64_s64__) { 0x1cc96600 },
++  (__ev64_s64__) { 0xffffffffdd20a24f },
++  (__ev64_s64__) { 0x7cb0bd9 },
++  (__ev64_s64__) { 0xfffffffff509c2d8 },
++  (__ev64_s64__) { 0x3ac66f8 },
++  (__ev64_s64__) { 0xfffffffffc04655e },
++  (__ev64_s64__) { 0xfffffffffed04569 },
++  (__ev64_s64__) { 0x2fb54284 },
++  (__ev64_s64__) { 0xffffffffd7703494 },
++  (__ev64_s64__) { 0x1fae7bd4 },
++  (__ev64_s64__) { 0x935c0b },
++  (__ev64_s64__) { 0x6d70c61 },
++  (__ev64_s64__) { 0xfffffffffdf20295 },
++  (__ev64_s64__) { 0xfffffffff341dd7d },
++  (__ev64_s64__) { 0xffffffffe29e5d16 },
++  (__ev64_s64__) { 0x28dd58ea },
++  (__ev64_s64__) { 0xfffffffff76d022c },
++  (__ev64_s64__) { 0xfffffffffedad10a },
++  (__ev64_s64__) { 0xffffffffe8f2d98f },
++  (__ev64_s64__) { 0x5b554cc },
++  (__ev64_s64__) { 0xffffffffff3a7e48 },
++  (__ev64_s64__) { 0xffffffffd91157c8 },
++  (__ev64_s64__) { 0x5844d3c },
++  (__ev64_s64__) { 0xffffffffe4caa87c },
++  (__ev64_s64__) { 0x17a48c6a },
++  (__ev64_s64__) { 0xfffffffffd87a1cc },
++  (__ev64_s64__) { 0xffffffffe67cf1f9 },
++  (__ev64_s64__) { 0x1ef8054e },
++  (__ev64_s64__) { 0x12456b7 },
++  (__ev64_s64__) { 0x54fd3a0 },
++  (__ev64_s64__) { 0xfffffffff6794a34 },
++  (__ev64_s64__) { 0xfffffffff00842bf },
++  (__ev64_s64__) { 0xffffffffde7908b8 },
++  (__ev64_s64__) { 0x416f0fa },
++  (__ev64_s64__) { 0xffffffffffbd40b2 },
++  (__ev64_s64__) { 0xffffffffe21bc098 },
++  (__ev64_s64__) { 0xffffffffed728935 },
++  (__ev64_s64__) { 0xf6dc3d8 },
++  (__ev64_s64__) { 0x12ea639d },
++  (__ev64_s64__) { 0xfffffffff4e5f484 },
++  (__ev64_s64__) { 0xfffffffff304f9f3 },
++  (__ev64_s64__) { 0xfffffffffb34f752 },
++  (__ev64_s64__) { 0x2a19b1c },
++  (__ev64_s64__) { 0xfffffffff8ed93d6 },
++  (__ev64_s64__) { 0xffffffffe672cacb },
++  (__ev64_s64__) { 0xfffffffff70f75c3 },
++  (__ev64_s64__) { 0x210cdf4 },
++  (__ev64_s64__) { 0x8127707 },
++  (__ev64_s64__) { 0xfffffffffc54ef02 },
++  (__ev64_s64__) { 0x1e059c5b },
++  (__ev64_s64__) { 0xffffffffeece3ad4 },
++  (__ev64_s64__) { 0xfffffffff6d1bd60 },
++  (__ev64_s64__) { 0x137ce8c },
++  (__ev64_s64__) { 0xfffffffffbd43064 },
++  (__ev64_s64__) { 0x1c540b7e },
++  (__ev64_s64__) { 0x1739dfcf },
++  (__ev64_s64__) { 0xffffffffebc620f7 },
++  (__ev64_s64__) { 0xfffffffff0935996 },
++  (__ev64_s64__) { 0xfffffffff1f3e554 },
++  (__ev64_s64__) { 0x1ad1f276 },
++
++};
++#endif // __SPE__
++
++int evmhegsmiaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhegsmiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegsmiaa_baseline[i][0]);
++#endif
++    // Verify that evmhegsmiaa wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegsmiaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegsmiaa_asm, "evmhegsmiaa");
++
++#ifdef __SPE__
++__ev64_s64__ evmhegsmian_baseline[] = {
++
++  (__ev64_s64__) { 0x2dd55cd7 },
++  (__ev64_s64__) { 0x9c64ffa },
++  (__ev64_s64__) { 0xffffffffe99a96c7 },
++  (__ev64_s64__) { 0xfffffffff2a02e30 },
++  (__ev64_s64__) { 0xffffffffe8454de4 },
++  (__ev64_s64__) { 0x97e0816 },
++  (__ev64_s64__) { 0xffffffffff448540 },
++  (__ev64_s64__) { 0x6b9d7f },
++  (__ev64_s64__) { 0x91ec0ea },
++  (__ev64_s64__) { 0x1857fc06 },
++  (__ev64_s64__) { 0xffffffffd9add3cc },
++  (__ev64_s64__) { 0x2af9112b },
++  (__ev64_s64__) { 0xfffffffffdbcf3dc },
++  (__ev64_s64__) { 0x238caf70 },
++  (__ev64_s64__) { 0x4dd76ea },
++  (__ev64_s64__) { 0xfffffffffaa4ec13 },
++  (__ev64_s64__) { 0x89a9680 },
++  (__ev64_s64__) { 0x3842e400 },
++  (__ev64_s64__) { 0x2b288a2c },
++  (__ev64_s64__) { 0xe2721b8 },
++  (__ev64_s64__) { 0xfffffffffff3247f },
++  (__ev64_s64__) { 0x3f8f3a6 },
++  (__ev64_s64__) { 0x1e343e48 },
++  (__ev64_s64__) { 0xfffffffff8d20b16 },
++  (__ev64_s64__) { 0xffffffffea35eecc },
++  (__ev64_s64__) { 0x4e3db80 },
++  (__ev64_s64__) { 0xfffffffffd38f908 },
++  (__ev64_s64__) { 0xffffffffff75e9f4 },
++  (__ev64_s64__) { 0x182bc0b },
++  (__ev64_s64__) { 0xffffffffe50e628b },
++  (__ev64_s64__) { 0xffffffffd521d93c },
++  (__ev64_s64__) { 0x76d3d0b },
++  (__ev64_s64__) { 0xffffffffd910b4a8 },
++  (__ev64_s64__) { 0x18c40bd8 },
++  (__ev64_s64__) { 0x2b58e0 },
++  (__ev64_s64__) { 0xffffffffffb7bc78 },
++  (__ev64_s64__) { 0x2e316c },
++  (__ev64_s64__) { 0xffffffffef79ef74 },
++  (__ev64_s64__) { 0xfffffffffa8ef42a },
++  (__ev64_s64__) { 0xfffffffff6db6035 },
++  (__ev64_s64__) { 0x3b22cda },
++  (__ev64_s64__) { 0x2bfbec1c },
++  (__ev64_s64__) { 0xfffffffffd759a66 },
++  (__ev64_s64__) { 0x2e2f813 },
++  (__ev64_s64__) { 0x6fb0230 },
++  (__ev64_s64__) { 0x4962291 },
++  (__ev64_s64__) { 0xffffffffff5ee232 },
++  (__ev64_s64__) { 0x8253014 },
++  (__ev64_s64__) { 0x368ea62f },
++  (__ev64_s64__) { 0x2c4ff39 },
++  (__ev64_s64__) { 0x185022b8 },
++  (__ev64_s64__) { 0xbdccc2d },
++  (__ev64_s64__) { 0x892b48a },
++  (__ev64_s64__) { 0x6ae054d },
++  (__ev64_s64__) { 0xfffffffff95833b0 },
++  (__ev64_s64__) { 0xe0dbca },
++  (__ev64_s64__) { 0xf6bdf0f },
++  (__ev64_s64__) { 0xffffffffec5d67f0 },
++  (__ev64_s64__) { 0xffffffffde9b11de },
++  (__ev64_s64__) { 0xfffffffffee1f2c9 },
++  (__ev64_s64__) { 0x1a297070 },
++  (__ev64_s64__) { 0xfffffffffff3b728 },
++  (__ev64_s64__) { 0xfffffffff5246920 },
++  (__ev64_s64__) { 0x6d746f3 },
++  (__ev64_s64__) { 0xffffffffffef1ed4 },
++  (__ev64_s64__) { 0x2355ae72 },
++  (__ev64_s64__) { 0xffffffffeaafbb80 },
++  (__ev64_s64__) { 0xfffffffff7da3383 },
++  (__ev64_s64__) { 0x1c5ee68 },
++  (__ev64_s64__) { 0x11cb6c8e },
++  (__ev64_s64__) { 0xf7d3b38 },
++  (__ev64_s64__) { 0xffffffffe930bc00 },
++  (__ev64_s64__) { 0xfffffffff7818942 },
++  (__ev64_s64__) { 0x23906a0 },
++  (__ev64_s64__) { 0xffffffffec6267e0 },
++  (__ev64_s64__) { 0x24c0fe0 },
++  (__ev64_s64__) { 0x11ec376 },
++  (__ev64_s64__) { 0x13de600 },
++  (__ev64_s64__) { 0x132cf201 },
++  (__ev64_s64__) { 0xffffffffe36e88b6 },
++  (__ev64_s64__) { 0xfffffffff7a83e40 },
++  (__ev64_s64__) { 0xc8b544 },
++  (__ev64_s64__) { 0xfffffffff089ac40 },
++  (__ev64_s64__) { 0x36d1a876 },
++  (__ev64_s64__) { 0x7bf6ba },
++  (__ev64_s64__) { 0x1ca77500 },
++  (__ev64_s64__) { 0x163173 },
++  (__ev64_s64__) { 0xffffffffff5e661e },
++  (__ev64_s64__) { 0xfffffffffa63acf0 },
++  (__ev64_s64__) { 0x34cf20 },
++  (__ev64_s64__) { 0xffffffffc98ded22 },
++  (__ev64_s64__) { 0xffffffffc7fe3f00 },
++  (__ev64_s64__) { 0xfffffffff3221479 },
++  (__ev64_s64__) { 0xfffffffff61a1fa3 },
++  (__ev64_s64__) { 0x548fede },
++  (__ev64_s64__) { 0xae16ef6 },
++  (__ev64_s64__) { 0x739f7ae },
++  (__ev64_s64__) { 0xdaf2086 },
++  (__ev64_s64__) { 0xf9bcea4 },
++  (__ev64_s64__) { 0xffffffffe2c5a4f0 },
++  (__ev64_s64__) { 0xffffffffe44c2b38 },
++  (__ev64_s64__) { 0xfffffffff70e75ce },
++  (__ev64_s64__) { 0xffffffffd4c7fe88 },
++  (__ev64_s64__) { 0x4766368 },
++  (__ev64_s64__) { 0xfffffffffd7629e0 },
++  (__ev64_s64__) { 0x5840399 },
++  (__ev64_s64__) { 0x41d6e61 },
++  (__ev64_s64__) { 0xffffffffee47a048 },
++  (__ev64_s64__) { 0xebbc062 },
++  (__ev64_s64__) { 0x4bdf504 },
++  (__ev64_s64__) { 0x2474120 },
++  (__ev64_s64__) { 0x18764dc6 },
++  (__ev64_s64__) { 0xd56edb9 },
++  (__ev64_s64__) { 0x42f6d7b },
++  (__ev64_s64__) { 0xfffffffffe5cc216 },
++  (__ev64_s64__) { 0xfffffffff4149080 },
++  (__ev64_s64__) { 0x2bac928e },
++  (__ev64_s64__) { 0x22970def },
++  (__ev64_s64__) { 0x24d3f710 },
++  (__ev64_s64__) { 0x843137d },
++  (__ev64_s64__) { 0x1833a310 },
++  (__ev64_s64__) { 0x63e0c48 },
++  (__ev64_s64__) { 0xffffffffd957318a },
++  (__ev64_s64__) { 0xffffffffe3f3bdec },
++  (__ev64_s64__) { 0x33bb5e0 },
++  (__ev64_s64__) { 0xffffffffff320a00 },
++  (__ev64_s64__) { 0xffffffffec27ace8 },
++  (__ev64_s64__) { 0xfffffffff64a2fea },
++  (__ev64_s64__) { 0x1b3a4c1c },
++  (__ev64_s64__) { 0xfffffffffd9c2730 },
++  (__ev64_s64__) { 0x14f1b89 },
++  (__ev64_s64__) { 0xffffffffe9134558 },
++  (__ev64_s64__) { 0xfffffffff3728142 },
++  (__ev64_s64__) { 0x37b32e },
++  (__ev64_s64__) { 0xffffffffe67bffaa },
++  (__ev64_s64__) { 0xfffffffff2ceeea0 },
++  (__ev64_s64__) { 0x1897fa08 },
++  (__ev64_s64__) { 0xae35d0a },
++  (__ev64_s64__) { 0xffffffffdeee5147 },
++  (__ev64_s64__) { 0xfffffffff2ade723 },
++  (__ev64_s64__) { 0xfffffffffa19a400 },
++  (__ev64_s64__) { 0xfffffffffb3e0f96 },
++  (__ev64_s64__) { 0xffffffffcbded382 },
++  (__ev64_s64__) { 0x78c05b5 },
++  (__ev64_s64__) { 0xfffffffffab1e454 },
++  (__ev64_s64__) { 0xfffffffff34199c5 },
++  (__ev64_s64__) { 0xfffffffff558f47d },
++  (__ev64_s64__) { 0xfffffffffbd4dd04 },
++  (__ev64_s64__) { 0xfffffffff48aa2d0 },
++  (__ev64_s64__) { 0xffffffffec146cc0 },
++  (__ev64_s64__) { 0xffffffffd87eae91 },
++  (__ev64_s64__) { 0x9226cbe },
++  (__ev64_s64__) { 0xffffffffcf3d69c8 },
++  (__ev64_s64__) { 0x45b7b8f },
++  (__ev64_s64__) { 0xc76b0 },
++  (__ev64_s64__) { 0xffffffffec543180 },
++  (__ev64_s64__) { 0x121b6780 },
++  (__ev64_s64__) { 0x2b7993e },
++  (__ev64_s64__) { 0xffffffffdab11039 },
++  (__ev64_s64__) { 0x840bf8 },
++  (__ev64_s64__) { 0xffffffffed6c7ee0 },
++  (__ev64_s64__) { 0xfffffffffe6385b4 },
++  (__ev64_s64__) { 0xffffffffff61d3f2 },
++  (__ev64_s64__) { 0xffffffffe1dd3bd8 },
++  (__ev64_s64__) { 0x1595faf0 },
++  (__ev64_s64__) { 0xfffffffff049ac04 },
++  (__ev64_s64__) { 0x95e593d },
++  (__ev64_s64__) { 0x3d67e1f },
++  (__ev64_s64__) { 0xfffffffff3499b96 },
++  (__ev64_s64__) { 0xfffffffffdec8fe6 },
++  (__ev64_s64__) { 0xffffffffcb61ffdf },
++  (__ev64_s64__) { 0xfffffffff5e371b0 },
++  (__ev64_s64__) { 0x103239a8 },
++  (__ev64_s64__) { 0xfffffffff8dce374 },
++  (__ev64_s64__) { 0xffffffffff63bb78 },
++  (__ev64_s64__) { 0x11ed702 },
++  (__ev64_s64__) { 0x75189b4 },
++  (__ev64_s64__) { 0xfffffffffb294a2b },
++  (__ev64_s64__) { 0x4228314 },
++  (__ev64_s64__) { 0xffffffffff763940 },
++  (__ev64_s64__) { 0xc9d2030 },
++  (__ev64_s64__) { 0xfffffffffd14745c },
++  (__ev64_s64__) { 0xffffffffd8cbadb7 },
++  (__ev64_s64__) { 0x14c5ca50 },
++  (__ev64_s64__) { 0xffffffffceeef304 },
++  (__ev64_s64__) { 0x7ed71cc },
++  (__ev64_s64__) { 0xffffffffde825fe1 },
++  (__ev64_s64__) { 0xffffffffdf219914 },
++  (__ev64_s64__) { 0x7605aef },
++  (__ev64_s64__) { 0xfffffffffba0819c },
++  (__ev64_s64__) { 0xfffffffffc6f65d0 },
++  (__ev64_s64__) { 0x2e76bb99 },
++  (__ev64_s64__) { 0x12a325f0 },
++  (__ev64_s64__) { 0x5cd41d4 },
++  (__ev64_s64__) { 0xfffffffff62f6b48 },
++  (__ev64_s64__) { 0x6b6df91 },
++  (__ev64_s64__) { 0xffffffffe3369a00 },
++  (__ev64_s64__) { 0x22df5db1 },
++  (__ev64_s64__) { 0xfffffffff834f427 },
++  (__ev64_s64__) { 0xaf63d28 },
++  (__ev64_s64__) { 0xfffffffffc539908 },
++  (__ev64_s64__) { 0x3fb9aa2 },
++  (__ev64_s64__) { 0x12fba97 },
++  (__ev64_s64__) { 0xffffffffd04abd7c },
++  (__ev64_s64__) { 0x288fcb6c },
++  (__ev64_s64__) { 0xffffffffe051842c },
++  (__ev64_s64__) { 0xffffffffff6ca3f5 },
++  (__ev64_s64__) { 0xfffffffff928f39f },
++  (__ev64_s64__) { 0x20dfd6b },
++  (__ev64_s64__) { 0xcbe2283 },
++  (__ev64_s64__) { 0x1d61a2ea },
++  (__ev64_s64__) { 0xffffffffd722a716 },
++  (__ev64_s64__) { 0x892fdd4 },
++  (__ev64_s64__) { 0x1252ef6 },
++  (__ev64_s64__) { 0x170d2671 },
++  (__ev64_s64__) { 0xfffffffffa4aab34 },
++  (__ev64_s64__) { 0xc581b8 },
++  (__ev64_s64__) { 0x26eea838 },
++  (__ev64_s64__) { 0xfffffffffa7bb2c4 },
++  (__ev64_s64__) { 0x1b355784 },
++  (__ev64_s64__) { 0xffffffffe85b7396 },
++  (__ev64_s64__) { 0x2785e34 },
++  (__ev64_s64__) { 0x19830e07 },
++  (__ev64_s64__) { 0xffffffffe107fab2 },
++  (__ev64_s64__) { 0xfffffffffedba949 },
++  (__ev64_s64__) { 0xfffffffffab02c60 },
++  (__ev64_s64__) { 0x986b5cc },
++  (__ev64_s64__) { 0xff7bd41 },
++  (__ev64_s64__) { 0x2186f748 },
++  (__ev64_s64__) { 0xfffffffffbe90f06 },
++  (__ev64_s64__) { 0x42bf4e },
++  (__ev64_s64__) { 0x1de43f68 },
++  (__ev64_s64__) { 0x128d76cb },
++  (__ev64_s64__) { 0xfffffffff0923c28 },
++  (__ev64_s64__) { 0xffffffffed159c63 },
++  (__ev64_s64__) { 0xb1a0b7c },
++  (__ev64_s64__) { 0xcfb060d },
++  (__ev64_s64__) { 0x4cb08ae },
++  (__ev64_s64__) { 0xfffffffffd5e64e4 },
++  (__ev64_s64__) { 0x7126c2a },
++  (__ev64_s64__) { 0x198d3535 },
++  (__ev64_s64__) { 0x8f08a3d },
++  (__ev64_s64__) { 0xfffffffffdef320c },
++  (__ev64_s64__) { 0xfffffffff7ed88f9 },
++  (__ev64_s64__) { 0x3ab10fe },
++  (__ev64_s64__) { 0xffffffffe1fa63a5 },
++  (__ev64_s64__) { 0x1131c52c },
++  (__ev64_s64__) { 0x92e42a0 },
++  (__ev64_s64__) { 0xfffffffffec83174 },
++  (__ev64_s64__) { 0x42bcf9c },
++  (__ev64_s64__) { 0xffffffffe3abf482 },
++  (__ev64_s64__) { 0xffffffffe8c62031 },
++  (__ev64_s64__) { 0x1439df09 },
++  (__ev64_s64__) { 0xf6ca66a },
++  (__ev64_s64__) { 0xe0c1aac },
++  (__ev64_s64__) { 0xffffffffe52e0d8a },
++
++};
++#endif // __SPE__
++
++int evmhegsmian_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhegsmian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegsmian_baseline[i][0]);
++#endif
++    // Verify that evmhegsmian wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegsmian_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegsmian_asm, "evmhegsmian");
++
++#ifdef __SPE__
++__ev64_u64__ evmhegumiaa_baseline[] = {
++
++  (__ev64_u64__) { 0x2a416a8d },
++  (__ev64_u64__) { 0xe19c901 },
++  (__ev64_u64__) { 0x2306d788 },
++  (__ev64_u64__) { 0x9f33fa08 },
++  (__ev64_u64__) { 0x29fb5aa0 },
++  (__ev64_u64__) { 0x6ce353f8 },
++  (__ev64_u64__) { 0x19ef008e },
++  (__ev64_u64__) { 0x5676c63c },
++  (__ev64_u64__) { 0x1d943a80 },
++  (__ev64_u64__) { 0xc23e97b8 },
++  (__ev64_u64__) { 0x427fb940 },
++  (__ev64_u64__) { 0x13b0f9cc },
++  (__ev64_u64__) { 0x8efa3fb6 },
++  (__ev64_u64__) { 0xb3dc848 },
++  (__ev64_u64__) { 0x2d924a3c },
++  (__ev64_u64__) { 0xadd7f871 },
++  (__ev64_u64__) { 0xb543a2cd },
++  (__ev64_u64__) { 0x2afba014 },
++  (__ev64_u64__) { 0x102e4510 },
++  (__ev64_u64__) { 0x2d8b6d6d },
++  (__ev64_u64__) { 0x3159a856 },
++  (__ev64_u64__) { 0x45c83aa8 },
++  (__ev64_u64__) { 0x9c9e1476 },
++  (__ev64_u64__) { 0x7a187920 },
++  (__ev64_u64__) { 0x45835dcf },
++  (__ev64_u64__) { 0x78e43e0 },
++  (__ev64_u64__) { 0x5cb814b },
++  (__ev64_u64__) { 0x33805c4c },
++  (__ev64_u64__) { 0x2d80b98 },
++  (__ev64_u64__) { 0x34ed9b },
++  (__ev64_u64__) { 0x574be4f0 },
++  (__ev64_u64__) { 0x593a02b8 },
++  (__ev64_u64__) { 0x8cb96e6 },
++  (__ev64_u64__) { 0x24a6feb4 },
++  (__ev64_u64__) { 0x8b0e6803 },
++  (__ev64_u64__) { 0x110f48a6 },
++  (__ev64_u64__) { 0x12d54569 },
++  (__ev64_u64__) { 0x2da54a34 },
++  (__ev64_u64__) { 0x6728509c },
++  (__ev64_u64__) { 0x49b49d0a },
++  (__ev64_u64__) { 0x3f45db7e },
++  (__ev64_u64__) { 0x55313ee0 },
++  (__ev64_u64__) { 0x9c54777 },
++  (__ev64_u64__) { 0x693c4b2 },
++  (__ev64_u64__) { 0x1363cec5 },
++  (__ev64_u64__) { 0x1632eaba },
++  (__ev64_u64__) { 0x66ab4343 },
++  (__ev64_u64__) { 0x2822de91 },
++  (__ev64_u64__) { 0x13fad0fe },
++  (__ev64_u64__) { 0xbb5f2bc8 },
++  (__ev64_u64__) { 0xe3e2317 },
++  (__ev64_u64__) { 0x28cafc10 },
++  (__ev64_u64__) { 0x24163a13 },
++  (__ev64_u64__) { 0x149eb174 },
++  (__ev64_u64__) { 0x46604004 },
++  (__ev64_u64__) { 0x1f4b548f },
++  (__ev64_u64__) { 0x4ff1570e },
++  (__ev64_u64__) { 0x55ab3770 },
++  (__ev64_u64__) { 0x8478092d },
++  (__ev64_u64__) { 0x8e59dc44 },
++  (__ev64_u64__) { 0x161f3a0d },
++  (__ev64_u64__) { 0x17e343e4 },
++  (__ev64_u64__) { 0x2730d258 },
++  (__ev64_u64__) { 0x21da26ad },
++  (__ev64_u64__) { 0x1d909556 },
++  (__ev64_u64__) { 0x8f3a71cc },
++  (__ev64_u64__) { 0x25d28f05 },
++  (__ev64_u64__) { 0x487f7da },
++  (__ev64_u64__) { 0x1280bf8 },
++  (__ev64_u64__) { 0x1a7d1d0 },
++  (__ev64_u64__) { 0x2a2c0379 },
++  (__ev64_u64__) { 0x4c32bbd9 },
++  (__ev64_u64__) { 0xd4b09468 },
++  (__ev64_u64__) { 0x210c88ea },
++  (__ev64_u64__) { 0x80a6440 },
++  (__ev64_u64__) { 0x147c3c99 },
++  (__ev64_u64__) { 0xdc02c3c0 },
++  (__ev64_u64__) { 0x3ff4e708 },
++  (__ev64_u64__) { 0x98baaeae },
++  (__ev64_u64__) { 0x721c907a },
++  (__ev64_u64__) { 0x418300de },
++  (__ev64_u64__) { 0xc13c17cc },
++  (__ev64_u64__) { 0xa269ff0 },
++  (__ev64_u64__) { 0x24a24fa4 },
++  (__ev64_u64__) { 0x104111ac },
++  (__ev64_u64__) { 0x608d646e },
++  (__ev64_u64__) { 0x7ad38720 },
++  (__ev64_u64__) { 0x1ee4f378 },
++  (__ev64_u64__) { 0x5c32961c },
++  (__ev64_u64__) { 0xb872d542 },
++  (__ev64_u64__) { 0x8c23c5c6 },
++  (__ev64_u64__) { 0xab369538 },
++  (__ev64_u64__) { 0x21211f74 },
++  (__ev64_u64__) { 0x6b67884 },
++  (__ev64_u64__) { 0x2a0bb65a },
++  (__ev64_u64__) { 0x6d35cbd5 },
++  (__ev64_u64__) { 0x3a3847f0 },
++  (__ev64_u64__) { 0x7487caf0 },
++  (__ev64_u64__) { 0x77cee971 },
++  (__ev64_u64__) { 0x2c42473c },
++  (__ev64_u64__) { 0x45086688 },
++  (__ev64_u64__) { 0x1ef4cb0b },
++  (__ev64_u64__) { 0x934e02d },
++  (__ev64_u64__) { 0xc38bc08 },
++  (__ev64_u64__) { 0x532dbf80 },
++  (__ev64_u64__) { 0x40762014 },
++  (__ev64_u64__) { 0x8f7d4090 },
++  (__ev64_u64__) { 0x2229b7a7 },
++  (__ev64_u64__) { 0xcc9ccf93 },
++  (__ev64_u64__) { 0x7138cde8 },
++  (__ev64_u64__) { 0xada7374 },
++  (__ev64_u64__) { 0x22cec768 },
++  (__ev64_u64__) { 0x75d01477 },
++  (__ev64_u64__) { 0x1780bc28 },
++  (__ev64_u64__) { 0x858dbaf },
++  (__ev64_u64__) { 0x1433252a },
++  (__ev64_u64__) { 0x4f99a64 },
++  (__ev64_u64__) { 0xe901491e },
++  (__ev64_u64__) { 0x2bc0db88 },
++  (__ev64_u64__) { 0x13317d98 },
++  (__ev64_u64__) { 0x15a94128 },
++  (__ev64_u64__) { 0x87a255ac },
++  (__ev64_u64__) { 0x9841936e },
++  (__ev64_u64__) { 0x1dff6858 },
++  (__ev64_u64__) { 0x4cbedadb },
++  (__ev64_u64__) { 0x3375fc96 },
++  (__ev64_u64__) { 0x1ccd3888 },
++  (__ev64_u64__) { 0x50066b7a },
++  (__ev64_u64__) { 0x4de5bc8 },
++  (__ev64_u64__) { 0x1a8de126 },
++  (__ev64_u64__) { 0x368460c },
++  (__ev64_u64__) { 0xc1e46950 },
++  (__ev64_u64__) { 0x7c25cca },
++  (__ev64_u64__) { 0x32b7da44 },
++  (__ev64_u64__) { 0x5f48c035 },
++  (__ev64_u64__) { 0xc638983e },
++  (__ev64_u64__) { 0x2adec8c4 },
++  (__ev64_u64__) { 0x215d3ea0 },
++  (__ev64_u64__) { 0x48a7aba },
++  (__ev64_u64__) { 0x4895f67f },
++  (__ev64_u64__) { 0x48666096 },
++  (__ev64_u64__) { 0xb27b64e7 },
++  (__ev64_u64__) { 0xbfb49e7a },
++  (__ev64_u64__) { 0x6448a8c4 },
++  (__ev64_u64__) { 0x5c6709d8 },
++  (__ev64_u64__) { 0x5cd71500 },
++  (__ev64_u64__) { 0x12230710 },
++  (__ev64_u64__) { 0x5d869bc9 },
++  (__ev64_u64__) { 0x2a5e910 },
++  (__ev64_u64__) { 0x58bce834 },
++  (__ev64_u64__) { 0x1f4c2aa0 },
++  (__ev64_u64__) { 0x5b39fbfc },
++  (__ev64_u64__) { 0x15e4387c },
++  (__ev64_u64__) { 0x283a7cdb },
++  (__ev64_u64__) { 0x4484ebe7 },
++  (__ev64_u64__) { 0x2ca569b0 },
++  (__ev64_u64__) { 0x895255a4 },
++  (__ev64_u64__) { 0xfaa8e7b },
++  (__ev64_u64__) { 0xd39e356 },
++  (__ev64_u64__) { 0x3d895072 },
++  (__ev64_u64__) { 0xd79168d },
++  (__ev64_u64__) { 0x11d8a090 },
++  (__ev64_u64__) { 0x98074abb },
++  (__ev64_u64__) { 0x5c1d791f },
++  (__ev64_u64__) { 0x30c16ef0 },
++  (__ev64_u64__) { 0x3696b5a8 },
++  (__ev64_u64__) { 0x4df483ec },
++  (__ev64_u64__) { 0x1d627e67 },
++  (__ev64_u64__) { 0x6b4fed98 },
++  (__ev64_u64__) { 0x3a233d9e },
++  (__ev64_u64__) { 0x293f5fb0 },
++  (__ev64_u64__) { 0x16035c3f },
++  (__ev64_u64__) { 0x5a8701e },
++  (__ev64_u64__) { 0xe8b89924 },
++  (__ev64_u64__) { 0x3363629c },
++  (__ev64_u64__) { 0x1aaf5034 },
++  (__ev64_u64__) { 0x292975a8 },
++  (__ev64_u64__) { 0x2b181e67 },
++  (__ev64_u64__) { 0xbf071aa0 },
++  (__ev64_u64__) { 0x423e2500 },
++  (__ev64_u64__) { 0xa5005e89 },
++  (__ev64_u64__) { 0x2d49e060 },
++  (__ev64_u64__) { 0x9b84c36e },
++  (__ev64_u64__) { 0x566c2f69 },
++  (__ev64_u64__) { 0xc51f90 },
++  (__ev64_u64__) { 0x4fd4eb3 },
++  (__ev64_u64__) { 0x66b1957c },
++  (__ev64_u64__) { 0x777d90cb },
++  (__ev64_u64__) { 0x4a1f4068 },
++  (__ev64_u64__) { 0x44ddfc0 },
++  (__ev64_u64__) { 0x48a0e8a8 },
++  (__ev64_u64__) { 0x808856be },
++  (__ev64_u64__) { 0x2d9993a5 },
++  (__ev64_u64__) { 0x813c966 },
++  (__ev64_u64__) { 0x9aee51de },
++  (__ev64_u64__) { 0x420f260d },
++  (__ev64_u64__) { 0x2dbabe00 },
++  (__ev64_u64__) { 0x8465853c },
++  (__ev64_u64__) { 0x550d2391 },
++  (__ev64_u64__) { 0x1683a836 },
++  (__ev64_u64__) { 0x6873066e },
++  (__ev64_u64__) { 0xa635ad64 },
++  (__ev64_u64__) { 0x109e1d9e },
++  (__ev64_u64__) { 0x18cba540 },
++  (__ev64_u64__) { 0x3b215afa },
++  (__ev64_u64__) { 0xcd015e8 },
++  (__ev64_u64__) { 0x8a51f1f8 },
++  (__ev64_u64__) { 0x1f51aaac },
++  (__ev64_u64__) { 0x5b984b0 },
++  (__ev64_u64__) { 0xa033fc5f },
++  (__ev64_u64__) { 0xdb5574 },
++  (__ev64_u64__) { 0x1ef87103 },
++  (__ev64_u64__) { 0x111746e8 },
++  (__ev64_u64__) { 0x1311380b },
++  (__ev64_u64__) { 0x2998e0d8 },
++  (__ev64_u64__) { 0x299764f8 },
++  (__ev64_u64__) { 0x13ac047 },
++  (__ev64_u64__) { 0x46b893e2 },
++  (__ev64_u64__) { 0x33e57f8 },
++  (__ev64_u64__) { 0x5b4f41a0 },
++  (__ev64_u64__) { 0x80cb9d2 },
++  (__ev64_u64__) { 0x4eb7afc2 },
++  (__ev64_u64__) { 0x335311d1 },
++  (__ev64_u64__) { 0x20bf4268 },
++  (__ev64_u64__) { 0x281b2f74 },
++  (__ev64_u64__) { 0x3b9474ab },
++  (__ev64_u64__) { 0x430800 },
++  (__ev64_u64__) { 0x59995bde },
++  (__ev64_u64__) { 0x5559cee },
++  (__ev64_u64__) { 0x5264ec92 },
++  (__ev64_u64__) { 0x21d22853 },
++  (__ev64_u64__) { 0x17292591 },
++  (__ev64_u64__) { 0x3a645ae9 },
++  (__ev64_u64__) { 0x4f7646ce },
++  (__ev64_u64__) { 0x195ba194 },
++  (__ev64_u64__) { 0x29b7f4e7 },
++  (__ev64_u64__) { 0x2c25f3c0 },
++  (__ev64_u64__) { 0x9b988822 },
++  (__ev64_u64__) { 0xe9bef366 },
++  (__ev64_u64__) { 0x508287c },
++  (__ev64_u64__) { 0xa788a75a },
++  (__ev64_u64__) { 0x36bc18b5 },
++  (__ev64_u64__) { 0x47d2a9f },
++  (__ev64_u64__) { 0x14389435 },
++  (__ev64_u64__) { 0x9c3a1952 },
++  (__ev64_u64__) { 0x54bf0f10 },
++  (__ev64_u64__) { 0x1bbe017a },
++  (__ev64_u64__) { 0xaba270da },
++  (__ev64_u64__) { 0x62b75302 },
++  (__ev64_u64__) { 0xbfede8c },
++  (__ev64_u64__) { 0x21b1b10 },
++  (__ev64_u64__) { 0x4071fdf2 },
++  (__ev64_u64__) { 0x5e6f2196 },
++  (__ev64_u64__) { 0x8e21ca99 },
++  (__ev64_u64__) { 0x8ec7200 },
++  (__ev64_u64__) { 0x24d75310 },
++
++};
++#endif // __SPE__
++
++int evmhegumiaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhegumiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegumiaa_baseline[i][0]);
++#endif
++    // Verify that evmhegumiaa wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegumiaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegumiaa_asm, "evmhegumiaa");
++
++#ifdef __SPE__
++__ev64_u64__ evmhegumian_baseline[] = {
++
++  (__ev64_u64__) { 0xffffffffd5be9573 },
++  (__ev64_u64__) { 0xfffffffff1e636ff },
++  (__ev64_u64__) { 0xffffffffdcf92878 },
++  (__ev64_u64__) { 0xffffffff60cc05f8 },
++  (__ev64_u64__) { 0xffffffffd604a560 },
++  (__ev64_u64__) { 0xffffffff931cac08 },
++  (__ev64_u64__) { 0xffffffffe610ff72 },
++  (__ev64_u64__) { 0xffffffffa98939c4 },
++  (__ev64_u64__) { 0xffffffffe26bc580 },
++  (__ev64_u64__) { 0xffffffff3dc16848 },
++  (__ev64_u64__) { 0xffffffffbd8046c0 },
++  (__ev64_u64__) { 0xffffffffec4f0634 },
++  (__ev64_u64__) { 0xffffffff7105c04a },
++  (__ev64_u64__) { 0xfffffffff4c237b8 },
++  (__ev64_u64__) { 0xffffffffd26db5c4 },
++  (__ev64_u64__) { 0xffffffff5228078f },
++  (__ev64_u64__) { 0xffffffff4abc5d33 },
++  (__ev64_u64__) { 0xffffffffd5045fec },
++  (__ev64_u64__) { 0xffffffffefd1baf0 },
++  (__ev64_u64__) { 0xffffffffd2749293 },
++  (__ev64_u64__) { 0xffffffffcea657aa },
++  (__ev64_u64__) { 0xffffffffba37c558 },
++  (__ev64_u64__) { 0xffffffff6361eb8a },
++  (__ev64_u64__) { 0xffffffff85e786e0 },
++  (__ev64_u64__) { 0xffffffffba7ca231 },
++  (__ev64_u64__) { 0xfffffffff871bc20 },
++  (__ev64_u64__) { 0xfffffffffa347eb5 },
++  (__ev64_u64__) { 0xffffffffcc7fa3b4 },
++  (__ev64_u64__) { 0xfffffffffd27f468 },
++  (__ev64_u64__) { 0xffffffffffcb1265 },
++  (__ev64_u64__) { 0xffffffffa8b41b10 },
++  (__ev64_u64__) { 0xffffffffa6c5fd48 },
++  (__ev64_u64__) { 0xfffffffff734691a },
++  (__ev64_u64__) { 0xffffffffdb59014c },
++  (__ev64_u64__) { 0xffffffff74f197fd },
++  (__ev64_u64__) { 0xffffffffeef0b75a },
++  (__ev64_u64__) { 0xffffffffed2aba97 },
++  (__ev64_u64__) { 0xffffffffd25ab5cc },
++  (__ev64_u64__) { 0xffffffff98d7af64 },
++  (__ev64_u64__) { 0xffffffffb64b62f6 },
++  (__ev64_u64__) { 0xffffffffc0ba2482 },
++  (__ev64_u64__) { 0xffffffffaacec120 },
++  (__ev64_u64__) { 0xfffffffff63ab889 },
++  (__ev64_u64__) { 0xfffffffff96c3b4e },
++  (__ev64_u64__) { 0xffffffffec9c313b },
++  (__ev64_u64__) { 0xffffffffe9cd1546 },
++  (__ev64_u64__) { 0xffffffff9954bcbd },
++  (__ev64_u64__) { 0xffffffffd7dd216f },
++  (__ev64_u64__) { 0xffffffffec052f02 },
++  (__ev64_u64__) { 0xffffffff44a0d438 },
++  (__ev64_u64__) { 0xfffffffff1c1dce9 },
++  (__ev64_u64__) { 0xffffffffd73503f0 },
++  (__ev64_u64__) { 0xffffffffdbe9c5ed },
++  (__ev64_u64__) { 0xffffffffeb614e8c },
++  (__ev64_u64__) { 0xffffffffb99fbffc },
++  (__ev64_u64__) { 0xffffffffe0b4ab71 },
++  (__ev64_u64__) { 0xffffffffb00ea8f2 },
++  (__ev64_u64__) { 0xffffffffaa54c890 },
++  (__ev64_u64__) { 0xffffffff7b87f6d3 },
++  (__ev64_u64__) { 0xffffffff71a623bc },
++  (__ev64_u64__) { 0xffffffffe9e0c5f3 },
++  (__ev64_u64__) { 0xffffffffe81cbc1c },
++  (__ev64_u64__) { 0xffffffffd8cf2da8 },
++  (__ev64_u64__) { 0xffffffffde25d953 },
++  (__ev64_u64__) { 0xffffffffe26f6aaa },
++  (__ev64_u64__) { 0xffffffff70c58e34 },
++  (__ev64_u64__) { 0xffffffffda2d70fb },
++  (__ev64_u64__) { 0xfffffffffb780826 },
++  (__ev64_u64__) { 0xfffffffffed7f408 },
++  (__ev64_u64__) { 0xfffffffffe582e30 },
++  (__ev64_u64__) { 0xffffffffd5d3fc87 },
++  (__ev64_u64__) { 0xffffffffb3cd4427 },
++  (__ev64_u64__) { 0xffffffff2b4f6b98 },
++  (__ev64_u64__) { 0xffffffffdef37716 },
++  (__ev64_u64__) { 0xfffffffff7f59bc0 },
++  (__ev64_u64__) { 0xffffffffeb83c367 },
++  (__ev64_u64__) { 0xffffffff23fd3c40 },
++  (__ev64_u64__) { 0xffffffffc00b18f8 },
++  (__ev64_u64__) { 0xffffffff67455152 },
++  (__ev64_u64__) { 0xffffffff8de36f86 },
++  (__ev64_u64__) { 0xffffffffbe7cff22 },
++  (__ev64_u64__) { 0xffffffff3ec3e834 },
++  (__ev64_u64__) { 0xfffffffff5d96010 },
++  (__ev64_u64__) { 0xffffffffdb5db05c },
++  (__ev64_u64__) { 0xffffffffefbeee54 },
++  (__ev64_u64__) { 0xffffffff9f729b92 },
++  (__ev64_u64__) { 0xffffffff852c78e0 },
++  (__ev64_u64__) { 0xffffffffe11b0c88 },
++  (__ev64_u64__) { 0xffffffffa3cd69e4 },
++  (__ev64_u64__) { 0xffffffff478d2abe },
++  (__ev64_u64__) { 0xffffffff73dc3a3a },
++  (__ev64_u64__) { 0xffffffff54c96ac8 },
++  (__ev64_u64__) { 0xffffffffdedee08c },
++  (__ev64_u64__) { 0xfffffffff949877c },
++  (__ev64_u64__) { 0xffffffffd5f449a6 },
++  (__ev64_u64__) { 0xffffffff92ca342b },
++  (__ev64_u64__) { 0xffffffffc5c7b810 },
++  (__ev64_u64__) { 0xffffffff8b783510 },
++  (__ev64_u64__) { 0xffffffff8831168f },
++  (__ev64_u64__) { 0xffffffffd3bdb8c4 },
++  (__ev64_u64__) { 0xffffffffbaf79978 },
++  (__ev64_u64__) { 0xffffffffe10b34f5 },
++  (__ev64_u64__) { 0xfffffffff6cb1fd3 },
++  (__ev64_u64__) { 0xfffffffff3c743f8 },
++  (__ev64_u64__) { 0xffffffffacd24080 },
++  (__ev64_u64__) { 0xffffffffbf89dfec },
++  (__ev64_u64__) { 0xffffffff7082bf70 },
++  (__ev64_u64__) { 0xffffffffddd64859 },
++  (__ev64_u64__) { 0xffffffff3363306d },
++  (__ev64_u64__) { 0xffffffff8ec73218 },
++  (__ev64_u64__) { 0xfffffffff5258c8c },
++  (__ev64_u64__) { 0xffffffffdd313898 },
++  (__ev64_u64__) { 0xffffffff8a2feb89 },
++  (__ev64_u64__) { 0xffffffffe87f43d8 },
++  (__ev64_u64__) { 0xfffffffff7a72451 },
++  (__ev64_u64__) { 0xffffffffebccdad6 },
++  (__ev64_u64__) { 0xfffffffffb06659c },
++  (__ev64_u64__) { 0xffffffff16feb6e2 },
++  (__ev64_u64__) { 0xffffffffd43f2478 },
++  (__ev64_u64__) { 0xffffffffecce8268 },
++  (__ev64_u64__) { 0xffffffffea56bed8 },
++  (__ev64_u64__) { 0xffffffff785daa54 },
++  (__ev64_u64__) { 0xffffffff67be6c92 },
++  (__ev64_u64__) { 0xffffffffe20097a8 },
++  (__ev64_u64__) { 0xffffffffb3412525 },
++  (__ev64_u64__) { 0xffffffffcc8a036a },
++  (__ev64_u64__) { 0xffffffffe332c778 },
++  (__ev64_u64__) { 0xffffffffaff99486 },
++  (__ev64_u64__) { 0xfffffffffb21a438 },
++  (__ev64_u64__) { 0xffffffffe5721eda },
++  (__ev64_u64__) { 0xfffffffffc97b9f4 },
++  (__ev64_u64__) { 0xffffffff3e1b96b0 },
++  (__ev64_u64__) { 0xfffffffff83da336 },
++  (__ev64_u64__) { 0xffffffffcd4825bc },
++  (__ev64_u64__) { 0xffffffffa0b73fcb },
++  (__ev64_u64__) { 0xffffffff39c767c2 },
++  (__ev64_u64__) { 0xffffffffd521373c },
++  (__ev64_u64__) { 0xffffffffdea2c160 },
++  (__ev64_u64__) { 0xfffffffffb758546 },
++  (__ev64_u64__) { 0xffffffffb76a0981 },
++  (__ev64_u64__) { 0xffffffffb7999f6a },
++  (__ev64_u64__) { 0xffffffff4d849b19 },
++  (__ev64_u64__) { 0xffffffff404b6186 },
++  (__ev64_u64__) { 0xffffffff9bb7573c },
++  (__ev64_u64__) { 0xffffffffa398f628 },
++  (__ev64_u64__) { 0xffffffffa328eb00 },
++  (__ev64_u64__) { 0xffffffffeddcf8f0 },
++  (__ev64_u64__) { 0xffffffffa2796437 },
++  (__ev64_u64__) { 0xfffffffffd5a16f0 },
++  (__ev64_u64__) { 0xffffffffa74317cc },
++  (__ev64_u64__) { 0xffffffffe0b3d560 },
++  (__ev64_u64__) { 0xffffffffa4c60404 },
++  (__ev64_u64__) { 0xffffffffea1bc784 },
++  (__ev64_u64__) { 0xffffffffd7c58325 },
++  (__ev64_u64__) { 0xffffffffbb7b1419 },
++  (__ev64_u64__) { 0xffffffffd35a9650 },
++  (__ev64_u64__) { 0xffffffff76adaa5c },
++  (__ev64_u64__) { 0xfffffffff0557185 },
++  (__ev64_u64__) { 0xfffffffff2c61caa },
++  (__ev64_u64__) { 0xffffffffc276af8e },
++  (__ev64_u64__) { 0xfffffffff286e973 },
++  (__ev64_u64__) { 0xffffffffee275f70 },
++  (__ev64_u64__) { 0xffffffff67f8b545 },
++  (__ev64_u64__) { 0xffffffffa3e286e1 },
++  (__ev64_u64__) { 0xffffffffcf3e9110 },
++  (__ev64_u64__) { 0xffffffffc9694a58 },
++  (__ev64_u64__) { 0xffffffffb20b7c14 },
++  (__ev64_u64__) { 0xffffffffe29d8199 },
++  (__ev64_u64__) { 0xffffffff94b01268 },
++  (__ev64_u64__) { 0xffffffffc5dcc262 },
++  (__ev64_u64__) { 0xffffffffd6c0a050 },
++  (__ev64_u64__) { 0xffffffffe9fca3c1 },
++  (__ev64_u64__) { 0xfffffffffa578fe2 },
++  (__ev64_u64__) { 0xffffffff174766dc },
++  (__ev64_u64__) { 0xffffffffcc9c9d64 },
++  (__ev64_u64__) { 0xffffffffe550afcc },
++  (__ev64_u64__) { 0xffffffffd6d68a58 },
++  (__ev64_u64__) { 0xffffffffd4e7e199 },
++  (__ev64_u64__) { 0xffffffff40f8e560 },
++  (__ev64_u64__) { 0xffffffffbdc1db00 },
++  (__ev64_u64__) { 0xffffffff5affa177 },
++  (__ev64_u64__) { 0xffffffffd2b61fa0 },
++  (__ev64_u64__) { 0xffffffff647b3c92 },
++  (__ev64_u64__) { 0xffffffffa993d097 },
++  (__ev64_u64__) { 0xffffffffff3ae070 },
++  (__ev64_u64__) { 0xfffffffffb02b14d },
++  (__ev64_u64__) { 0xffffffff994e6a84 },
++  (__ev64_u64__) { 0xffffffff88826f35 },
++  (__ev64_u64__) { 0xffffffffb5e0bf98 },
++  (__ev64_u64__) { 0xfffffffffbb22040 },
++  (__ev64_u64__) { 0xffffffffb75f1758 },
++  (__ev64_u64__) { 0xffffffff7f77a942 },
++  (__ev64_u64__) { 0xffffffffd2666c5b },
++  (__ev64_u64__) { 0xfffffffff7ec369a },
++  (__ev64_u64__) { 0xffffffff6511ae22 },
++  (__ev64_u64__) { 0xffffffffbdf0d9f3 },
++  (__ev64_u64__) { 0xffffffffd2454200 },
++  (__ev64_u64__) { 0xffffffff7b9a7ac4 },
++  (__ev64_u64__) { 0xffffffffaaf2dc6f },
++  (__ev64_u64__) { 0xffffffffe97c57ca },
++  (__ev64_u64__) { 0xffffffff978cf992 },
++  (__ev64_u64__) { 0xffffffff59ca529c },
++  (__ev64_u64__) { 0xffffffffef61e262 },
++  (__ev64_u64__) { 0xffffffffe7345ac0 },
++  (__ev64_u64__) { 0xffffffffc4dea506 },
++  (__ev64_u64__) { 0xfffffffff32fea18 },
++  (__ev64_u64__) { 0xffffffff75ae0e08 },
++  (__ev64_u64__) { 0xffffffffe0ae5554 },
++  (__ev64_u64__) { 0xfffffffffa467b50 },
++  (__ev64_u64__) { 0xffffffff5fcc03a1 },
++  (__ev64_u64__) { 0xffffffffff24aa8c },
++  (__ev64_u64__) { 0xffffffffe1078efd },
++  (__ev64_u64__) { 0xffffffffeee8b918 },
++  (__ev64_u64__) { 0xffffffffeceec7f5 },
++  (__ev64_u64__) { 0xffffffffd6671f28 },
++  (__ev64_u64__) { 0xffffffffd6689b08 },
++  (__ev64_u64__) { 0xfffffffffec53fb9 },
++  (__ev64_u64__) { 0xffffffffb9476c1e },
++  (__ev64_u64__) { 0xfffffffffcc1a808 },
++  (__ev64_u64__) { 0xffffffffa4b0be60 },
++  (__ev64_u64__) { 0xfffffffff7f3462e },
++  (__ev64_u64__) { 0xffffffffb148503e },
++  (__ev64_u64__) { 0xffffffffccacee2f },
++  (__ev64_u64__) { 0xffffffffdf40bd98 },
++  (__ev64_u64__) { 0xffffffffd7e4d08c },
++  (__ev64_u64__) { 0xffffffffc46b8b55 },
++  (__ev64_u64__) { 0xffffffffffbcf800 },
++  (__ev64_u64__) { 0xffffffffa666a422 },
++  (__ev64_u64__) { 0xfffffffffaaa6312 },
++  (__ev64_u64__) { 0xffffffffad9b136e },
++  (__ev64_u64__) { 0xffffffffde2dd7ad },
++  (__ev64_u64__) { 0xffffffffe8d6da6f },
++  (__ev64_u64__) { 0xffffffffc59ba517 },
++  (__ev64_u64__) { 0xffffffffb089b932 },
++  (__ev64_u64__) { 0xffffffffe6a45e6c },
++  (__ev64_u64__) { 0xffffffffd6480b19 },
++  (__ev64_u64__) { 0xffffffffd3da0c40 },
++  (__ev64_u64__) { 0xffffffff646777de },
++  (__ev64_u64__) { 0xffffffff16410c9a },
++  (__ev64_u64__) { 0xfffffffffaf7d784 },
++  (__ev64_u64__) { 0xffffffff587758a6 },
++  (__ev64_u64__) { 0xffffffffc943e74b },
++  (__ev64_u64__) { 0xfffffffffb82d561 },
++  (__ev64_u64__) { 0xffffffffebc76bcb },
++  (__ev64_u64__) { 0xffffffff63c5e6ae },
++  (__ev64_u64__) { 0xffffffffab40f0f0 },
++  (__ev64_u64__) { 0xffffffffe441fe86 },
++  (__ev64_u64__) { 0xffffffff545d8f26 },
++  (__ev64_u64__) { 0xffffffff9d48acfe },
++  (__ev64_u64__) { 0xfffffffff4012174 },
++  (__ev64_u64__) { 0xfffffffffde4e4f0 },
++  (__ev64_u64__) { 0xffffffffbf8e020e },
++  (__ev64_u64__) { 0xffffffffa190de6a },
++  (__ev64_u64__) { 0xffffffff71de3567 },
++  (__ev64_u64__) { 0xfffffffff7138e00 },
++  (__ev64_u64__) { 0xffffffffdb28acf0 },
++
++};
++#endif // __SPE__
++
++int evmhegumian_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhegumian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhegumian_baseline[i][0]);
++#endif
++    // Verify that evmhegumian wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhegumian_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhegumian_asm, "evmhegumian");
++
++#ifdef __SPE__
++__ev64_s64__ evmhogsmiaa_baseline[] = {
++
++  (__ev64_s64__) { 0xfffffffffd42ac23 },
++  (__ev64_s64__) { 0x31f2b644 },
++  (__ev64_s64__) { 0xfffffffffb6a5fd4 },
++  (__ev64_s64__) { 0xfe0dac4 },
++  (__ev64_s64__) { 0xffffffffdd6d5448 },
++  (__ev64_s64__) { 0xfffffffff7d38b9a },
++  (__ev64_s64__) { 0xfffffffffab2b890 },
++  (__ev64_s64__) { 0xfffffffffca85ce0 },
++  (__ev64_s64__) { 0x139f8153 },
++  (__ev64_s64__) { 0xffffffffeebbcbc2 },
++  (__ev64_s64__) { 0xf7a2452 },
++  (__ev64_s64__) { 0xfffffffff83f6986 },
++  (__ev64_s64__) { 0xb22b4c },
++  (__ev64_s64__) { 0x2ef4542 },
++  (__ev64_s64__) { 0x368694c },
++  (__ev64_s64__) { 0x74459ee },
++  (__ev64_s64__) { 0x1f869a8c },
++  (__ev64_s64__) { 0x26c498fe },
++  (__ev64_s64__) { 0x1cdb6d9a },
++  (__ev64_s64__) { 0x60b7bf4 },
++  (__ev64_s64__) { 0x9f34b5e },
++  (__ev64_s64__) { 0xfffffffffad23dc0 },
++  (__ev64_s64__) { 0xaf204e },
++  (__ev64_s64__) { 0xffffffffda0cd5c2 },
++  (__ev64_s64__) { 0x9e912f8 },
++  (__ev64_s64__) { 0xffffffffdf2d39f6 },
++  (__ev64_s64__) { 0x2cfc7990 },
++  (__ev64_s64__) { 0xffffffffee3afe02 },
++  (__ev64_s64__) { 0x168c3a50 },
++  (__ev64_s64__) { 0xfffffffffa2928ff },
++  (__ev64_s64__) { 0xffffffffd1a5e480 },
++  (__ev64_s64__) { 0xffffffffee112c27 },
++  (__ev64_s64__) { 0xffffffffe5fe219b },
++  (__ev64_s64__) { 0xfffffffffe652916 },
++  (__ev64_s64__) { 0xffffffffed3528c8 },
++  (__ev64_s64__) { 0x2e718a34 },
++  (__ev64_s64__) { 0x2838e7c6 },
++  (__ev64_s64__) { 0xffffffffeababd2a },
++  (__ev64_s64__) { 0x12632c78 },
++  (__ev64_s64__) { 0xffffffffe04b42f2 },
++  (__ev64_s64__) { 0xffffffffe27e3180 },
++  (__ev64_s64__) { 0x45c1b12 },
++  (__ev64_s64__) { 0xffffffffe5ea32b8 },
++  (__ev64_s64__) { 0xffffffffeeff1d88 },
++  (__ev64_s64__) { 0x2157e60 },
++  (__ev64_s64__) { 0x2bf1f8 },
++  (__ev64_s64__) { 0x104c9692 },
++  (__ev64_s64__) { 0x1bd2576a },
++  (__ev64_s64__) { 0x1061d45f },
++  (__ev64_s64__) { 0x217fc57 },
++  (__ev64_s64__) { 0x1733b8c4 },
++  (__ev64_s64__) { 0x35c8a75 },
++  (__ev64_s64__) { 0xffffffffe7e42736 },
++  (__ev64_s64__) { 0xfffffffff9374087 },
++  (__ev64_s64__) { 0xfffffffffb920988 },
++  (__ev64_s64__) { 0xa28f17e },
++  (__ev64_s64__) { 0xffffffffe31f7b26 },
++  (__ev64_s64__) { 0xffffffffe5f7dfec },
++  (__ev64_s64__) { 0xffffffffee485518 },
++  (__ev64_s64__) { 0xffffffffef99ea8c },
++  (__ev64_s64__) { 0xffffffffffa39978 },
++  (__ev64_s64__) { 0xfffffffff06a4354 },
++  (__ev64_s64__) { 0xfffffffff1e1ce40 },
++  (__ev64_s64__) { 0xffffffffcba0e045 },
++  (__ev64_s64__) { 0x118d8b },
++  (__ev64_s64__) { 0xffffffffeed32aaa },
++  (__ev64_s64__) { 0xffffffffff4cfb40 },
++  (__ev64_s64__) { 0x2fdaf0a },
++  (__ev64_s64__) { 0x994a9a },
++  (__ev64_s64__) { 0x103a062 },
++  (__ev64_s64__) { 0xfffffffffa10cf38 },
++  (__ev64_s64__) { 0xffffffffed80eac8 },
++  (__ev64_s64__) { 0xfffffffff247113b },
++  (__ev64_s64__) { 0x40d5c2 },
++  (__ev64_s64__) { 0x11d6f740 },
++  (__ev64_s64__) { 0x1a6bb9c0 },
++  (__ev64_s64__) { 0xfffffffff4a110e0 },
++  (__ev64_s64__) { 0x36666fc0 },
++  (__ev64_s64__) { 0xfffffffffb9fd79c },
++  (__ev64_s64__) { 0xc052fc0 },
++  (__ev64_s64__) { 0xfffffffffbe55c05 },
++  (__ev64_s64__) { 0xa1bd850 },
++  (__ev64_s64__) { 0xfffffffffb4f008c },
++  (__ev64_s64__) { 0xfffffffff954e6e9 },
++  (__ev64_s64__) { 0xffffffffeeeb0498 },
++  (__ev64_s64__) { 0xfffffffffcd1fc74 },
++  (__ev64_s64__) { 0x9b9b1dc },
++  (__ev64_s64__) { 0xad4e4c8 },
++  (__ev64_s64__) { 0x1a4f1284 },
++  (__ev64_s64__) { 0x1c0d4dd8 },
++  (__ev64_s64__) { 0x10cd90a0 },
++  (__ev64_s64__) { 0xffffffffdaeaf836 },
++  (__ev64_s64__) { 0x2ec0a63d },
++  (__ev64_s64__) { 0x20216252 },
++  (__ev64_s64__) { 0xfffffffffcb9aeec },
++  (__ev64_s64__) { 0xdfd8074 },
++  (__ev64_s64__) { 0x156ec8c8 },
++  (__ev64_s64__) { 0xffffffffffb66b00 },
++  (__ev64_s64__) { 0x146a2bc8 },
++  (__ev64_s64__) { 0x9e0a7b4 },
++  (__ev64_s64__) { 0x211d76e4 },
++  (__ev64_s64__) { 0x1ecf3c94 },
++  (__ev64_s64__) { 0x12909810 },
++  (__ev64_s64__) { 0x143c121 },
++  (__ev64_s64__) { 0x2c51c88 },
++  (__ev64_s64__) { 0xffffffffcc63d093 },
++  (__ev64_s64__) { 0x100adfc8 },
++  (__ev64_s64__) { 0xc8f64 },
++  (__ev64_s64__) { 0x15dcd114 },
++  (__ev64_s64__) { 0x5b0ad24 },
++  (__ev64_s64__) { 0xfffffffffc7ed43a },
++  (__ev64_s64__) { 0xffffffffe69a1136 },
++  (__ev64_s64__) { 0xfffffffff7fec4a4 },
++  (__ev64_s64__) { 0x773ee60 },
++  (__ev64_s64__) { 0x7e12f52 },
++  (__ev64_s64__) { 0xfffffffffe04af36 },
++  (__ev64_s64__) { 0xffffffffffe02848 },
++  (__ev64_s64__) { 0x1256d500 },
++  (__ev64_s64__) { 0xffffffffd942555c },
++  (__ev64_s64__) { 0xfffffffff884c074 },
++  (__ev64_s64__) { 0x136dfd2e },
++  (__ev64_s64__) { 0xffffffffeb4baf74 },
++  (__ev64_s64__) { 0xfffffffffd84cd59 },
++  (__ev64_s64__) { 0xfffffffff2e370b0 },
++  (__ev64_s64__) { 0xfffffffffffb6afa },
++  (__ev64_s64__) { 0xffffffffdd8620e8 },
++  (__ev64_s64__) { 0xfffffffff4fec0bf },
++  (__ev64_s64__) { 0xfffffffff70446a0 },
++  (__ev64_s64__) { 0xfffffffff874f92f },
++  (__ev64_s64__) { 0xffffffffe2fd1dc2 },
++  (__ev64_s64__) { 0xdfab0dc },
++  (__ev64_s64__) { 0x131c9ec2 },
++  (__ev64_s64__) { 0xfffffffff82d06d0 },
++  (__ev64_s64__) { 0xffffffffed4e98ad },
++  (__ev64_s64__) { 0xfffffffffea9d72c },
++  (__ev64_s64__) { 0x2ee7318 },
++  (__ev64_s64__) { 0xffffffffeb092fb0 },
++  (__ev64_s64__) { 0xffffffffdadb5b4e },
++  (__ev64_s64__) { 0xfffffffffefcabff },
++  (__ev64_s64__) { 0xfffffffffcab3c58 },
++  (__ev64_s64__) { 0xffffffffce428a50 },
++  (__ev64_s64__) { 0xffffffffe80bb6d6 },
++  (__ev64_s64__) { 0x1153440 },
++  (__ev64_s64__) { 0xffffffffffc6d4b6 },
++  (__ev64_s64__) { 0x10c92b3d },
++  (__ev64_s64__) { 0xfffffffffcbbc600 },
++  (__ev64_s64__) { 0xfffffffff70aab92 },
++  (__ev64_s64__) { 0xffffffffef97c330 },
++  (__ev64_s64__) { 0xfffffffff071237b },
++  (__ev64_s64__) { 0x215ef8 },
++  (__ev64_s64__) { 0xfffffffffd0cc40a },
++  (__ev64_s64__) { 0xfffffffffe02b970 },
++  (__ev64_s64__) { 0x58c7d2d },
++  (__ev64_s64__) { 0xffffffffe87b80ac },
++  (__ev64_s64__) { 0x7983fa8 },
++  (__ev64_s64__) { 0x1aef75a2 },
++  (__ev64_s64__) { 0x2d94b84 },
++  (__ev64_s64__) { 0x522f0c },
++  (__ev64_s64__) { 0xffffffffe56def78 },
++  (__ev64_s64__) { 0x6bd6c63 },
++  (__ev64_s64__) { 0xfffffffffd7dba04 },
++  (__ev64_s64__) { 0xfffffffff46171b2 },
++  (__ev64_s64__) { 0xe05490a },
++  (__ev64_s64__) { 0x11aabf7c },
++  (__ev64_s64__) { 0xfffffffff5cf425a },
++  (__ev64_s64__) { 0xfffffffff76764a6 },
++  (__ev64_s64__) { 0x2c448 },
++  (__ev64_s64__) { 0x2c1d71b0 },
++  (__ev64_s64__) { 0xb6a1e10 },
++  (__ev64_s64__) { 0xfffffffffc1d9b48 },
++  (__ev64_s64__) { 0x59d6d6 },
++  (__ev64_s64__) { 0x445bf15 },
++  (__ev64_s64__) { 0xffffffffd6031360 },
++  (__ev64_s64__) { 0xffffffffe921368c },
++  (__ev64_s64__) { 0xffffffffe220d764 },
++  (__ev64_s64__) { 0xfffffffff6451d40 },
++  (__ev64_s64__) { 0x193fbe9c },
++  (__ev64_s64__) { 0x13a2cbec },
++  (__ev64_s64__) { 0xffffffffffd526ad },
++  (__ev64_s64__) { 0x7e5b1f0 },
++  (__ev64_s64__) { 0x2c556cb },
++  (__ev64_s64__) { 0xffffffffef3110d0 },
++  (__ev64_s64__) { 0x3548843 },
++  (__ev64_s64__) { 0xfffffffff1b581f8 },
++  (__ev64_s64__) { 0x29a81934 },
++  (__ev64_s64__) { 0xffffffffdf36ca64 },
++  (__ev64_s64__) { 0xdafc766 },
++  (__ev64_s64__) { 0xfffffffffa4e7a4c },
++  (__ev64_s64__) { 0x2290ae1c },
++  (__ev64_s64__) { 0xcb4b5b6 },
++  (__ev64_s64__) { 0x7b8acf6 },
++  (__ev64_s64__) { 0xfffffffffdbc5b22 },
++  (__ev64_s64__) { 0x1b0c232d },
++  (__ev64_s64__) { 0xf51a20 },
++  (__ev64_s64__) { 0xfffffffffc784a84 },
++  (__ev64_s64__) { 0x34adbb },
++  (__ev64_s64__) { 0xffffffffffdb0684 },
++  (__ev64_s64__) { 0xffffffffed885058 },
++  (__ev64_s64__) { 0x283af3b8 },
++  (__ev64_s64__) { 0xdbdd7f },
++  (__ev64_s64__) { 0x17291335 },
++  (__ev64_s64__) { 0xfffffffff46ab728 },
++  (__ev64_s64__) { 0xfffffffff0076b72 },
++  (__ev64_s64__) { 0x824f89d },
++  (__ev64_s64__) { 0xfffffffff957ffaa },
++  (__ev64_s64__) { 0xfffffffff6f5c80e },
++  (__ev64_s64__) { 0xffffffffd24a6eb1 },
++  (__ev64_s64__) { 0x5fd5d06 },
++  (__ev64_s64__) { 0xffffffffe9814bb0 },
++  (__ev64_s64__) { 0x26c870dc },
++  (__ev64_s64__) { 0xb085f15 },
++  (__ev64_s64__) { 0x13f00e3 },
++  (__ev64_s64__) { 0xfffffffff438fe02 },
++  (__ev64_s64__) { 0xfffffffff3dad958 },
++  (__ev64_s64__) { 0xffffffffe3598472 },
++  (__ev64_s64__) { 0xfffffffffa4d26c8 },
++  (__ev64_s64__) { 0xffffffffff91383d },
++  (__ev64_s64__) { 0xffffffffffd029d0 },
++  (__ev64_s64__) { 0xffffffffedd8e594 },
++  (__ev64_s64__) { 0xd9d58ce },
++  (__ev64_s64__) { 0xfffffffff4a8fb6d },
++  (__ev64_s64__) { 0xffffffffdae80f5b },
++  (__ev64_s64__) { 0xfffffffffd8baaa8 },
++  (__ev64_s64__) { 0xffffffffd7b1402f },
++  (__ev64_s64__) { 0x5f297bc },
++  (__ev64_s64__) { 0xfffffffffd783813 },
++  (__ev64_s64__) { 0x1abe85a },
++  (__ev64_s64__) { 0xfffffffff834483c },
++  (__ev64_s64__) { 0xffffffffefbee28a },
++  (__ev64_s64__) { 0xffffffffde93dbe4 },
++  (__ev64_s64__) { 0x3b065bc },
++  (__ev64_s64__) { 0xfffffffffdf65313 },
++  (__ev64_s64__) { 0x63b42d1 },
++  (__ev64_s64__) { 0x26602b9e },
++  (__ev64_s64__) { 0xfffffffffe8a1f40 },
++  (__ev64_s64__) { 0x17d1e831 },
++  (__ev64_s64__) { 0xfffffffffeacaa6c },
++  (__ev64_s64__) { 0xffffffffed5c6155 },
++  (__ev64_s64__) { 0x10db172f },
++  (__ev64_s64__) { 0x19c4d1b9 },
++  (__ev64_s64__) { 0x26be73d },
++  (__ev64_s64__) { 0xe023ec },
++  (__ev64_s64__) { 0x1d25e294 },
++  (__ev64_s64__) { 0x18db0060 },
++  (__ev64_s64__) { 0x4bd0053 },
++  (__ev64_s64__) { 0x14cd4f20 },
++  (__ev64_s64__) { 0xffffffffd28a0058 },
++  (__ev64_s64__) { 0x2c6b41 },
++  (__ev64_s64__) { 0x4d2ab2 },
++  (__ev64_s64__) { 0xbc69034 },
++  (__ev64_s64__) { 0xfffffffffd0b35d8 },
++  (__ev64_s64__) { 0x25d78fa },
++  (__ev64_s64__) { 0x14fa21df },
++  (__ev64_s64__) { 0x11494f29 },
++  (__ev64_s64__) { 0xffffffffff7c4e85 },
++  (__ev64_s64__) { 0xffffffffee842b02 },
++
++};
++#endif // __SPE__
++
++int evmhogsmiaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhogsmiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogsmiaa_baseline[i][0]);
++#endif
++    // Verify that evmhogsmiaa wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogsmiaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogsmiaa_asm, "evmhogsmiaa");
++
++#if 0
++/* TODO: MYSTERY!
++   If we uncomment this and make evmhogsmian_baseline[] a global array,
++   we get this weird situation where:
++
++16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:14397)
++
++   changes to:
++
++64 bytes in 1 blocks are possibly lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:17093)
++
++16,320 bytes in 255 blocks are definitely lost in loss record ... of ...
++   at 0x........: calloc (vg_replace_malloc.c:...)
++   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
++   by 0x........: run (test_spe.h:43)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: run (test_spe.h:49)
++   by 0x........: main (test_spe.c:17093)
++
++   Why? we are not sure. Come back and debug this.
++*/
++#ifdef __SPE__
++__ev64_s64__ evmhogsmian_baseline[] = {
++
++  (__ev64_s64__) { 0x2bd53dd },
++  (__ev64_s64__) { 0xffffffffce0d49bc },
++  (__ev64_s64__) { 0x495a02c },
++  (__ev64_s64__) { 0xfffffffff01f253c },
++  (__ev64_s64__) { 0x2292abb8 },
++  (__ev64_s64__) { 0x82c7466 },
++  (__ev64_s64__) { 0x54d4770 },
++  (__ev64_s64__) { 0x357a320 },
++  (__ev64_s64__) { 0xffffffffec607ead },
++  (__ev64_s64__) { 0x1144343e },
++  (__ev64_s64__) { 0xfffffffff085dbae },
++  (__ev64_s64__) { 0x7c0967a },
++  (__ev64_s64__) { 0xffffffffff4dd4b4 },
++  (__ev64_s64__) { 0xfffffffffd10babe },
++  (__ev64_s64__) { 0xfffffffffc9796b4 },
++  (__ev64_s64__) { 0xfffffffff8bba612 },
++  (__ev64_s64__) { 0xffffffffe0796574 },
++  (__ev64_s64__) { 0xffffffffd93b6702 },
++  (__ev64_s64__) { 0xffffffffe3249266 },
++  (__ev64_s64__) { 0xfffffffff9f4840c },
++  (__ev64_s64__) { 0xfffffffff60cb4a2 },
++  (__ev64_s64__) { 0x52dc240 },
++  (__ev64_s64__) { 0xffffffffff50dfb2 },
++  (__ev64_s64__) { 0x25f32a3e },
++  (__ev64_s64__) { 0xfffffffff616ed08 },
++  (__ev64_s64__) { 0x20d2c60a },
++  (__ev64_s64__) { 0xffffffffd3038670 },
++  (__ev64_s64__) { 0x11c501fe },
++  (__ev64_s64__) { 0xffffffffe973c5b0 },
++  (__ev64_s64__) { 0x5d6d701 },
++  (__ev64_s64__) { 0x2e5a1b80 },
++  (__ev64_s64__) { 0x11eed3d9 },
++  (__ev64_s64__) { 0x1a01de65 },
++  (__ev64_s64__) { 0x19ad6ea },
++  (__ev64_s64__) { 0x12cad738 },
++  (__ev64_s64__) { 0xffffffffd18e75cc },
++  (__ev64_s64__) { 0xffffffffd7c7183a },
++  (__ev64_s64__) { 0x154542d6 },
++  (__ev64_s64__) { 0xffffffffed9cd388 },
++  (__ev64_s64__) { 0x1fb4bd0e },
++  (__ev64_s64__) { 0x1d81ce80 },
++  (__ev64_s64__) { 0xfffffffffba3e4ee },
++  (__ev64_s64__) { 0x1a15cd48 },
++  (__ev64_s64__) { 0x1100e278 },
++  (__ev64_s64__) { 0xfffffffffdea81a0 },
++  (__ev64_s64__) { 0xffffffffffd40e08 },
++  (__ev64_s64__) { 0xffffffffefb3696e },
++  (__ev64_s64__) { 0xffffffffe42da896 },
++  (__ev64_s64__) { 0xffffffffef9e2ba1 },
++  (__ev64_s64__) { 0xfffffffffde803a9 },
++  (__ev64_s64__) { 0xffffffffe8cc473c },
++  (__ev64_s64__) { 0xfffffffffca3758b },
++  (__ev64_s64__) { 0x181bd8ca },
++  (__ev64_s64__) { 0x6c8bf79 },
++  (__ev64_s64__) { 0x46df678 },
++  (__ev64_s64__) { 0xfffffffff5d70e82 },
++  (__ev64_s64__) { 0x1ce084da },
++  (__ev64_s64__) { 0x1a082014 },
++  (__ev64_s64__) { 0x11b7aae8 },
++  (__ev64_s64__) { 0x10661574 },
++  (__ev64_s64__) { 0x5c6688 },
++  (__ev64_s64__) { 0xf95bcac },
++  (__ev64_s64__) { 0xe1e31c0 },
++  (__ev64_s64__) { 0x345f1fbb },
++  (__ev64_s64__) { 0xffffffffffee7275 },
++  (__ev64_s64__) { 0x112cd556 },
++  (__ev64_s64__) { 0xb304c0 },
++  (__ev64_s64__) { 0xfffffffffd0250f6 },
++  (__ev64_s64__) { 0xffffffffff66b566 },
++  (__ev64_s64__) { 0xfffffffffefc5f9e },
++  (__ev64_s64__) { 0x5ef30c8 },
++  (__ev64_s64__) { 0x127f1538 },
++  (__ev64_s64__) { 0xdb8eec5 },
++  (__ev64_s64__) { 0xffffffffffbf2a3e },
++  (__ev64_s64__) { 0xffffffffee2908c0 },
++  (__ev64_s64__) { 0xffffffffe5944640 },
++  (__ev64_s64__) { 0xb5eef20 },
++  (__ev64_s64__) { 0xffffffffc9999040 },
++  (__ev64_s64__) { 0x4602864 },
++  (__ev64_s64__) { 0xfffffffff3fad040 },
++  (__ev64_s64__) { 0x41aa3fb },
++  (__ev64_s64__) { 0xfffffffff5e427b0 },
++  (__ev64_s64__) { 0x4b0ff74 },
++  (__ev64_s64__) { 0x6ab1917 },
++  (__ev64_s64__) { 0x1114fb68 },
++  (__ev64_s64__) { 0x32e038c },
++  (__ev64_s64__) { 0xfffffffff6464e24 },
++  (__ev64_s64__) { 0xfffffffff52b1b38 },
++  (__ev64_s64__) { 0xffffffffe5b0ed7c },
++  (__ev64_s64__) { 0xffffffffe3f2b228 },
++  (__ev64_s64__) { 0xffffffffef326f60 },
++  (__ev64_s64__) { 0x251507ca },
++  (__ev64_s64__) { 0xffffffffd13f59c3 },
++  (__ev64_s64__) { 0xffffffffdfde9dae },
++  (__ev64_s64__) { 0x3465114 },
++  (__ev64_s64__) { 0xfffffffff2027f8c },
++  (__ev64_s64__) { 0xffffffffea913738 },
++  (__ev64_s64__) { 0x499500 },
++  (__ev64_s64__) { 0xffffffffeb95d438 },
++  (__ev64_s64__) { 0xfffffffff61f584c },
++  (__ev64_s64__) { 0xffffffffdee2891c },
++  (__ev64_s64__) { 0xffffffffe130c36c },
++  (__ev64_s64__) { 0xffffffffed6f67f0 },
++  (__ev64_s64__) { 0xfffffffffebc3edf },
++  (__ev64_s64__) { 0xfffffffffd3ae378 },
++  (__ev64_s64__) { 0x339c2f6d },
++  (__ev64_s64__) { 0xffffffffeff52038 },
++  (__ev64_s64__) { 0xfffffffffff3709c },
++  (__ev64_s64__) { 0xffffffffea232eec },
++  (__ev64_s64__) { 0xfffffffffa4f52dc },
++  (__ev64_s64__) { 0x3812bc6 },
++  (__ev64_s64__) { 0x1965eeca },
++  (__ev64_s64__) { 0x8013b5c },
++  (__ev64_s64__) { 0xfffffffff88c11a0 },
++  (__ev64_s64__) { 0xfffffffff81ed0ae },
++  (__ev64_s64__) { 0x1fb50ca },
++  (__ev64_s64__) { 0x1fd7b8 },
++  (__ev64_s64__) { 0xffffffffeda92b00 },
++  (__ev64_s64__) { 0x26bdaaa4 },
++  (__ev64_s64__) { 0x77b3f8c },
++  (__ev64_s64__) { 0xffffffffec9202d2 },
++  (__ev64_s64__) { 0x14b4508c },
++  (__ev64_s64__) { 0x27b32a7 },
++  (__ev64_s64__) { 0xd1c8f50 },
++  (__ev64_s64__) { 0x49506 },
++  (__ev64_s64__) { 0x2279df18 },
++  (__ev64_s64__) { 0xb013f41 },
++  (__ev64_s64__) { 0x8fbb960 },
++  (__ev64_s64__) { 0x78b06d1 },
++  (__ev64_s64__) { 0x1d02e23e },
++  (__ev64_s64__) { 0xfffffffff2054f24 },
++  (__ev64_s64__) { 0xffffffffece3613e },
++  (__ev64_s64__) { 0x7d2f930 },
++  (__ev64_s64__) { 0x12b16753 },
++  (__ev64_s64__) { 0x15628d4 },
++  (__ev64_s64__) { 0xfffffffffd118ce8 },
++  (__ev64_s64__) { 0x14f6d050 },
++  (__ev64_s64__) { 0x2524a4b2 },
++  (__ev64_s64__) { 0x1035401 },
++  (__ev64_s64__) { 0x354c3a8 },
++  (__ev64_s64__) { 0x31bd75b0 },
++  (__ev64_s64__) { 0x17f4492a },
++  (__ev64_s64__) { 0xfffffffffeeacbc0 },
++  (__ev64_s64__) { 0x392b4a },
++  (__ev64_s64__) { 0xffffffffef36d4c3 },
++  (__ev64_s64__) { 0x3443a00 },
++  (__ev64_s64__) { 0x8f5546e },
++  (__ev64_s64__) { 0x10683cd0 },
++  (__ev64_s64__) { 0xf8edc85 },
++  (__ev64_s64__) { 0xffffffffffdea108 },
++  (__ev64_s64__) { 0x2f33bf6 },
++  (__ev64_s64__) { 0x1fd4690 },
++  (__ev64_s64__) { 0xfffffffffa7382d3 },
++  (__ev64_s64__) { 0x17847f54 },
++  (__ev64_s64__) { 0xfffffffff867c058 },
++  (__ev64_s64__) { 0xffffffffe5108a5e },
++  (__ev64_s64__) { 0xfffffffffd26b47c },
++  (__ev64_s64__) { 0xffffffffffadd0f4 },
++  (__ev64_s64__) { 0x1a921088 },
++  (__ev64_s64__) { 0xfffffffff942939d },
++  (__ev64_s64__) { 0x28245fc },
++  (__ev64_s64__) { 0xb9e8e4e },
++  (__ev64_s64__) { 0xfffffffff1fab6f6 },
++  (__ev64_s64__) { 0xffffffffee554084 },
++  (__ev64_s64__) { 0xa30bda6 },
++  (__ev64_s64__) { 0x8989b5a },
++  (__ev64_s64__) { 0xfffffffffffd3bb8 },
++  (__ev64_s64__) { 0xffffffffd3e28e50 },
++  (__ev64_s64__) { 0xfffffffff495e1f0 },
++  (__ev64_s64__) { 0x3e264b8 },
++  (__ev64_s64__) { 0xffffffffffa6292a },
++  (__ev64_s64__) { 0xfffffffffbba40eb },
++  (__ev64_s64__) { 0x29fceca0 },
++  (__ev64_s64__) { 0x16dec974 },
++  (__ev64_s64__) { 0x1ddf289c },
++  (__ev64_s64__) { 0x9bae2c0 },
++  (__ev64_s64__) { 0xffffffffe6c04164 },
++  (__ev64_s64__) { 0xffffffffec5d3414 },
++  (__ev64_s64__) { 0x2ad953 },
++  (__ev64_s64__) { 0xfffffffff81a4e10 },
++  (__ev64_s64__) { 0xfffffffffd3aa935 },
++  (__ev64_s64__) { 0x10ceef30 },
++  (__ev64_s64__) { 0xfffffffffcab77bd },
++  (__ev64_s64__) { 0xe4a7e08 },
++  (__ev64_s64__) { 0xffffffffd657e6cc },
++  (__ev64_s64__) { 0x20c9359c },
++  (__ev64_s64__) { 0xfffffffff250389a },
++  (__ev64_s64__) { 0x5b185b4 },
++  (__ev64_s64__) { 0xffffffffdd6f51e4 },
++  (__ev64_s64__) { 0xfffffffff34b4a4a },
++  (__ev64_s64__) { 0xfffffffff847530a },
++  (__ev64_s64__) { 0x243a4de },
++  (__ev64_s64__) { 0xffffffffe4f3dcd3 },
++  (__ev64_s64__) { 0xffffffffff0ae5e0 },
++  (__ev64_s64__) { 0x387b57c },
++  (__ev64_s64__) { 0xffffffffffcb5245 },
++  (__ev64_s64__) { 0x24f97c },
++  (__ev64_s64__) { 0x1277afa8 },
++  (__ev64_s64__) { 0xffffffffd7c50c48 },
++  (__ev64_s64__) { 0xffffffffff242281 },
++  (__ev64_s64__) { 0xffffffffe8d6eccb },
++  (__ev64_s64__) { 0xb9548d8 },
++  (__ev64_s64__) { 0xff8948e },
++  (__ev64_s64__) { 0xfffffffff7db0763 },
++  (__ev64_s64__) { 0x6a80056 },
++  (__ev64_s64__) { 0x90a37f2 },
++  (__ev64_s64__) { 0x2db5914f },
++  (__ev64_s64__) { 0xfffffffffa02a2fa },
++  (__ev64_s64__) { 0x167eb450 },
++  (__ev64_s64__) { 0xffffffffd9378f24 },
++  (__ev64_s64__) { 0xfffffffff4f7a0eb },
++  (__ev64_s64__) { 0xfffffffffec0ff1d },
++  (__ev64_s64__) { 0xbc701fe },
++  (__ev64_s64__) { 0xc2526a8 },
++  (__ev64_s64__) { 0x1ca67b8e },
++  (__ev64_s64__) { 0x5b2d938 },
++  (__ev64_s64__) { 0x6ec7c3 },
++  (__ev64_s64__) { 0x2fd630 },
++  (__ev64_s64__) { 0x12271a6c },
++  (__ev64_s64__) { 0xfffffffff262a732 },
++  (__ev64_s64__) { 0xb570493 },
++  (__ev64_s64__) { 0x2517f0a5 },
++  (__ev64_s64__) { 0x2745558 },
++  (__ev64_s64__) { 0x284ebfd1 },
++  (__ev64_s64__) { 0xfffffffffa0d6844 },
++  (__ev64_s64__) { 0x287c7ed },
++  (__ev64_s64__) { 0xfffffffffe5417a6 },
++  (__ev64_s64__) { 0x7cbb7c4 },
++  (__ev64_s64__) { 0x10411d76 },
++  (__ev64_s64__) { 0x216c241c },
++  (__ev64_s64__) { 0xfffffffffc4f9a44 },
++  (__ev64_s64__) { 0x209aced },
++  (__ev64_s64__) { 0xfffffffff9c4bd2f },
++  (__ev64_s64__) { 0xffffffffd99fd462 },
++  (__ev64_s64__) { 0x175e0c0 },
++  (__ev64_s64__) { 0xffffffffe82e17cf },
++  (__ev64_s64__) { 0x1535594 },
++  (__ev64_s64__) { 0x12a39eab },
++  (__ev64_s64__) { 0xffffffffef24e8d1 },
++  (__ev64_s64__) { 0xffffffffe63b2e47 },
++  (__ev64_s64__) { 0xfffffffffd9418c3 },
++  (__ev64_s64__) { 0xffffffffff1fdc14 },
++  (__ev64_s64__) { 0xffffffffe2da1d6c },
++  (__ev64_s64__) { 0xffffffffe724ffa0 },
++  (__ev64_s64__) { 0xfffffffffb42ffad },
++  (__ev64_s64__) { 0xffffffffeb32b0e0 },
++  (__ev64_s64__) { 0x2d75ffa8 },
++  (__ev64_s64__) { 0xffffffffffd394bf },
++  (__ev64_s64__) { 0xffffffffffb2d54e },
++  (__ev64_s64__) { 0xfffffffff4396fcc },
++  (__ev64_s64__) { 0x2f4ca28 },
++  (__ev64_s64__) { 0xfffffffffda28706 },
++  (__ev64_s64__) { 0xffffffffeb05de21 },
++  (__ev64_s64__) { 0xffffffffeeb6b0d7 },
++  (__ev64_s64__) { 0x83b17b },
++  (__ev64_s64__) { 0x117bd4fe },
++
++};
++#endif // __SPE__
++#endif
++
++int evmhogsmian_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++// TODO: This array is not intended to be local to this function, see note above.
++#if 1
++__ev64_s64__ evmhogsmian_baseline[] = {
++
++  (__ev64_s64__) { 0x2bd53dd },
++  (__ev64_s64__) { 0xffffffffce0d49bc },
++  (__ev64_s64__) { 0x495a02c },
++  (__ev64_s64__) { 0xfffffffff01f253c },
++  (__ev64_s64__) { 0x2292abb8 },
++  (__ev64_s64__) { 0x82c7466 },
++  (__ev64_s64__) { 0x54d4770 },
++  (__ev64_s64__) { 0x357a320 },
++  (__ev64_s64__) { 0xffffffffec607ead },
++  (__ev64_s64__) { 0x1144343e },
++  (__ev64_s64__) { 0xfffffffff085dbae },
++  (__ev64_s64__) { 0x7c0967a },
++  (__ev64_s64__) { 0xffffffffff4dd4b4 },
++  (__ev64_s64__) { 0xfffffffffd10babe },
++  (__ev64_s64__) { 0xfffffffffc9796b4 },
++  (__ev64_s64__) { 0xfffffffff8bba612 },
++  (__ev64_s64__) { 0xffffffffe0796574 },
++  (__ev64_s64__) { 0xffffffffd93b6702 },
++  (__ev64_s64__) { 0xffffffffe3249266 },
++  (__ev64_s64__) { 0xfffffffff9f4840c },
++  (__ev64_s64__) { 0xfffffffff60cb4a2 },
++  (__ev64_s64__) { 0x52dc240 },
++  (__ev64_s64__) { 0xffffffffff50dfb2 },
++  (__ev64_s64__) { 0x25f32a3e },
++  (__ev64_s64__) { 0xfffffffff616ed08 },
++  (__ev64_s64__) { 0x20d2c60a },
++  (__ev64_s64__) { 0xffffffffd3038670 },
++  (__ev64_s64__) { 0x11c501fe },
++  (__ev64_s64__) { 0xffffffffe973c5b0 },
++  (__ev64_s64__) { 0x5d6d701 },
++  (__ev64_s64__) { 0x2e5a1b80 },
++  (__ev64_s64__) { 0x11eed3d9 },
++  (__ev64_s64__) { 0x1a01de65 },
++  (__ev64_s64__) { 0x19ad6ea },
++  (__ev64_s64__) { 0x12cad738 },
++  (__ev64_s64__) { 0xffffffffd18e75cc },
++  (__ev64_s64__) { 0xffffffffd7c7183a },
++  (__ev64_s64__) { 0x154542d6 },
++  (__ev64_s64__) { 0xffffffffed9cd388 },
++  (__ev64_s64__) { 0x1fb4bd0e },
++  (__ev64_s64__) { 0x1d81ce80 },
++  (__ev64_s64__) { 0xfffffffffba3e4ee },
++  (__ev64_s64__) { 0x1a15cd48 },
++  (__ev64_s64__) { 0x1100e278 },
++  (__ev64_s64__) { 0xfffffffffdea81a0 },
++  (__ev64_s64__) { 0xffffffffffd40e08 },
++  (__ev64_s64__) { 0xffffffffefb3696e },
++  (__ev64_s64__) { 0xffffffffe42da896 },
++  (__ev64_s64__) { 0xffffffffef9e2ba1 },
++  (__ev64_s64__) { 0xfffffffffde803a9 },
++  (__ev64_s64__) { 0xffffffffe8cc473c },
++  (__ev64_s64__) { 0xfffffffffca3758b },
++  (__ev64_s64__) { 0x181bd8ca },
++  (__ev64_s64__) { 0x6c8bf79 },
++  (__ev64_s64__) { 0x46df678 },
++  (__ev64_s64__) { 0xfffffffff5d70e82 },
++  (__ev64_s64__) { 0x1ce084da },
++  (__ev64_s64__) { 0x1a082014 },
++  (__ev64_s64__) { 0x11b7aae8 },
++  (__ev64_s64__) { 0x10661574 },
++  (__ev64_s64__) { 0x5c6688 },
++  (__ev64_s64__) { 0xf95bcac },
++  (__ev64_s64__) { 0xe1e31c0 },
++  (__ev64_s64__) { 0x345f1fbb },
++  (__ev64_s64__) { 0xffffffffffee7275 },
++  (__ev64_s64__) { 0x112cd556 },
++  (__ev64_s64__) { 0xb304c0 },
++  (__ev64_s64__) { 0xfffffffffd0250f6 },
++  (__ev64_s64__) { 0xffffffffff66b566 },
++  (__ev64_s64__) { 0xfffffffffefc5f9e },
++  (__ev64_s64__) { 0x5ef30c8 },
++  (__ev64_s64__) { 0x127f1538 },
++  (__ev64_s64__) { 0xdb8eec5 },
++  (__ev64_s64__) { 0xffffffffffbf2a3e },
++  (__ev64_s64__) { 0xffffffffee2908c0 },
++  (__ev64_s64__) { 0xffffffffe5944640 },
++  (__ev64_s64__) { 0xb5eef20 },
++  (__ev64_s64__) { 0xffffffffc9999040 },
++  (__ev64_s64__) { 0x4602864 },
++  (__ev64_s64__) { 0xfffffffff3fad040 },
++  (__ev64_s64__) { 0x41aa3fb },
++  (__ev64_s64__) { 0xfffffffff5e427b0 },
++  (__ev64_s64__) { 0x4b0ff74 },
++  (__ev64_s64__) { 0x6ab1917 },
++  (__ev64_s64__) { 0x1114fb68 },
++  (__ev64_s64__) { 0x32e038c },
++  (__ev64_s64__) { 0xfffffffff6464e24 },
++  (__ev64_s64__) { 0xfffffffff52b1b38 },
++  (__ev64_s64__) { 0xffffffffe5b0ed7c },
++  (__ev64_s64__) { 0xffffffffe3f2b228 },
++  (__ev64_s64__) { 0xffffffffef326f60 },
++  (__ev64_s64__) { 0x251507ca },
++  (__ev64_s64__) { 0xffffffffd13f59c3 },
++  (__ev64_s64__) { 0xffffffffdfde9dae },
++  (__ev64_s64__) { 0x3465114 },
++  (__ev64_s64__) { 0xfffffffff2027f8c },
++  (__ev64_s64__) { 0xffffffffea913738 },
++  (__ev64_s64__) { 0x499500 },
++  (__ev64_s64__) { 0xffffffffeb95d438 },
++  (__ev64_s64__) { 0xfffffffff61f584c },
++  (__ev64_s64__) { 0xffffffffdee2891c },
++  (__ev64_s64__) { 0xffffffffe130c36c },
++  (__ev64_s64__) { 0xffffffffed6f67f0 },
++  (__ev64_s64__) { 0xfffffffffebc3edf },
++  (__ev64_s64__) { 0xfffffffffd3ae378 },
++  (__ev64_s64__) { 0x339c2f6d },
++  (__ev64_s64__) { 0xffffffffeff52038 },
++  (__ev64_s64__) { 0xfffffffffff3709c },
++  (__ev64_s64__) { 0xffffffffea232eec },
++  (__ev64_s64__) { 0xfffffffffa4f52dc },
++  (__ev64_s64__) { 0x3812bc6 },
++  (__ev64_s64__) { 0x1965eeca },
++  (__ev64_s64__) { 0x8013b5c },
++  (__ev64_s64__) { 0xfffffffff88c11a0 },
++  (__ev64_s64__) { 0xfffffffff81ed0ae },
++  (__ev64_s64__) { 0x1fb50ca },
++  (__ev64_s64__) { 0x1fd7b8 },
++  (__ev64_s64__) { 0xffffffffeda92b00 },
++  (__ev64_s64__) { 0x26bdaaa4 },
++  (__ev64_s64__) { 0x77b3f8c },
++  (__ev64_s64__) { 0xffffffffec9202d2 },
++  (__ev64_s64__) { 0x14b4508c },
++  (__ev64_s64__) { 0x27b32a7 },
++  (__ev64_s64__) { 0xd1c8f50 },
++  (__ev64_s64__) { 0x49506 },
++  (__ev64_s64__) { 0x2279df18 },
++  (__ev64_s64__) { 0xb013f41 },
++  (__ev64_s64__) { 0x8fbb960 },
++  (__ev64_s64__) { 0x78b06d1 },
++  (__ev64_s64__) { 0x1d02e23e },
++  (__ev64_s64__) { 0xfffffffff2054f24 },
++  (__ev64_s64__) { 0xffffffffece3613e },
++  (__ev64_s64__) { 0x7d2f930 },
++  (__ev64_s64__) { 0x12b16753 },
++  (__ev64_s64__) { 0x15628d4 },
++  (__ev64_s64__) { 0xfffffffffd118ce8 },
++  (__ev64_s64__) { 0x14f6d050 },
++  (__ev64_s64__) { 0x2524a4b2 },
++  (__ev64_s64__) { 0x1035401 },
++  (__ev64_s64__) { 0x354c3a8 },
++  (__ev64_s64__) { 0x31bd75b0 },
++  (__ev64_s64__) { 0x17f4492a },
++  (__ev64_s64__) { 0xfffffffffeeacbc0 },
++  (__ev64_s64__) { 0x392b4a },
++  (__ev64_s64__) { 0xffffffffef36d4c3 },
++  (__ev64_s64__) { 0x3443a00 },
++  (__ev64_s64__) { 0x8f5546e },
++  (__ev64_s64__) { 0x10683cd0 },
++  (__ev64_s64__) { 0xf8edc85 },
++  (__ev64_s64__) { 0xffffffffffdea108 },
++  (__ev64_s64__) { 0x2f33bf6 },
++  (__ev64_s64__) { 0x1fd4690 },
++  (__ev64_s64__) { 0xfffffffffa7382d3 },
++  (__ev64_s64__) { 0x17847f54 },
++  (__ev64_s64__) { 0xfffffffff867c058 },
++  (__ev64_s64__) { 0xffffffffe5108a5e },
++  (__ev64_s64__) { 0xfffffffffd26b47c },
++  (__ev64_s64__) { 0xffffffffffadd0f4 },
++  (__ev64_s64__) { 0x1a921088 },
++  (__ev64_s64__) { 0xfffffffff942939d },
++  (__ev64_s64__) { 0x28245fc },
++  (__ev64_s64__) { 0xb9e8e4e },
++  (__ev64_s64__) { 0xfffffffff1fab6f6 },
++  (__ev64_s64__) { 0xffffffffee554084 },
++  (__ev64_s64__) { 0xa30bda6 },
++  (__ev64_s64__) { 0x8989b5a },
++  (__ev64_s64__) { 0xfffffffffffd3bb8 },
++  (__ev64_s64__) { 0xffffffffd3e28e50 },
++  (__ev64_s64__) { 0xfffffffff495e1f0 },
++  (__ev64_s64__) { 0x3e264b8 },
++  (__ev64_s64__) { 0xffffffffffa6292a },
++  (__ev64_s64__) { 0xfffffffffbba40eb },
++  (__ev64_s64__) { 0x29fceca0 },
++  (__ev64_s64__) { 0x16dec974 },
++  (__ev64_s64__) { 0x1ddf289c },
++  (__ev64_s64__) { 0x9bae2c0 },
++  (__ev64_s64__) { 0xffffffffe6c04164 },
++  (__ev64_s64__) { 0xffffffffec5d3414 },
++  (__ev64_s64__) { 0x2ad953 },
++  (__ev64_s64__) { 0xfffffffff81a4e10 },
++  (__ev64_s64__) { 0xfffffffffd3aa935 },
++  (__ev64_s64__) { 0x10ceef30 },
++  (__ev64_s64__) { 0xfffffffffcab77bd },
++  (__ev64_s64__) { 0xe4a7e08 },
++  (__ev64_s64__) { 0xffffffffd657e6cc },
++  (__ev64_s64__) { 0x20c9359c },
++  (__ev64_s64__) { 0xfffffffff250389a },
++  (__ev64_s64__) { 0x5b185b4 },
++  (__ev64_s64__) { 0xffffffffdd6f51e4 },
++  (__ev64_s64__) { 0xfffffffff34b4a4a },
++  (__ev64_s64__) { 0xfffffffff847530a },
++  (__ev64_s64__) { 0x243a4de },
++  (__ev64_s64__) { 0xffffffffe4f3dcd3 },
++  (__ev64_s64__) { 0xffffffffff0ae5e0 },
++  (__ev64_s64__) { 0x387b57c },
++  (__ev64_s64__) { 0xffffffffffcb5245 },
++  (__ev64_s64__) { 0x24f97c },
++  (__ev64_s64__) { 0x1277afa8 },
++  (__ev64_s64__) { 0xffffffffd7c50c48 },
++  (__ev64_s64__) { 0xffffffffff242281 },
++  (__ev64_s64__) { 0xffffffffe8d6eccb },
++  (__ev64_s64__) { 0xb9548d8 },
++  (__ev64_s64__) { 0xff8948e },
++  (__ev64_s64__) { 0xfffffffff7db0763 },
++  (__ev64_s64__) { 0x6a80056 },
++  (__ev64_s64__) { 0x90a37f2 },
++  (__ev64_s64__) { 0x2db5914f },
++  (__ev64_s64__) { 0xfffffffffa02a2fa },
++  (__ev64_s64__) { 0x167eb450 },
++  (__ev64_s64__) { 0xffffffffd9378f24 },
++  (__ev64_s64__) { 0xfffffffff4f7a0eb },
++  (__ev64_s64__) { 0xfffffffffec0ff1d },
++  (__ev64_s64__) { 0xbc701fe },
++  (__ev64_s64__) { 0xc2526a8 },
++  (__ev64_s64__) { 0x1ca67b8e },
++  (__ev64_s64__) { 0x5b2d938 },
++  (__ev64_s64__) { 0x6ec7c3 },
++  (__ev64_s64__) { 0x2fd630 },
++  (__ev64_s64__) { 0x12271a6c },
++  (__ev64_s64__) { 0xfffffffff262a732 },
++  (__ev64_s64__) { 0xb570493 },
++  (__ev64_s64__) { 0x2517f0a5 },
++  (__ev64_s64__) { 0x2745558 },
++  (__ev64_s64__) { 0x284ebfd1 },
++  (__ev64_s64__) { 0xfffffffffa0d6844 },
++  (__ev64_s64__) { 0x287c7ed },
++  (__ev64_s64__) { 0xfffffffffe5417a6 },
++  (__ev64_s64__) { 0x7cbb7c4 },
++  (__ev64_s64__) { 0x10411d76 },
++  (__ev64_s64__) { 0x216c241c },
++  (__ev64_s64__) { 0xfffffffffc4f9a44 },
++  (__ev64_s64__) { 0x209aced },
++  (__ev64_s64__) { 0xfffffffff9c4bd2f },
++  (__ev64_s64__) { 0xffffffffd99fd462 },
++  (__ev64_s64__) { 0x175e0c0 },
++  (__ev64_s64__) { 0xffffffffe82e17cf },
++  (__ev64_s64__) { 0x1535594 },
++  (__ev64_s64__) { 0x12a39eab },
++  (__ev64_s64__) { 0xffffffffef24e8d1 },
++  (__ev64_s64__) { 0xffffffffe63b2e47 },
++  (__ev64_s64__) { 0xfffffffffd9418c3 },
++  (__ev64_s64__) { 0xffffffffff1fdc14 },
++  (__ev64_s64__) { 0xffffffffe2da1d6c },
++  (__ev64_s64__) { 0xffffffffe724ffa0 },
++  (__ev64_s64__) { 0xfffffffffb42ffad },
++  (__ev64_s64__) { 0xffffffffeb32b0e0 },
++  (__ev64_s64__) { 0x2d75ffa8 },
++  (__ev64_s64__) { 0xffffffffffd394bf },
++  (__ev64_s64__) { 0xffffffffffb2d54e },
++  (__ev64_s64__) { 0xfffffffff4396fcc },
++  (__ev64_s64__) { 0x2f4ca28 },
++  (__ev64_s64__) { 0xfffffffffda28706 },
++  (__ev64_s64__) { 0xffffffffeb05de21 },
++  (__ev64_s64__) { 0xffffffffeeb6b0d7 },
++  (__ev64_s64__) { 0x83b17b },
++  (__ev64_s64__) { 0x117bd4fe },
++
++};
++#endif
++  register __ev64_s16__ regA asm ("30");
++  register __ev64_s16__ regB asm ("29");
++  register __ev64_s64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4s16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4s16[i];
++    regB = rB4s16[i];
++
++    asm volatile ("evmhogsmian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_s64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogsmian_baseline[i][0]);
++#endif
++    // Verify that evmhogsmian wrote into the ACC:
++    regD = (__ev64_s64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogsmian_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogsmian_asm, "evmhogsmian");
++
++#ifdef __SPE__
++__ev64_u64__ evmhogumiaa_baseline[] = {
++
++  (__ev64_u64__) { 0xfeb9824 },
++  (__ev64_u64__) { 0x26a449af },
++  (__ev64_u64__) { 0x6e7e042 },
++  (__ev64_u64__) { 0x56ae6bec },
++  (__ev64_u64__) { 0x37dfaa44 },
++  (__ev64_u64__) { 0x48c3316d },
++  (__ev64_u64__) { 0x55edc212 },
++  (__ev64_u64__) { 0x1e9e8a56 },
++  (__ev64_u64__) { 0x5d7884c },
++  (__ev64_u64__) { 0x3f6bb928 },
++  (__ev64_u64__) { 0x35987bd9 },
++  (__ev64_u64__) { 0x2b076b2 },
++  (__ev64_u64__) { 0x38c0176f },
++  (__ev64_u64__) { 0x94809f0 },
++  (__ev64_u64__) { 0x22fd2988 },
++  (__ev64_u64__) { 0x5c98c0c },
++  (__ev64_u64__) { 0x2ff18103 },
++  (__ev64_u64__) { 0x45e5b5c2 },
++  (__ev64_u64__) { 0x11b93e5c },
++  (__ev64_u64__) { 0x12bacbdf },
++  (__ev64_u64__) { 0x8a8b3848 },
++  (__ev64_u64__) { 0x6be6b6d9 },
++  (__ev64_u64__) { 0x5809d4bd },
++  (__ev64_u64__) { 0x5372c394 },
++  (__ev64_u64__) { 0x4ba627c8 },
++  (__ev64_u64__) { 0x70548407 },
++  (__ev64_u64__) { 0xce6978e8 },
++  (__ev64_u64__) { 0x29b8d7c8 },
++  (__ev64_u64__) { 0x545b32a0 },
++  (__ev64_u64__) { 0x2c6a41bf },
++  (__ev64_u64__) { 0x962ee4b },
++  (__ev64_u64__) { 0xdfa8934 },
++  (__ev64_u64__) { 0x5a7aea4f },
++  (__ev64_u64__) { 0xef61898 },
++  (__ev64_u64__) { 0x2ae87a2a },
++  (__ev64_u64__) { 0x88431211 },
++  (__ev64_u64__) { 0x1d7606d8 },
++  (__ev64_u64__) { 0x193ff4a4 },
++  (__ev64_u64__) { 0x81e132ce },
++  (__ev64_u64__) { 0xe1f3cd3 },
++  (__ev64_u64__) { 0x6a18fd2 },
++  (__ev64_u64__) { 0x1a0ccf3c },
++  (__ev64_u64__) { 0xeffe308 },
++  (__ev64_u64__) { 0xa0b4ca4c },
++  (__ev64_u64__) { 0x12124a6b },
++  (__ev64_u64__) { 0xa0dbf08 },
++  (__ev64_u64__) { 0x5757a19 },
++  (__ev64_u64__) { 0x97380b8 },
++  (__ev64_u64__) { 0x517a9790 },
++  (__ev64_u64__) { 0x31f71882 },
++  (__ev64_u64__) { 0x58a69d10 },
++  (__ev64_u64__) { 0xda4a48cb },
++  (__ev64_u64__) { 0x1abefd42 },
++  (__ev64_u64__) { 0x3267f780 },
++  (__ev64_u64__) { 0x1f620cfe },
++  (__ev64_u64__) { 0x91e456fc },
++  (__ev64_u64__) { 0x22511a9f },
++  (__ev64_u64__) { 0x4ad9487a },
++  (__ev64_u64__) { 0x42530bbc },
++  (__ev64_u64__) { 0x1d723c5a },
++  (__ev64_u64__) { 0x1945e98 },
++  (__ev64_u64__) { 0x14759a86 },
++  (__ev64_u64__) { 0x38a43935 },
++  (__ev64_u64__) { 0x22656928 },
++  (__ev64_u64__) { 0x24085cb4 },
++  (__ev64_u64__) { 0x1d78eb09 },
++  (__ev64_u64__) { 0x43352d7e },
++  (__ev64_u64__) { 0x1e6d83e7 },
++  (__ev64_u64__) { 0x5fb9eb64 },
++  (__ev64_u64__) { 0x16494320 },
++  (__ev64_u64__) { 0x5166f60 },
++  (__ev64_u64__) { 0xc9da5e5d },
++  (__ev64_u64__) { 0x2ad20ad5 },
++  (__ev64_u64__) { 0x8bfa18ce },
++  (__ev64_u64__) { 0xc25de0b },
++  (__ev64_u64__) { 0x610e3b49 },
++  (__ev64_u64__) { 0x63db6238 },
++  (__ev64_u64__) { 0x89abfc10 },
++  (__ev64_u64__) { 0x253f0aff },
++  (__ev64_u64__) { 0xd8dde464 },
++  (__ev64_u64__) { 0x1e89f86e },
++  (__ev64_u64__) { 0x1a38218c },
++  (__ev64_u64__) { 0x6586e0d4 },
++  (__ev64_u64__) { 0xe19ad948 },
++  (__ev64_u64__) { 0x223abfc0 },
++  (__ev64_u64__) { 0x2f12b076 },
++  (__ev64_u64__) { 0xd9111a19 },
++  (__ev64_u64__) { 0x48993150 },
++  (__ev64_u64__) { 0x4ef222d },
++  (__ev64_u64__) { 0xf847d6c },
++  (__ev64_u64__) { 0x101fad0 },
++  (__ev64_u64__) { 0xa133d1d4 },
++  (__ev64_u64__) { 0x8e894 },
++  (__ev64_u64__) { 0x3f882b58 },
++  (__ev64_u64__) { 0x8c81a618 },
++  (__ev64_u64__) { 0x26d6cf7e },
++  (__ev64_u64__) { 0x2766e190 },
++  (__ev64_u64__) { 0x265e006 },
++  (__ev64_u64__) { 0x221ffc80 },
++  (__ev64_u64__) { 0x78435711 },
++  (__ev64_u64__) { 0x1efcd7dd },
++  (__ev64_u64__) { 0x5fab6cc },
++  (__ev64_u64__) { 0xfdd1c90 },
++  (__ev64_u64__) { 0x1fad0b8 },
++  (__ev64_u64__) { 0x8790d411 },
++  (__ev64_u64__) { 0x6859e8be },
++  (__ev64_u64__) { 0xfee3101 },
++  (__ev64_u64__) { 0xbc5eb9e8 },
++  (__ev64_u64__) { 0xbc1cbaf },
++  (__ev64_u64__) { 0x457d204 },
++  (__ev64_u64__) { 0x27d22094 },
++  (__ev64_u64__) { 0x15e63bf8 },
++  (__ev64_u64__) { 0xc77a77e },
++  (__ev64_u64__) { 0x999f29f0 },
++  (__ev64_u64__) { 0xbbf0ab2 },
++  (__ev64_u64__) { 0xa7ea214 },
++  (__ev64_u64__) { 0x4d2ff533 },
++  (__ev64_u64__) { 0x866e9008 },
++  (__ev64_u64__) { 0x16fed6e4 },
++  (__ev64_u64__) { 0x800b1f56 },
++  (__ev64_u64__) { 0x54169fc },
++  (__ev64_u64__) { 0x44158e75 },
++  (__ev64_u64__) { 0x60350cea },
++  (__ev64_u64__) { 0xe45336f4 },
++  (__ev64_u64__) { 0x46c69653 },
++  (__ev64_u64__) { 0x19e74736 },
++  (__ev64_u64__) { 0x8f464db4 },
++  (__ev64_u64__) { 0x88f65972 },
++  (__ev64_u64__) { 0x165989d0 },
++  (__ev64_u64__) { 0x7c9da54 },
++  (__ev64_u64__) { 0x79f2eef2 },
++  (__ev64_u64__) { 0x34c3f15 },
++  (__ev64_u64__) { 0x1bc9d0b0 },
++  (__ev64_u64__) { 0x203cd18 },
++  (__ev64_u64__) { 0x6688025 },
++  (__ev64_u64__) { 0xaac59a8 },
++  (__ev64_u64__) { 0x15610230 },
++  (__ev64_u64__) { 0x270d38cf },
++  (__ev64_u64__) { 0x4e911f2e },
++  (__ev64_u64__) { 0x24e07460 },
++  (__ev64_u64__) { 0x2bc7dee8 },
++  (__ev64_u64__) { 0x43b56322 },
++  (__ev64_u64__) { 0x685fccb0 },
++  (__ev64_u64__) { 0x48b5182c },
++  (__ev64_u64__) { 0x5f8d244a },
++  (__ev64_u64__) { 0x67a1b55 },
++  (__ev64_u64__) { 0x408214b0 },
++  (__ev64_u64__) { 0x6ce92abc },
++  (__ev64_u64__) { 0x2bdb017e },
++  (__ev64_u64__) { 0x68c55cec },
++  (__ev64_u64__) { 0x99ef440 },
++  (__ev64_u64__) { 0x41b6339e },
++  (__ev64_u64__) { 0x2f68c29c },
++  (__ev64_u64__) { 0x246b31b8 },
++  (__ev64_u64__) { 0x1126f4ea },
++  (__ev64_u64__) { 0x3c700429 },
++  (__ev64_u64__) { 0x40f1887e },
++  (__ev64_u64__) { 0x66ee8b0 },
++  (__ev64_u64__) { 0x3c73a37c },
++  (__ev64_u64__) { 0x5e7cf091 },
++  (__ev64_u64__) { 0x7fbf6ae0 },
++  (__ev64_u64__) { 0x26a54dee },
++  (__ev64_u64__) { 0x56d2c58 },
++  (__ev64_u64__) { 0x2e671fe },
++  (__ev64_u64__) { 0x34fcc834 },
++  (__ev64_u64__) { 0x7c5dafe4 },
++  (__ev64_u64__) { 0x3adc856 },
++  (__ev64_u64__) { 0xb28236 },
++  (__ev64_u64__) { 0x2ec4c7cb },
++  (__ev64_u64__) { 0x6826fd64 },
++  (__ev64_u64__) { 0xf3c98a12 },
++  (__ev64_u64__) { 0x2ab69b0b },
++  (__ev64_u64__) { 0x2da50b85 },
++  (__ev64_u64__) { 0x4b800bdb },
++  (__ev64_u64__) { 0x8e4bc218 },
++  (__ev64_u64__) { 0x59650be0 },
++  (__ev64_u64__) { 0x1f478f46 },
++  (__ev64_u64__) { 0x3e014143 },
++  (__ev64_u64__) { 0x13a74744 },
++  (__ev64_u64__) { 0x99573750 },
++  (__ev64_u64__) { 0x5c07674 },
++  (__ev64_u64__) { 0xbd25ffd8 },
++  (__ev64_u64__) { 0xc9571b9 },
++  (__ev64_u64__) { 0x1924cbbc },
++  (__ev64_u64__) { 0x2198ccbe },
++  (__ev64_u64__) { 0x2089dfc1 },
++  (__ev64_u64__) { 0x20d47718 },
++  (__ev64_u64__) { 0xa0fbed0e },
++  (__ev64_u64__) { 0x1d6abc20 },
++  (__ev64_u64__) { 0x1a4a7490 },
++  (__ev64_u64__) { 0x8c9b9030 },
++  (__ev64_u64__) { 0x8b387698 },
++  (__ev64_u64__) { 0x1a6a8ae8 },
++  (__ev64_u64__) { 0x5dfa73e4 },
++  (__ev64_u64__) { 0x255f764d },
++  (__ev64_u64__) { 0x47b1acf },
++  (__ev64_u64__) { 0x34108e8 },
++  (__ev64_u64__) { 0x191e2b1c },
++  (__ev64_u64__) { 0xb311ca21 },
++  (__ev64_u64__) { 0x243d9d2 },
++  (__ev64_u64__) { 0x651a59b7 },
++  (__ev64_u64__) { 0x36b7c4d3 },
++  (__ev64_u64__) { 0x1d1ad620 },
++  (__ev64_u64__) { 0x31fe0b56 },
++  (__ev64_u64__) { 0x1b84a050 },
++  (__ev64_u64__) { 0x28c4388d },
++  (__ev64_u64__) { 0x24da2cb2 },
++  (__ev64_u64__) { 0x912794a },
++  (__ev64_u64__) { 0x9eefc10f },
++  (__ev64_u64__) { 0x2685a8d },
++  (__ev64_u64__) { 0x3b755769 },
++  (__ev64_u64__) { 0x475f5e50 },
++  (__ev64_u64__) { 0x4b42fba },
++  (__ev64_u64__) { 0x606be00b },
++  (__ev64_u64__) { 0x9ec1174 },
++  (__ev64_u64__) { 0x298caa18 },
++  (__ev64_u64__) { 0x156beeb2 },
++  (__ev64_u64__) { 0x36cd58ed },
++  (__ev64_u64__) { 0x4a53daa2 },
++  (__ev64_u64__) { 0x65452968 },
++  (__ev64_u64__) { 0x77a9a6b5 },
++  (__ev64_u64__) { 0x8b4bb5a },
++  (__ev64_u64__) { 0x5710501 },
++  (__ev64_u64__) { 0x21fcd6f5 },
++  (__ev64_u64__) { 0xd969ab9e },
++  (__ev64_u64__) { 0x3f2c95ce },
++  (__ev64_u64__) { 0x37600ca },
++  (__ev64_u64__) { 0x1e07406a },
++  (__ev64_u64__) { 0x1da0cba3 },
++  (__ev64_u64__) { 0xa815d890 },
++  (__ev64_u64__) { 0x5a01bae },
++  (__ev64_u64__) { 0x2276f3a0 },
++  (__ev64_u64__) { 0x5ced2a82 },
++  (__ev64_u64__) { 0x5063db4 },
++  (__ev64_u64__) { 0x2a18a469 },
++  (__ev64_u64__) { 0x5435e383 },
++  (__ev64_u64__) { 0xded1bb6 },
++  (__ev64_u64__) { 0x28034bc0 },
++  (__ev64_u64__) { 0x3135e6b9 },
++  (__ev64_u64__) { 0x4b673920 },
++  (__ev64_u64__) { 0x15dc9d6c },
++  (__ev64_u64__) { 0xad03af0c },
++  (__ev64_u64__) { 0x27436178 },
++  (__ev64_u64__) { 0x455494b8 },
++  (__ev64_u64__) { 0x7ac3d9a },
++  (__ev64_u64__) { 0x1a407e27 },
++  (__ev64_u64__) { 0x9a0e5f },
++  (__ev64_u64__) { 0x691b22f8 },
++  (__ev64_u64__) { 0x54cbdad4 },
++  (__ev64_u64__) { 0xad5ac50 },
++  (__ev64_u64__) { 0x8ec2c249 },
++  (__ev64_u64__) { 0x91c2812 },
++  (__ev64_u64__) { 0x71d77280 },
++  (__ev64_u64__) { 0x4bc030cf },
++  (__ev64_u64__) { 0xda342e60 },
++  (__ev64_u64__) { 0x1aa5ba4 },
++
++};
++#endif // __SPE__
++
++int evmhogumiaa_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhogumiaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogumiaa_baseline[i][0]);
++#endif
++    // Verify that evmhogumiaa wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogumiaa_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogumiaa_asm, "evmhogumiaa");
++
++#ifdef __SPE__
++__ev64_u64__ evmhogumian_baseline[] = {
++
++  (__ev64_u64__) { 0xfffffffff01467dc },
++  (__ev64_u64__) { 0xffffffffd95bb651 },
++  (__ev64_u64__) { 0xfffffffff9181fbe },
++  (__ev64_u64__) { 0xffffffffa9519414 },
++  (__ev64_u64__) { 0xffffffffc82055bc },
++  (__ev64_u64__) { 0xffffffffb73cce93 },
++  (__ev64_u64__) { 0xffffffffaa123dee },
++  (__ev64_u64__) { 0xffffffffe16175aa },
++  (__ev64_u64__) { 0xfffffffffa2877b4 },
++  (__ev64_u64__) { 0xffffffffc09446d8 },
++  (__ev64_u64__) { 0xffffffffca678427 },
++  (__ev64_u64__) { 0xfffffffffd4f894e },
++  (__ev64_u64__) { 0xffffffffc73fe891 },
++  (__ev64_u64__) { 0xfffffffff6b7f610 },
++  (__ev64_u64__) { 0xffffffffdd02d678 },
++  (__ev64_u64__) { 0xfffffffffa3673f4 },
++  (__ev64_u64__) { 0xffffffffd00e7efd },
++  (__ev64_u64__) { 0xffffffffba1a4a3e },
++  (__ev64_u64__) { 0xffffffffee46c1a4 },
++  (__ev64_u64__) { 0xffffffffed453421 },
++  (__ev64_u64__) { 0xffffffff7574c7b8 },
++  (__ev64_u64__) { 0xffffffff94194927 },
++  (__ev64_u64__) { 0xffffffffa7f62b43 },
++  (__ev64_u64__) { 0xffffffffac8d3c6c },
++  (__ev64_u64__) { 0xffffffffb459d838 },
++  (__ev64_u64__) { 0xffffffff8fab7bf9 },
++  (__ev64_u64__) { 0xffffffff31968718 },
++  (__ev64_u64__) { 0xffffffffd6472838 },
++  (__ev64_u64__) { 0xffffffffaba4cd60 },
++  (__ev64_u64__) { 0xffffffffd395be41 },
++  (__ev64_u64__) { 0xfffffffff69d11b5 },
++  (__ev64_u64__) { 0xfffffffff20576cc },
++  (__ev64_u64__) { 0xffffffffa58515b1 },
++  (__ev64_u64__) { 0xfffffffff109e768 },
++  (__ev64_u64__) { 0xffffffffd51785d6 },
++  (__ev64_u64__) { 0xffffffff77bcedef },
++  (__ev64_u64__) { 0xffffffffe289f928 },
++  (__ev64_u64__) { 0xffffffffe6c00b5c },
++  (__ev64_u64__) { 0xffffffff7e1ecd32 },
++  (__ev64_u64__) { 0xfffffffff1e0c32d },
++  (__ev64_u64__) { 0xfffffffff95e702e },
++  (__ev64_u64__) { 0xffffffffe5f330c4 },
++  (__ev64_u64__) { 0xfffffffff1001cf8 },
++  (__ev64_u64__) { 0xffffffff5f4b35b4 },
++  (__ev64_u64__) { 0xffffffffededb595 },
++  (__ev64_u64__) { 0xfffffffff5f240f8 },
++  (__ev64_u64__) { 0xfffffffffa8a85e7 },
++  (__ev64_u64__) { 0xfffffffff68c7f48 },
++  (__ev64_u64__) { 0xffffffffae856870 },
++  (__ev64_u64__) { 0xffffffffce08e77e },
++  (__ev64_u64__) { 0xffffffffa75962f0 },
++  (__ev64_u64__) { 0xffffffff25b5b735 },
++  (__ev64_u64__) { 0xffffffffe54102be },
++  (__ev64_u64__) { 0xffffffffcd980880 },
++  (__ev64_u64__) { 0xffffffffe09df302 },
++  (__ev64_u64__) { 0xffffffff6e1ba904 },
++  (__ev64_u64__) { 0xffffffffddaee561 },
++  (__ev64_u64__) { 0xffffffffb526b786 },
++  (__ev64_u64__) { 0xffffffffbdacf444 },
++  (__ev64_u64__) { 0xffffffffe28dc3a6 },
++  (__ev64_u64__) { 0xfffffffffe6ba168 },
++  (__ev64_u64__) { 0xffffffffeb8a657a },
++  (__ev64_u64__) { 0xffffffffc75bc6cb },
++  (__ev64_u64__) { 0xffffffffdd9a96d8 },
++  (__ev64_u64__) { 0xffffffffdbf7a34c },
++  (__ev64_u64__) { 0xffffffffe28714f7 },
++  (__ev64_u64__) { 0xffffffffbccad282 },
++  (__ev64_u64__) { 0xffffffffe1927c19 },
++  (__ev64_u64__) { 0xffffffffa046149c },
++  (__ev64_u64__) { 0xffffffffe9b6bce0 },
++  (__ev64_u64__) { 0xfffffffffae990a0 },
++  (__ev64_u64__) { 0xffffffff3625a1a3 },
++  (__ev64_u64__) { 0xffffffffd52df52b },
++  (__ev64_u64__) { 0xffffffff7405e732 },
++  (__ev64_u64__) { 0xfffffffff3da21f5 },
++  (__ev64_u64__) { 0xffffffff9ef1c4b7 },
++  (__ev64_u64__) { 0xffffffff9c249dc8 },
++  (__ev64_u64__) { 0xffffffff765403f0 },
++  (__ev64_u64__) { 0xffffffffdac0f501 },
++  (__ev64_u64__) { 0xffffffff27221b9c },
++  (__ev64_u64__) { 0xffffffffe1760792 },
++  (__ev64_u64__) { 0xffffffffe5c7de74 },
++  (__ev64_u64__) { 0xffffffff9a791f2c },
++  (__ev64_u64__) { 0xffffffff1e6526b8 },
++  (__ev64_u64__) { 0xffffffffddc54040 },
++  (__ev64_u64__) { 0xffffffffd0ed4f8a },
++  (__ev64_u64__) { 0xffffffff26eee5e7 },
++  (__ev64_u64__) { 0xffffffffb766ceb0 },
++  (__ev64_u64__) { 0xfffffffffb10ddd3 },
++  (__ev64_u64__) { 0xfffffffff07b8294 },
++  (__ev64_u64__) { 0xfffffffffefe0530 },
++  (__ev64_u64__) { 0xffffffff5ecc2e2c },
++  (__ev64_u64__) { 0xfffffffffff7176c },
++  (__ev64_u64__) { 0xffffffffc077d4a8 },
++  (__ev64_u64__) { 0xffffffff737e59e8 },
++  (__ev64_u64__) { 0xffffffffd9293082 },
++  (__ev64_u64__) { 0xffffffffd8991e70 },
++  (__ev64_u64__) { 0xfffffffffd9a1ffa },
++  (__ev64_u64__) { 0xffffffffdde00380 },
++  (__ev64_u64__) { 0xffffffff87bca8ef },
++  (__ev64_u64__) { 0xffffffffe1032823 },
++  (__ev64_u64__) { 0xfffffffffa054934 },
++  (__ev64_u64__) { 0xfffffffff022e370 },
++  (__ev64_u64__) { 0xfffffffffe052f48 },
++  (__ev64_u64__) { 0xffffffff786f2bef },
++  (__ev64_u64__) { 0xffffffff97a61742 },
++  (__ev64_u64__) { 0xfffffffff011ceff },
++  (__ev64_u64__) { 0xffffffff43a14618 },
++  (__ev64_u64__) { 0xfffffffff43e3451 },
++  (__ev64_u64__) { 0xfffffffffba82dfc },
++  (__ev64_u64__) { 0xffffffffd82ddf6c },
++  (__ev64_u64__) { 0xffffffffea19c408 },
++  (__ev64_u64__) { 0xfffffffff3885882 },
++  (__ev64_u64__) { 0xffffffff6660d610 },
++  (__ev64_u64__) { 0xfffffffff440f54e },
++  (__ev64_u64__) { 0xfffffffff5815dec },
++  (__ev64_u64__) { 0xffffffffb2d00acd },
++  (__ev64_u64__) { 0xffffffff79916ff8 },
++  (__ev64_u64__) { 0xffffffffe901291c },
++  (__ev64_u64__) { 0xffffffff7ff4e0aa },
++  (__ev64_u64__) { 0xfffffffffabe9604 },
++  (__ev64_u64__) { 0xffffffffbbea718b },
++  (__ev64_u64__) { 0xffffffff9fcaf316 },
++  (__ev64_u64__) { 0xffffffff1bacc90c },
++  (__ev64_u64__) { 0xffffffffb93969ad },
++  (__ev64_u64__) { 0xffffffffe618b8ca },
++  (__ev64_u64__) { 0xffffffff70b9b24c },
++  (__ev64_u64__) { 0xffffffff7709a68e },
++  (__ev64_u64__) { 0xffffffffe9a67630 },
++  (__ev64_u64__) { 0xfffffffff83625ac },
++  (__ev64_u64__) { 0xffffffff860d110e },
++  (__ev64_u64__) { 0xfffffffffcb3c0eb },
++  (__ev64_u64__) { 0xffffffffe4362f50 },
++  (__ev64_u64__) { 0xfffffffffdfc32e8 },
++  (__ev64_u64__) { 0xfffffffff9977fdb },
++  (__ev64_u64__) { 0xfffffffff553a658 },
++  (__ev64_u64__) { 0xffffffffea9efdd0 },
++  (__ev64_u64__) { 0xffffffffd8f2c731 },
++  (__ev64_u64__) { 0xffffffffb16ee0d2 },
++  (__ev64_u64__) { 0xffffffffdb1f8ba0 },
++  (__ev64_u64__) { 0xffffffffd4382118 },
++  (__ev64_u64__) { 0xffffffffbc4a9cde },
++  (__ev64_u64__) { 0xffffffff97a03350 },
++  (__ev64_u64__) { 0xffffffffb74ae7d4 },
++  (__ev64_u64__) { 0xffffffffa072dbb6 },
++  (__ev64_u64__) { 0xfffffffff985e4ab },
++  (__ev64_u64__) { 0xffffffffbf7deb50 },
++  (__ev64_u64__) { 0xffffffff9316d544 },
++  (__ev64_u64__) { 0xffffffffd424fe82 },
++  (__ev64_u64__) { 0xffffffff973aa314 },
++  (__ev64_u64__) { 0xfffffffff6610bc0 },
++  (__ev64_u64__) { 0xffffffffbe49cc62 },
++  (__ev64_u64__) { 0xffffffffd0973d64 },
++  (__ev64_u64__) { 0xffffffffdb94ce48 },
++  (__ev64_u64__) { 0xffffffffeed90b16 },
++  (__ev64_u64__) { 0xffffffffc38ffbd7 },
++  (__ev64_u64__) { 0xffffffffbf0e7782 },
++  (__ev64_u64__) { 0xfffffffff9911750 },
++  (__ev64_u64__) { 0xffffffffc38c5c84 },
++  (__ev64_u64__) { 0xffffffffa1830f6f },
++  (__ev64_u64__) { 0xffffffff80409520 },
++  (__ev64_u64__) { 0xffffffffd95ab212 },
++  (__ev64_u64__) { 0xfffffffffa92d3a8 },
++  (__ev64_u64__) { 0xfffffffffd198e02 },
++  (__ev64_u64__) { 0xffffffffcb0337cc },
++  (__ev64_u64__) { 0xffffffff83a2501c },
++  (__ev64_u64__) { 0xfffffffffc5237aa },
++  (__ev64_u64__) { 0xffffffffff4d7dca },
++  (__ev64_u64__) { 0xffffffffd13b3835 },
++  (__ev64_u64__) { 0xffffffff97d9029c },
++  (__ev64_u64__) { 0xffffffff0c3675ee },
++  (__ev64_u64__) { 0xffffffffd54964f5 },
++  (__ev64_u64__) { 0xffffffffd25af47b },
++  (__ev64_u64__) { 0xffffffffb47ff425 },
++  (__ev64_u64__) { 0xffffffff71b43de8 },
++  (__ev64_u64__) { 0xffffffffa69af420 },
++  (__ev64_u64__) { 0xffffffffe0b870ba },
++  (__ev64_u64__) { 0xffffffffc1febebd },
++  (__ev64_u64__) { 0xffffffffec58b8bc },
++  (__ev64_u64__) { 0xffffffff66a8c8b0 },
++  (__ev64_u64__) { 0xfffffffffa3f898c },
++  (__ev64_u64__) { 0xffffffff42da0028 },
++  (__ev64_u64__) { 0xfffffffff36a8e47 },
++  (__ev64_u64__) { 0xffffffffe6db3444 },
++  (__ev64_u64__) { 0xffffffffde673342 },
++  (__ev64_u64__) { 0xffffffffdf76203f },
++  (__ev64_u64__) { 0xffffffffdf2b88e8 },
++  (__ev64_u64__) { 0xffffffff5f0412f2 },
++  (__ev64_u64__) { 0xffffffffe29543e0 },
++  (__ev64_u64__) { 0xffffffffe5b58b70 },
++  (__ev64_u64__) { 0xffffffff73646fd0 },
++  (__ev64_u64__) { 0xffffffff74c78968 },
++  (__ev64_u64__) { 0xffffffffe5957518 },
++  (__ev64_u64__) { 0xffffffffa2058c1c },
++  (__ev64_u64__) { 0xffffffffdaa089b3 },
++  (__ev64_u64__) { 0xfffffffffb84e531 },
++  (__ev64_u64__) { 0xfffffffffcbef718 },
++  (__ev64_u64__) { 0xffffffffe6e1d4e4 },
++  (__ev64_u64__) { 0xffffffff4cee35df },
++  (__ev64_u64__) { 0xfffffffffdbc262e },
++  (__ev64_u64__) { 0xffffffff9ae5a649 },
++  (__ev64_u64__) { 0xffffffffc9483b2d },
++  (__ev64_u64__) { 0xffffffffe2e529e0 },
++  (__ev64_u64__) { 0xffffffffce01f4aa },
++  (__ev64_u64__) { 0xffffffffe47b5fb0 },
++  (__ev64_u64__) { 0xffffffffd73bc773 },
++  (__ev64_u64__) { 0xffffffffdb25d34e },
++  (__ev64_u64__) { 0xfffffffff6ed86b6 },
++  (__ev64_u64__) { 0xffffffff61103ef1 },
++  (__ev64_u64__) { 0xfffffffffd97a573 },
++  (__ev64_u64__) { 0xffffffffc48aa897 },
++  (__ev64_u64__) { 0xffffffffb8a0a1b0 },
++  (__ev64_u64__) { 0xfffffffffb4bd046 },
++  (__ev64_u64__) { 0xffffffff9f941ff5 },
++  (__ev64_u64__) { 0xfffffffff613ee8c },
++  (__ev64_u64__) { 0xffffffffd67355e8 },
++  (__ev64_u64__) { 0xffffffffea94114e },
++  (__ev64_u64__) { 0xffffffffc932a713 },
++  (__ev64_u64__) { 0xffffffffb5ac255e },
++  (__ev64_u64__) { 0xffffffff9abad698 },
++  (__ev64_u64__) { 0xffffffff8856594b },
++  (__ev64_u64__) { 0xfffffffff74b44a6 },
++  (__ev64_u64__) { 0xfffffffffa8efaff },
++  (__ev64_u64__) { 0xffffffffde03290b },
++  (__ev64_u64__) { 0xffffffff26965462 },
++  (__ev64_u64__) { 0xffffffffc0d36a32 },
++  (__ev64_u64__) { 0xfffffffffc89ff36 },
++  (__ev64_u64__) { 0xffffffffe1f8bf96 },
++  (__ev64_u64__) { 0xffffffffe25f345d },
++  (__ev64_u64__) { 0xffffffff57ea2770 },
++  (__ev64_u64__) { 0xfffffffffa5fe452 },
++  (__ev64_u64__) { 0xffffffffdd890c60 },
++  (__ev64_u64__) { 0xffffffffa312d57e },
++  (__ev64_u64__) { 0xfffffffffaf9c24c },
++  (__ev64_u64__) { 0xffffffffd5e75b97 },
++  (__ev64_u64__) { 0xffffffffabca1c7d },
++  (__ev64_u64__) { 0xfffffffff212e44a },
++  (__ev64_u64__) { 0xffffffffd7fcb440 },
++  (__ev64_u64__) { 0xffffffffceca1947 },
++  (__ev64_u64__) { 0xffffffffb498c6e0 },
++  (__ev64_u64__) { 0xffffffffea236294 },
++  (__ev64_u64__) { 0xffffffff52fc50f4 },
++  (__ev64_u64__) { 0xffffffffd8bc9e88 },
++  (__ev64_u64__) { 0xffffffffbaab6b48 },
++  (__ev64_u64__) { 0xfffffffff853c266 },
++  (__ev64_u64__) { 0xffffffffe5bf81d9 },
++  (__ev64_u64__) { 0xffffffffff65f1a1 },
++  (__ev64_u64__) { 0xffffffff96e4dd08 },
++  (__ev64_u64__) { 0xffffffffab34252c },
++  (__ev64_u64__) { 0xfffffffff52a53b0 },
++  (__ev64_u64__) { 0xffffffff713d3db7 },
++  (__ev64_u64__) { 0xfffffffff6e3d7ee },
++  (__ev64_u64__) { 0xffffffff8e288d80 },
++  (__ev64_u64__) { 0xffffffffb43fcf31 },
++  (__ev64_u64__) { 0xffffffff25cbd1a0 },
++  (__ev64_u64__) { 0xfffffffffe55a45c },
++
++};
++#endif // __SPE__
++
++int evmhogumian_asm(void)
++{
++  int failures = 0;
++
++#ifdef __SPE__
++  register __ev64_u16__ regA asm ("30");
++  register __ev64_u16__ regB asm ("29");
++  register __ev64_u64__ regD asm ("28");
++
++  int32_t i;
++
++  for (i = 0; i < NELTS(rA4u16); i++) {
++
++    // Initialize the ACC.
++    regA = (__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 };
++    asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
++    VERIFY(regD[0] == 0x0);
++
++    regA = rA4u16[i];
++    regB = rB4u16[i];
++
++    asm volatile ("evmhogumian %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
++#ifdef GEN_BASELINE
++    printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
++#else
++    VERIFY(regD[0] == evmhogumian_baseline[i][0]);
++#endif
++    // Verify that evmhogumian wrote into the ACC:
++    regD = (__ev64_u64__) { 0x0 };
++    asm volatile ("evaddumiaaw %[d], %[a]"   : [d] "=r" (regD) : [a] "r" (regD));
++#ifndef GEN_BASELINE
++    VERIFY(regD[0] == evmhogumian_baseline[i][0]);
++#endif
++  }
++
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(evmhogumian_asm, "evmhogumian");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -14185,6 +16912,14 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+     F(evmhogsmfaa_asm),
+     F(evmhegsmfan_asm),
+     F(evmhegsmfaa_asm),
++    F(evmhegsmiaa_asm),
++    F(evmhegsmian_asm),
++    F(evmhegumiaa_asm),
++    F(evmhegumian_asm),
++    F(evmhogsmiaa_asm),
++    F(evmhogsmian_asm),
++    F(evmhogumiaa_asm),
++    F(evmhogumian_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index e33bfd4..3a6df85 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfan_asm (test_spe.c:9376)
+@@ -22,7 +22,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -32,14 +32,14 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 184 bytes inside a block of size 256 free'd
+    at 0x........: free (vg_replace_malloc.c:...)
+    by 0x........: simple_loop (test_spe.c:333)
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfaa_asm (test_spe.c:9750)
+@@ -48,7 +48,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -58,7 +58,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfan_asm (test_spe.c:9349)
+@@ -67,7 +67,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmf_asm (test_spe.c:10136)
+@@ -76,7 +76,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -86,7 +86,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfaa_asm (test_spe.c:9723)
+@@ -95,7 +95,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwsmfa_asm (test_spe.c:10267)
+@@ -104,7 +104,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -114,7 +114,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmf_asm (test_spe.c:10109)
+@@ -123,7 +123,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmf_asm (test_spe.c:10656)
+@@ -132,7 +132,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -142,7 +142,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwsmfa_asm (test_spe.c:10229)
+@@ -151,7 +151,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ Invalid write of size 8
+    at 0x........: evmwhsmfa_asm (test_spe.c:10784)
+@@ -160,7 +160,7 @@ Invalid write of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ 
+ Invalid read of size 8
+@@ -170,7 +170,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+  Address 0x........ is 8 bytes before a block of size 64 alloc'd
+    at 0x........: calloc (vg_replace_malloc.c:...)
+    by 0x........: evmwhsmf_asm (test_spe.c:10628)
+@@ -179,7 +179,7 @@ Invalid read of size 8
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 
+ HEAP SUMMARY:
+@@ -193,7 +193,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -203,7 +203,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -213,7 +213,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -223,7 +223,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -233,7 +233,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -243,7 +243,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ 16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+    at 0x........: calloc (vg_replace_malloc.c:...)
+@@ -253,7 +253,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
++   by 0x........: main (test_spe.c:17132)
+ 
+ LEAK SUMMARY:
+    definitely lost: 98,344 bytes in 1,537 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 4b33ab5..9ea6117 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -157,6 +157,14 @@ SPE Regression Tests: PASS
+ ....evmhogsmfaa: PASS
+ ....evmhegsmfan: PASS
+ ....evmhegsmfaa: PASS
++....evmhegsmiaa: PASS
++....evmhegsmian: PASS
++....evmhegumiaa: PASS
++....evmhegumian: PASS
++....evmhogsmiaa: PASS
++....evmhogsmian: PASS
++....evmhogumiaa: PASS
++....evmhogumian: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 2afb7f9..2356f17 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 76 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 77 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 78 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 11642 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7797 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 12325 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  8356 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 17173 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 13050 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 21924 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 17538 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  7109 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2693 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 12451 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  8040 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0048-Fix-spelling-error-in-FSL-SPE-README.txt.patch b/recipes-devtools/valgrind/files/0048-Fix-spelling-error-in-FSL-SPE-README.txt.patch
new file mode 100644
index 0000000..58388e3
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0048-Fix-spelling-error-in-FSL-SPE-README.txt.patch
@@ -0,0 +1,25 @@
+From a7348e0cdfaece79b6d5c14986c03e2ad9ca3d79 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 8 Apr 2013 08:47:30 -0700
+Subject: [PATCH 48/65] Fix spelling error in: FSL-SPE-README.txt
+
+---
+ FSL-SPE-README.txt |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 64e5c4a..e239685 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -76,7 +76,7 @@
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+-       explcitly implemented, but works as a result of some other instruction
++       explicitly implemented, but works as a result of some other instruction
+        being implemented.
+ 
+  The following instructions have not been implemented yet:
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0049-Mark-version-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch b/recipes-devtools/valgrind/files/0049-Mark-version-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch
new file mode 100644
index 0000000..7f07d0b
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0049-Mark-version-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch
@@ -0,0 +1,39 @@
+From af3bdee1f3f2e1e61ee806379c0448a26b4f17e3 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 8 Apr 2013 11:24:32 -0700
+Subject: [PATCH 49/65] Mark version as: 3.8.1-FSL-Mon-Apr--8-110008-PDT-2013
+
+---
+ FSL-SPE-README.txt |    2 +-
+ configure.in       |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index e239685..d6e779b 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -67,7 +67,7 @@
+  evmwhsmfa, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhesmf, evmhesmfa,
+  evmhesmfaaw, evmhesmfanw
+ 
+- New instructions implemented since last drop:
++ New instructions implemented in version 3.8.1-FSL-Mon-Apr--8-110008-PDT-2013:
+ 
+  evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan,
+  evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
+diff --git a/configure.in b/configure.in
+index 75e479c..0899c62 100644
+--- a/configure.in
++++ b/configure.in
+@@ -8,7 +8,7 @@
+ ##------------------------------------------------------------##
+ 
+ # Process this file with autoconf to produce a configure script.
+-AC_INIT([Valgrind],[3.8.1-FSL-Thu-Mar-28-165508-PDT-2013],[valgrind-users at lists.sourceforge.net])
++AC_INIT([Valgrind],[3.8.1-FSL-Mon-Apr--8-110008-PDT-2013],[valgrind-users at lists.sourceforge.net])
+ AC_CONFIG_SRCDIR(coregrind/m_main.c)
+ AC_CONFIG_HEADERS([config.h])
+ AM_INIT_AUTOMAKE([foreign])
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0050-Adding-new-file-regtest-power7-64.default-build.log.patch b/recipes-devtools/valgrind/files/0050-Adding-new-file-regtest-power7-64.default-build.log.patch
new file mode 100644
index 0000000..bd371ac
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0050-Adding-new-file-regtest-power7-64.default-build.log.patch
@@ -0,0 +1,2599 @@
+From cfd046fcde00ffe15e1d7f1a4e3e102bb609a187 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 9 Apr 2013 08:04:29 -0700
+Subject: [PATCH 50/65] Adding new file: regtest-power7-64.default-build.log
+
+Established baseline for regression test run with default build of Valgrind.
+(autogen.sh; configure --prefix=$PWD; make; make install; make regtest).
+Used valgrind-3.8.1-pristine for reference. We have one new failure:
+memcheck/tests/ppc32/test_spe - because test_spe.stderr.exp is relative to the
+"development build" (make CFLAGS="-g -O0"). Since we do our releases with the
+default build, we ought to do a regression test run with it before release and
+hence this.
+---
+ regtest-power7-64.default-build.log | 2573 +++++++++++++++++++++++++++++++++++
+ 1 files changed, 2573 insertions(+), 0 deletions(-)
+ create mode 100644 regtest-power7-64.default-build.log
+
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+new file mode 100644
+index 0000000..68c78fc
+--- /dev/null
++++ b/regtest-power7-64.default-build.log
+@@ -0,0 +1,2573 @@
++make  check-recursive
++make[1]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++Making check in include
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
++Making check in VEX
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make  check-am
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make[3]: Nothing to be done for `check-am'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
++Making check in coregrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++make  check-am
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++mkdir -p ../.in_place; \
++for f in vgpreload_core-ppc64-linux.so vgpreload_core-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../coregrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../coregrind/$f.dSYM ../.in_place; \
++done
++mkdir -p ../.in_place; \
++for f in m_gdbserver/32bit-core-valgrind-s1.xml m_gdbserver/32bit-core-valgrind-s2.xml m_gdbserver/32bit-core.xml m_gdbserver/32bit-linux-valgrind-s1.xml m_gdbserver/32bit-linux-valgrind-s2.xml m_gdbserver/32bit-linux.xml m_gdbserver/32bit-sse-valgrind-s1.xml m_gdbserver/32bit-sse-valgrind-s2.xml m_gdbserver/32bit-sse.xml m_gdbserver/64bit-avx-valgrind-s2.xml m_gdbserver/64bit-avx-valgrind-s1.xml m_gdbserver/64bit-avx.xml m_gdbserver/64bit-core-valgrind-s1.xml m_gdbserver/64bit-core-valgrind-s2.xml m_gdbserver/64bit-core.xml m_gdbserver/64bit-linux-valgrind-s1.xml m_gdbserver/64bit-linux-valgrind-s2.xml m_gdbserver/64bit-linux.xml m_gdbserver/64bit-sse-valgrind-s1.xml m_gdbserver/64bit-sse-valgrind-s2.xml m_gdbserver/64bit-sse.xml m_gdbserver/amd64-avx-coresse-valgrind.xml m_gdbserver/amd64-avx-coresse.xml m_gdbserver/amd64-avx-linux-valgrind.xml m_gdbserver/amd64-avx-linux.xml m_gdbserver/amd64-coresse-valgrind.xml m_gdbserver/amd64-linux-valgrind.xml m_gdbserver/arm-core-valgrind-s1.xml m_gdbserver/arm-core-valgrind-s2.xml m_gdbserver/arm-core.xml m_gdbserver/arm-vfpv3-valgrind-s1.xml m_gdbserver/arm-vfpv3-valgrind-s2.xml m_gdbserver/arm-vfpv3.xml m_gdbserver/arm-with-vfpv3-valgrind.xml m_gdbserver/arm-with-vfpv3.xml m_gdbserver/i386-coresse-valgrind.xml m_gdbserver/i386-linux-valgrind.xml m_gdbserver/power64-core-valgrind-s1.xml m_gdbserver/power64-core-valgrind-s2.xml m_gdbserver/power64-core.xml m_gdbserver/power64-linux-valgrind-s1.xml m_gdbserver/power64-linux-valgrind-s2.xml m_gdbserver/power64-linux.xml m_gdbserver/power-altivec-valgrind-s1.xml m_gdbserver/power-altivec-valgrind-s2.xml m_gdbserver/power-altivec.xml m_gdbserver/power-core-valgrind-s1.xml m_gdbserver/power-core-valgrind-s2.xml m_gdbserver/power-core.xml m_gdbserver/power-fpu-valgrind-s1.xml m_gdbserver/power-fpu-valgrind-s2.xml m_gdbserver/power-fpu.xml m_gdbserver/power-linux-valgrind-s1.xml m_gdbserver/power-linux-valgrind-s2.xml m_gdbserver/power-linux.xml m_gdbserver/powerpc-altivec32l-valgrind.xml m_gdbserver/powerpc-altive!
 c32l.xml m_gdbserver/powerpc-altivec64l-valgrind.xml m_gdbserver/powerpc-altivec64l.xml m_gdbserver/s390-acr-valgrind-s1.xml m_gdbserver/s390-acr-valgrind-s2.xml m_gdbserver/s390-acr.xml m_gdbserver/s390-fpr-valgrind-s1.xml m_gdbserver/s390-fpr-valgrind-s2.xml m_gdbserver/s390-fpr.xml m_gdbserver/s390x-core64-valgrind-s1.xml m_gdbserver/s390x-core64-valgrind-s2.xml m_gdbserver/s390x-core64.xml m_gdbserver/s390x-generic-valgrind.xml m_gdbserver/s390x-generic.xml m_gdbserver/s390x-linux64-valgrind-s1.xml m_gdbserver/s390x-linux64-valgrind-s2.xml m_gdbserver/s390x-linux64.xml m_gdbserver/mips-cp0-valgrind-s1.xml m_gdbserver/mips-cp0-valgrind-s2.xml m_gdbserver/mips-cp0.xml m_gdbserver/mips-cpu-valgrind-s1.xml m_gdbserver/mips-cpu-valgrind-s2.xml m_gdbserver/mips-cpu.xml m_gdbserver/mips-linux.xml m_gdbserver/mips-linux-valgrind.xml m_gdbserver/mips-fpu-valgrind-s1.xml m_gdbserver/mips-fpu-valgrind-s2.xml m_gdbserver/mips-fpu.xml; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../coregrind/$f ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
++Making check in .
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++mkdir -p ./.in_place
++rm -f ./.in_place/default.supp
++ln -s ../default.supp ./.in_place
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++Making check in memcheck
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++mkdir -p ../.in_place; \
++for f in memcheck-ppc64-linux memcheck-ppc32-linux vgpreload_memcheck-ppc64-linux.so vgpreload_memcheck-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../memcheck/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../memcheck/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make  accounting addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw big_blocks_freed_list brk2 buflen_check bug287260 calloc-overflow clientperm clireq_nofill clo_redzone custom_alloc custom-overlap deep-backtrace deep_templates describe-block doublefree error_counts errs1 exitprog execve1 execve2 erringfds err_disable1 err_disable2 err_disable3 err_disable4 file_locking fprw fwrite inits inline holey_buffer_too_small leak-0 leak-cases leak-cycle leak-delta leak-pool leak-tree long_namespace_xml long-supps mallinfo malloc_free_fill malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 match-overrun memalign_test memalign2 memcmptest mempool mempool2 mmaptest mismatches new_override metadata nanoleak_supp nanoleak2 new_nothrow noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 sbfragment sh-mem sh-mem-random sigaltstack signal2 sigprocmask static_malloc sigkill strchr str_tester supp_unknown supp1 supp2 suppfree test-plo trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_fbench vcpu_fnfns xml1 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev1 dw4
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT accounting.o -MD -MP -MF .deps/accounting.Tpo -c -o accounting.o accounting.c
++mv -f .deps/accounting.Tpo .deps/accounting.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o accounting accounting.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT addressable.o -MD -MP -MF .deps/addressable.Tpo -c -o addressable.o addressable.c
++mv -f .deps/addressable.Tpo .deps/addressable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o addressable addressable.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_incs-atomic_incs.o -MD -MP -MF .deps/atomic_incs-atomic_incs.Tpo -c -o atomic_incs-atomic_incs.o `test -f 'atomic_incs.c' || echo './'`atomic_incs.c
++mv -f .deps/atomic_incs-atomic_incs.Tpo .deps/atomic_incs-atomic_incs.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_incs atomic_incs-atomic_incs.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badaddrvalue.o -MD -MP -MF .deps/badaddrvalue.Tpo -c -o badaddrvalue.o badaddrvalue.c
++mv -f .deps/badaddrvalue.Tpo .deps/badaddrvalue.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badaddrvalue badaddrvalue.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badfree.o -MD -MP -MF .deps/badfree.Tpo -c -o badfree.o badfree.c
++mv -f .deps/badfree.Tpo .deps/badfree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badfree badfree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump.o -MD -MP -MF .deps/badjump.Tpo -c -o badjump.o badjump.c
++mv -f .deps/badjump.Tpo .deps/badjump.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump badjump.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump2.o -MD -MP -MF .deps/badjump2.Tpo -c -o badjump2.o badjump2.c
++mv -f .deps/badjump2.Tpo .deps/badjump2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump2 badjump2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badloop.o -MD -MP -MF .deps/badloop.Tpo -c -o badloop.o badloop.c
++mv -f .deps/badloop.Tpo .deps/badloop.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badloop badloop.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badpoll.o -MD -MP -MF .deps/badpoll.Tpo -c -o badpoll.o badpoll.c
++mv -f .deps/badpoll.Tpo .deps/badpoll.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badpoll badpoll.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badrw.o -MD -MP -MF .deps/badrw.Tpo -c -o badrw.o badrw.c
++mv -f .deps/badrw.Tpo .deps/badrw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badrw badrw.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big_blocks_freed_list.o -MD -MP -MF .deps/big_blocks_freed_list.Tpo -c -o big_blocks_freed_list.o big_blocks_freed_list.c
++mv -f .deps/big_blocks_freed_list.Tpo .deps/big_blocks_freed_list.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big_blocks_freed_list big_blocks_freed_list.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk2.o -MD -MP -MF .deps/brk2.Tpo -c -o brk2.o brk2.c
++mv -f .deps/brk2.Tpo .deps/brk2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk2 brk2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT buflen_check.o -MD -MP -MF .deps/buflen_check.Tpo -c -o buflen_check.o buflen_check.c
++mv -f .deps/buflen_check.Tpo .deps/buflen_check.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o buflen_check buflen_check.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug287260.o -MD -MP -MF .deps/bug287260.Tpo -c -o bug287260.o bug287260.c
++mv -f .deps/bug287260.Tpo .deps/bug287260.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug287260 bug287260.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT calloc-overflow.o -MD -MP -MF .deps/calloc-overflow.Tpo -c -o calloc-overflow.o calloc-overflow.c
++mv -f .deps/calloc-overflow.Tpo .deps/calloc-overflow.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o calloc-overflow calloc-overflow.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clientperm.o -MD -MP -MF .deps/clientperm.Tpo -c -o clientperm.o clientperm.c
++mv -f .deps/clientperm.Tpo .deps/clientperm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clientperm clientperm.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clireq_nofill.o -MD -MP -MF .deps/clireq_nofill.Tpo -c -o clireq_nofill.o clireq_nofill.c
++mv -f .deps/clireq_nofill.Tpo .deps/clireq_nofill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clireq_nofill clireq_nofill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clo_redzone.o -MD -MP -MF .deps/clo_redzone.Tpo -c -o clo_redzone.o clo_redzone.c
++mv -f .deps/clo_redzone.Tpo .deps/clo_redzone.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clo_redzone clo_redzone.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom-overlap.o -MD -MP -MF .deps/custom-overlap.Tpo -c -o custom-overlap.o custom-overlap.c
++mv -f .deps/custom-overlap.Tpo .deps/custom-overlap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom-overlap custom-overlap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep-backtrace.o -MD -MP -MF .deps/deep-backtrace.Tpo -c -o deep-backtrace.o deep-backtrace.c
++mv -f .deps/deep-backtrace.Tpo .deps/deep-backtrace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep-backtrace deep-backtrace.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep_templates-deep_templates.o -MD -MP -MF .deps/deep_templates-deep_templates.Tpo -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/deep_templates-deep_templates.Tpo .deps/deep_templates-deep_templates.Po
++g++ -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep_templates deep_templates-deep_templates.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT describe-block.o -MD -MP -MF .deps/describe-block.Tpo -c -o describe-block.o describe-block.c
++mv -f .deps/describe-block.Tpo .deps/describe-block.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o describe-block describe-block.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT doublefree.o -MD -MP -MF .deps/doublefree.Tpo -c -o doublefree.o doublefree.c
++mv -f .deps/doublefree.Tpo .deps/doublefree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o doublefree doublefree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT error_counts-error_counts.o -MD -MP -MF .deps/error_counts-error_counts.Tpo -c -o error_counts-error_counts.o `test -f 'error_counts.c' || echo './'`error_counts.c
++mv -f .deps/error_counts-error_counts.Tpo .deps/error_counts-error_counts.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o error_counts error_counts-error_counts.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT errs1.o -MD -MP -MF .deps/errs1.Tpo -c -o errs1.o errs1.c
++mv -f .deps/errs1.Tpo .deps/errs1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o errs1 errs1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exitprog.o -MD -MP -MF .deps/exitprog.Tpo -c -o exitprog.o exitprog.c
++mv -f .deps/exitprog.Tpo .deps/exitprog.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exitprog exitprog.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve1-execve1.o -MD -MP -MF .deps/execve1-execve1.Tpo -c -o execve1-execve1.o `test -f 'execve1.c' || echo './'`execve1.c
++mv -f .deps/execve1-execve1.Tpo .deps/execve1-execve1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve1 execve1-execve1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve2-execve2.o -MD -MP -MF .deps/execve2-execve2.Tpo -c -o execve2-execve2.o `test -f 'execve2.c' || echo './'`execve2.c
++mv -f .deps/execve2-execve2.Tpo .deps/execve2-execve2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve2 execve2-execve2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT erringfds.o -MD -MP -MF .deps/erringfds.Tpo -c -o erringfds.o erringfds.c
++mv -f .deps/erringfds.Tpo .deps/erringfds.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o erringfds erringfds.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable1.o -MD -MP -MF .deps/err_disable1.Tpo -c -o err_disable1.o err_disable1.c
++mv -f .deps/err_disable1.Tpo .deps/err_disable1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable1 err_disable1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable2.o -MD -MP -MF .deps/err_disable2.Tpo -c -o err_disable2.o err_disable2.c
++mv -f .deps/err_disable2.Tpo .deps/err_disable2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable2 err_disable2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable3.o -MD -MP -MF .deps/err_disable3.Tpo -c -o err_disable3.o err_disable3.c
++mv -f .deps/err_disable3.Tpo .deps/err_disable3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable3 err_disable3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable4.o -MD -MP -MF .deps/err_disable4.Tpo -c -o err_disable4.o err_disable4.c
++mv -f .deps/err_disable4.Tpo .deps/err_disable4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable4 err_disable4.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT file_locking.o -MD -MP -MF .deps/file_locking.Tpo -c -o file_locking.o file_locking.c
++mv -f .deps/file_locking.Tpo .deps/file_locking.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o file_locking file_locking.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fprw.o -MD -MP -MF .deps/fprw.Tpo -c -o fprw.o fprw.c
++mv -f .deps/fprw.Tpo .deps/fprw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fprw fprw.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fwrite.o -MD -MP -MF .deps/fwrite.Tpo -c -o fwrite.o fwrite.c
++mv -f .deps/fwrite.Tpo .deps/fwrite.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fwrite fwrite.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inits-inits.o -MD -MP -MF .deps/inits-inits.Tpo -c -o inits-inits.o `test -f 'inits.c' || echo './'`inits.c
++mv -f .deps/inits-inits.Tpo .deps/inits-inits.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inits inits-inits.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inline.o -MD -MP -MF .deps/inline.Tpo -c -o inline.o inline.c
++mv -f .deps/inline.Tpo .deps/inline.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inline inline.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT holey_buffer_too_small.o -MD -MP -MF .deps/holey_buffer_too_small.Tpo -c -o holey_buffer_too_small.o holey_buffer_too_small.c
++mv -f .deps/holey_buffer_too_small.Tpo .deps/holey_buffer_too_small.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o holey_buffer_too_small holey_buffer_too_small.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-0.o -MD -MP -MF .deps/leak-0.Tpo -c -o leak-0.o leak-0.c
++mv -f .deps/leak-0.Tpo .deps/leak-0.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-0 leak-0.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cases.o -MD -MP -MF .deps/leak-cases.Tpo -c -o leak-cases.o leak-cases.c
++mv -f .deps/leak-cases.Tpo .deps/leak-cases.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cases leak-cases.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cycle.o -MD -MP -MF .deps/leak-cycle.Tpo -c -o leak-cycle.o leak-cycle.c
++mv -f .deps/leak-cycle.Tpo .deps/leak-cycle.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cycle leak-cycle.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-delta.o -MD -MP -MF .deps/leak-delta.Tpo -c -o leak-delta.o leak-delta.c
++mv -f .deps/leak-delta.Tpo .deps/leak-delta.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-delta leak-delta.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-pool.o -MD -MP -MF .deps/leak-pool.Tpo -c -o leak-pool.o leak-pool.c
++mv -f .deps/leak-pool.Tpo .deps/leak-pool.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-pool leak-pool.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-tree.o -MD -MP -MF .deps/leak-tree.Tpo -c -o leak-tree.o leak-tree.c
++mv -f .deps/leak-tree.Tpo .deps/leak-tree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-tree leak-tree.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long_namespace_xml.o -MD -MP -MF .deps/long_namespace_xml.Tpo -c -o long_namespace_xml.o long_namespace_xml.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/long_namespace_xml.Tpo .deps/long_namespace_xml.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long_namespace_xml long_namespace_xml.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-supps.o -MD -MP -MF .deps/long-supps.Tpo -c -o long-supps.o long-supps.c
++mv -f .deps/long-supps.Tpo .deps/long-supps.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-supps long-supps.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mallinfo.o -MD -MP -MF .deps/mallinfo.Tpo -c -o mallinfo.o mallinfo.c
++mv -f .deps/mallinfo.Tpo .deps/mallinfo.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mallinfo mallinfo.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_free_fill.o -MD -MP -MF .deps/malloc_free_fill.Tpo -c -o malloc_free_fill.o malloc_free_fill.c
++mv -f .deps/malloc_free_fill.Tpo .deps/malloc_free_fill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_free_fill malloc_free_fill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
++mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc1.o -MD -MP -MF .deps/malloc1.Tpo -c -o malloc1.o malloc1.c
++mv -f .deps/malloc1.Tpo .deps/malloc1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc1 malloc1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc2.o -MD -MP -MF .deps/malloc2.Tpo -c -o malloc2.o malloc2.c
++mv -f .deps/malloc2.Tpo .deps/malloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc2 malloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc3.o -MD -MP -MF .deps/malloc3.Tpo -c -o malloc3.o malloc3.c
++mv -f .deps/malloc3.Tpo .deps/malloc3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc3 malloc3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel1-manuel1.o -MD -MP -MF .deps/manuel1-manuel1.Tpo -c -o manuel1-manuel1.o `test -f 'manuel1.c' || echo './'`manuel1.c
++mv -f .deps/manuel1-manuel1.Tpo .deps/manuel1-manuel1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel1 manuel1-manuel1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel2.o -MD -MP -MF .deps/manuel2.Tpo -c -o manuel2.o manuel2.c
++mv -f .deps/manuel2.Tpo .deps/manuel2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel2 manuel2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel3.o -MD -MP -MF .deps/manuel3.Tpo -c -o manuel3.o manuel3.c
++mv -f .deps/manuel3.Tpo .deps/manuel3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel3 manuel3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT match-overrun.o -MD -MP -MF .deps/match-overrun.Tpo -c -o match-overrun.o match-overrun.c
++mv -f .deps/match-overrun.Tpo .deps/match-overrun.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o match-overrun match-overrun.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign_test.o -MD -MP -MF .deps/memalign_test.Tpo -c -o memalign_test.o memalign_test.c
++mv -f .deps/memalign_test.Tpo .deps/memalign_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign_test memalign_test.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign2.o -MD -MP -MF .deps/memalign2.Tpo -c -o memalign2.o memalign2.c
++mv -f .deps/memalign2.Tpo .deps/memalign2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign2 memalign2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memcmptest-memcmptest.o -MD -MP -MF .deps/memcmptest-memcmptest.Tpo -c -o memcmptest-memcmptest.o `test -f 'memcmptest.c' || echo './'`memcmptest.c
++mv -f .deps/memcmptest-memcmptest.Tpo .deps/memcmptest-memcmptest.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memcmptest memcmptest-memcmptest.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool.o -MD -MP -MF .deps/mempool.Tpo -c -o mempool.o mempool.c
++mv -f .deps/mempool.Tpo .deps/mempool.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool mempool.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool2.o -MD -MP -MF .deps/mempool2.Tpo -c -o mempool2.o mempool2.c
++mv -f .deps/mempool2.Tpo .deps/mempool2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool2 mempool2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmaptest.o -MD -MP -MF .deps/mmaptest.Tpo -c -o mmaptest.o mmaptest.c
++mv -f .deps/mmaptest.Tpo .deps/mmaptest.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmaptest mmaptest.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mismatches.o -MD -MP -MF .deps/mismatches.Tpo -c -o mismatches.o mismatches.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/mismatches.Tpo .deps/mismatches.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mismatches mismatches.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_override.o -MD -MP -MF .deps/new_override.Tpo -c -o new_override.o new_override.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_override.Tpo .deps/new_override.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_override new_override.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT metadata.o -MD -MP -MF .deps/metadata.Tpo -c -o metadata.o metadata.c
++mv -f .deps/metadata.Tpo .deps/metadata.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o metadata metadata.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak_supp.o -MD -MP -MF .deps/nanoleak_supp.Tpo -c -o nanoleak_supp.o nanoleak_supp.c
++mv -f .deps/nanoleak_supp.Tpo .deps/nanoleak_supp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak_supp nanoleak_supp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak2.o -MD -MP -MF .deps/nanoleak2.Tpo -c -o nanoleak2.o nanoleak2.c
++mv -f .deps/nanoleak2.Tpo .deps/nanoleak2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak2 nanoleak2.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_nothrow.o -MD -MP -MF .deps/new_nothrow.Tpo -c -o new_nothrow.o new_nothrow.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_nothrow.Tpo .deps/new_nothrow.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_nothrow new_nothrow.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT noisy_child.o -MD -MP -MF .deps/noisy_child.Tpo -c -o noisy_child.o noisy_child.c
++mv -f .deps/noisy_child.Tpo .deps/noisy_child.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o noisy_child noisy_child.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null_socket.o -MD -MP -MF .deps/null_socket.Tpo -c -o null_socket.o null_socket.c
++mv -f .deps/null_socket.Tpo .deps/null_socket.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null_socket null_socket.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin1-yes.o -MD -MP -MF .deps/origin1-yes.Tpo -c -o origin1-yes.o origin1-yes.c
++mv -f .deps/origin1-yes.Tpo .deps/origin1-yes.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin1-yes origin1-yes.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin2_not_quite-origin2-not-quite.o -MD -MP -MF .deps/origin2_not_quite-origin2-not-quite.Tpo -c -o origin2_not_quite-origin2-not-quite.o `test -f 'origin2-not-quite.c' || echo './'`origin2-not-quite.c
++mv -f .deps/origin2_not_quite-origin2-not-quite.Tpo .deps/origin2_not_quite-origin2-not-quite.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin2-not-quite origin2_not_quite-origin2-not-quite.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin3_no-origin3-no.o -MD -MP -MF .deps/origin3_no-origin3-no.Tpo -c -o origin3_no-origin3-no.o `test -f 'origin3-no.c' || echo './'`origin3-no.c
++mv -f .deps/origin3_no-origin3-no.Tpo .deps/origin3_no-origin3-no.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin3-no origin3_no-origin3-no.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin4_many-origin4-many.o -MD -MP -MF .deps/origin4_many-origin4-many.Tpo -c -o origin4_many-origin4-many.o `test -f 'origin4-many.c' || echo './'`origin4-many.c
++mv -f .deps/origin4_many-origin4-many.Tpo .deps/origin4_many-origin4-many.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin4-many origin4_many-origin4-many.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin5_bz2-origin5-bz2.o -MD -MP -MF .deps/origin5_bz2-origin5-bz2.Tpo -c -o origin5_bz2-origin5-bz2.o `test -f 'origin5-bz2.c' || echo './'`origin5-bz2.c
++mv -f .deps/origin5_bz2-origin5-bz2.Tpo .deps/origin5_bz2-origin5-bz2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin5-bz2 origin5_bz2-origin5-bz2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin6_fp-origin6-fp.o -MD -MP -MF .deps/origin6_fp-origin6-fp.Tpo -c -o origin6_fp-origin6-fp.o `test -f 'origin6-fp.c' || echo './'`origin6-fp.c
++mv -f .deps/origin6_fp-origin6-fp.Tpo .deps/origin6_fp-origin6-fp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin6-fp origin6_fp-origin6-fp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overlap-overlap.o -MD -MP -MF .deps/overlap-overlap.Tpo -c -o overlap-overlap.o `test -f 'overlap.c' || echo './'`overlap.c
++mv -f .deps/overlap-overlap.Tpo .deps/overlap-overlap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overlap overlap-overlap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partiallydefinedeq.o -MD -MP -MF .deps/partiallydefinedeq.Tpo -c -o partiallydefinedeq.o partiallydefinedeq.c
++mv -f .deps/partiallydefinedeq.Tpo .deps/partiallydefinedeq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partiallydefinedeq partiallydefinedeq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partial_load.o -MD -MP -MF .deps/partial_load.Tpo -c -o partial_load.o partial_load.c
++mv -f .deps/partial_load.Tpo .deps/partial_load.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partial_load partial_load.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc.o -MD -MP -MF .deps/pdb-realloc.Tpo -c -o pdb-realloc.o pdb-realloc.c
++mv -f .deps/pdb-realloc.Tpo .deps/pdb-realloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc pdb-realloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc2.o -MD -MP -MF .deps/pdb-realloc2.Tpo -c -o pdb-realloc2.o pdb-realloc2.c
++mv -f .deps/pdb-realloc2.Tpo .deps/pdb-realloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc2 pdb-realloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pipe.o -MD -MP -MF .deps/pipe.Tpo -c -o pipe.o pipe.c
++mv -f .deps/pipe.Tpo .deps/pipe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pipe pipe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pointer-trace.o -MD -MP -MF .deps/pointer-trace.Tpo -c -o pointer-trace.o pointer-trace.c
++mv -f .deps/pointer-trace.Tpo .deps/pointer-trace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pointer-trace pointer-trace.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT post-syscall.o -MD -MP -MF .deps/post-syscall.Tpo -c -o post-syscall.o post-syscall.c
++mv -f .deps/post-syscall.Tpo .deps/post-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o post-syscall post-syscall.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc1.o -MD -MP -MF .deps/realloc1.Tpo -c -o realloc1.o realloc1.c
++mv -f .deps/realloc1.Tpo .deps/realloc1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc1 realloc1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc2.o -MD -MP -MF .deps/realloc2.Tpo -c -o realloc2.o realloc2.c
++mv -f .deps/realloc2.Tpo .deps/realloc2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc2 realloc2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc3.o -MD -MP -MF .deps/realloc3.Tpo -c -o realloc3.o realloc3.c
++mv -f .deps/realloc3.Tpo .deps/realloc3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc3 realloc3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sbfragment.o -MD -MP -MF .deps/sbfragment.Tpo -c -o sbfragment.o sbfragment.c
++mv -f .deps/sbfragment.Tpo .deps/sbfragment.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sbfragment sbfragment.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem.o -MD -MP -MF .deps/sh-mem.Tpo -c -o sh-mem.o sh-mem.c
++mv -f .deps/sh-mem.Tpo .deps/sh-mem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem sh-mem.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem-random.o -MD -MP -MF .deps/sh-mem-random.Tpo -c -o sh-mem-random.o sh-mem-random.c
++mv -f .deps/sh-mem-random.Tpo .deps/sh-mem-random.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem-random sh-mem-random.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigaltstack.o -MD -MP -MF .deps/sigaltstack.Tpo -c -o sigaltstack.o sigaltstack.c
++mv -f .deps/sigaltstack.Tpo .deps/sigaltstack.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigaltstack sigaltstack.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT signal2.o -MD -MP -MF .deps/signal2.Tpo -c -o signal2.o signal2.c
++mv -f .deps/signal2.Tpo .deps/signal2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o signal2 signal2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigprocmask.o -MD -MP -MF .deps/sigprocmask.Tpo -c -o sigprocmask.o sigprocmask.c
++mv -f .deps/sigprocmask.Tpo .deps/sigprocmask.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigprocmask sigprocmask.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT static_malloc.o -MD -MP -MF .deps/static_malloc.Tpo -c -o static_malloc.o static_malloc.c
++mv -f .deps/static_malloc.Tpo .deps/static_malloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o static_malloc static_malloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigkill.o -MD -MP -MF .deps/sigkill.Tpo -c -o sigkill.o sigkill.c
++mv -f .deps/sigkill.Tpo .deps/sigkill.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigkill sigkill.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT strchr.o -MD -MP -MF .deps/strchr.Tpo -c -o strchr.o strchr.c
++mv -f .deps/strchr.Tpo .deps/strchr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o strchr strchr.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT str_tester-str_tester.o -MD -MP -MF .deps/str_tester-str_tester.Tpo -c -o str_tester-str_tester.o `test -f 'str_tester.c' || echo './'`str_tester.c
++mv -f .deps/str_tester-str_tester.Tpo .deps/str_tester-str_tester.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o str_tester str_tester-str_tester.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp_unknown badjump.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT supp.o -MD -MP -MF .deps/supp.Tpo -c -o supp.o supp.c
++mv -f .deps/supp.Tpo .deps/supp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp1 supp.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp2 supp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT suppfree.o -MD -MP -MF .deps/suppfree.Tpo -c -o suppfree.o suppfree.c
++mv -f .deps/suppfree.Tpo .deps/suppfree.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o suppfree suppfree.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test-plo.o -MD -MP -MF .deps/test-plo.Tpo -c -o test-plo.o test-plo.c
++mv -f .deps/test-plo.Tpo .deps/test-plo.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test-plo test-plo.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trivialleak.o -MD -MP -MF .deps/trivialleak.Tpo -c -o trivialleak.o trivialleak.c
++mv -f .deps/trivialleak.Tpo .deps/trivialleak.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trivialleak trivialleak.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_libcbase.o -MD -MP -MF .deps/unit_libcbase.Tpo -c -o unit_libcbase.o unit_libcbase.c
++mv -f .deps/unit_libcbase.Tpo .deps/unit_libcbase.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_libcbase unit_libcbase.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_oset.o -MD -MP -MF .deps/unit_oset.Tpo -c -o unit_oset.o unit_oset.c
++mv -f .deps/unit_oset.Tpo .deps/unit_oset.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_oset unit_oset.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo1-varinfo1.o -MD -MP -MF .deps/varinfo1-varinfo1.Tpo -c -o varinfo1-varinfo1.o `test -f 'varinfo1.c' || echo './'`varinfo1.c
++mv -f .deps/varinfo1-varinfo1.Tpo .deps/varinfo1-varinfo1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo1 varinfo1-varinfo1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo2-varinfo2.o -MD -MP -MF .deps/varinfo2-varinfo2.Tpo -c -o varinfo2-varinfo2.o `test -f 'varinfo2.c' || echo './'`varinfo2.c
++mv -f .deps/varinfo2-varinfo2.Tpo .deps/varinfo2-varinfo2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo2 varinfo2-varinfo2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo3-varinfo3.o -MD -MP -MF .deps/varinfo3-varinfo3.Tpo -c -o varinfo3-varinfo3.o `test -f 'varinfo3.c' || echo './'`varinfo3.c
++mv -f .deps/varinfo3-varinfo3.Tpo .deps/varinfo3-varinfo3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo3 varinfo3-varinfo3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo4-varinfo4.o -MD -MP -MF .deps/varinfo4-varinfo4.Tpo -c -o varinfo4-varinfo4.o `test -f 'varinfo4.c' || echo './'`varinfo4.c
++mv -f .deps/varinfo4-varinfo4.Tpo .deps/varinfo4-varinfo4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo4 varinfo4-varinfo4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5-varinfo5.o -MD -MP -MF .deps/varinfo5-varinfo5.Tpo -c -o varinfo5-varinfo5.o `test -f 'varinfo5.c' || echo './'`varinfo5.c
++mv -f .deps/varinfo5-varinfo5.Tpo .deps/varinfo5-varinfo5.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5so_so-varinfo5so.o -MD -MP -MF .deps/varinfo5so_so-varinfo5so.Tpo -c -o varinfo5so_so-varinfo5so.o `test -f 'varinfo5so.c' || echo './'`varinfo5so.c
++mv -f .deps/varinfo5so_so-varinfo5so.Tpo .deps/varinfo5so_so-varinfo5so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,varinfo5so.so  -o varinfo5so.so varinfo5so_so-varinfo5so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o varinfo5 varinfo5-varinfo5.o varinfo5so.so 
++make[5]: `varinfo5so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo6-varinfo6.o -MD -MP -MF .deps/varinfo6-varinfo6.Tpo -c -o varinfo6-varinfo6.o `test -f 'varinfo6.c' || echo './'`varinfo6.c
++mv -f .deps/varinfo6-varinfo6.Tpo .deps/varinfo6-varinfo6.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo6 varinfo6-varinfo6.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fbench-vcpu_fbench.o -MD -MP -MF .deps/vcpu_fbench-vcpu_fbench.Tpo -c -o vcpu_fbench-vcpu_fbench.o `test -f 'vcpu_fbench.c' || echo './'`vcpu_fbench.c
++mv -f .deps/vcpu_fbench-vcpu_fbench.Tpo .deps/vcpu_fbench-vcpu_fbench.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fbench vcpu_fbench-vcpu_fbench.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fnfns-vcpu_fnfns.o -MD -MP -MF .deps/vcpu_fnfns-vcpu_fnfns.Tpo -c -o vcpu_fnfns-vcpu_fnfns.o `test -f 'vcpu_fnfns.c' || echo './'`vcpu_fnfns.c
++mv -f .deps/vcpu_fnfns-vcpu_fnfns.Tpo .deps/vcpu_fnfns-vcpu_fnfns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fnfns vcpu_fnfns-vcpu_fnfns.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xml1.o -MD -MP -MF .deps/xml1.Tpo -c -o xml1.o xml1.c
++mv -f .deps/xml1.Tpo .deps/xml1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xml1 xml1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap1.o -MD -MP -MF .deps/wrap1.Tpo -c -o wrap1.o wrap1.c
++mv -f .deps/wrap1.Tpo .deps/wrap1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap1 wrap1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap2.o -MD -MP -MF .deps/wrap2.Tpo -c -o wrap2.o wrap2.c
++mv -f .deps/wrap2.Tpo .deps/wrap2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap2 wrap2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap3.o -MD -MP -MF .deps/wrap3.Tpo -c -o wrap3.o wrap3.c
++mv -f .deps/wrap3.Tpo .deps/wrap3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap3 wrap3.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap4.o -MD -MP -MF .deps/wrap4.Tpo -c -o wrap4.o wrap4.c
++mv -f .deps/wrap4.Tpo .deps/wrap4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap4 wrap4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap5.o -MD -MP -MF .deps/wrap5.Tpo -c -o wrap5.o wrap5.c
++mv -f .deps/wrap5.Tpo .deps/wrap5.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap5 wrap5.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap6-wrap6.o -MD -MP -MF .deps/wrap6-wrap6.Tpo -c -o wrap6-wrap6.o `test -f 'wrap6.c' || echo './'`wrap6.c
++mv -f .deps/wrap6-wrap6.Tpo .deps/wrap6-wrap6.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap6 wrap6-wrap6.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7.o -MD -MP -MF .deps/wrap7.Tpo -c -o wrap7.o wrap7.c
++mv -f .deps/wrap7.Tpo .deps/wrap7.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7so_so-wrap7so.o -MD -MP -MF .deps/wrap7so_so-wrap7so.Tpo -c -o wrap7so_so-wrap7so.o `test -f 'wrap7so.c' || echo './'`wrap7so.c
++mv -f .deps/wrap7so_so-wrap7so.Tpo .deps/wrap7so_so-wrap7so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,wrap7so.so  -o wrap7so.so wrap7so_so-wrap7so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o wrap7 wrap7.o wrap7so.so 
++make[5]: `wrap7so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap8.o -MD -MP -MF .deps/wrap8.Tpo -c -o wrap8.o wrap8.c
++mv -f .deps/wrap8.Tpo .deps/wrap8.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap8 wrap8.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT writev1.o -MD -MP -MF .deps/writev1.Tpo -c -o writev1.o writev1.c
++mv -f .deps/writev1.Tpo .deps/writev1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o writev1 writev1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dw4-dw4.o -MD -MP -MF .deps/dw4-dw4.Tpo -c -o dw4-dw4.o `test -f 'dw4.c' || echo './'`dw4.c
++mv -f .deps/dw4-dw4.Tpo .deps/dw4-dw4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dw4 dw4-dw4.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[5]: Warning: File `.deps/xml1.Po' has modification time 77 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++Making check in ppc32
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make  power_ISA2_05 test_spe
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
++mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
++gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
++mv -f .deps/test_spe.Tpo .deps/test_spe.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_spe test_spe.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++Making check in ppc64
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make  power_ISA2_05
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
++mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
++gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++Making check in linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make  brk capget lsframe1 lsframe2 sigqueue stack_changes stack_switch syscalls-2007 syslog-syscall timerfd-syscall
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk.o -MD -MP -MF .deps/brk.Tpo -c -o brk.o brk.c
++mv -f .deps/brk.Tpo .deps/brk.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk brk.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT capget.o -MD -MP -MF .deps/capget.Tpo -c -o capget.o capget.c
++mv -f .deps/capget.Tpo .deps/capget.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o capget capget.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe1.o -MD -MP -MF .deps/lsframe1.Tpo -c -o lsframe1.o lsframe1.c
++mv -f .deps/lsframe1.Tpo .deps/lsframe1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe1 lsframe1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe2.o -MD -MP -MF .deps/lsframe2.Tpo -c -o lsframe2.o lsframe2.c
++mv -f .deps/lsframe2.Tpo .deps/lsframe2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe2 lsframe2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigqueue.o -MD -MP -MF .deps/sigqueue.Tpo -c -o sigqueue.o sigqueue.c
++mv -f .deps/sigqueue.Tpo .deps/sigqueue.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigqueue sigqueue.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_changes.o -MD -MP -MF .deps/stack_changes.Tpo -c -o stack_changes.o stack_changes.c
++mv -f .deps/stack_changes.Tpo .deps/stack_changes.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_changes stack_changes.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_switch.o -MD -MP -MF .deps/stack_switch.Tpo -c -o stack_switch.o stack_switch.c
++mv -f .deps/stack_switch.Tpo .deps/stack_switch.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_switch stack_switch.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscalls-2007.o -MD -MP -MF .deps/syscalls-2007.Tpo -c -o syscalls-2007.o syscalls-2007.c
++mv -f .deps/syscalls-2007.Tpo .deps/syscalls-2007.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscalls-2007 syscalls-2007.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog-syscall.o -MD -MP -MF .deps/syslog-syscall.Tpo -c -o syslog-syscall.o syslog-syscall.c
++mv -f .deps/syslog-syscall.Tpo .deps/syslog-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog-syscall syslog-syscall.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timerfd-syscall.o -MD -MP -MF .deps/timerfd-syscall.Tpo -c -o timerfd-syscall.o timerfd-syscall.c
++mv -f .deps/timerfd-syscall.Tpo .deps/timerfd-syscall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timerfd-syscall timerfd-syscall.o -lrt 
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
++Making check in cachegrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++mkdir -p ../.in_place; \
++for f in cachegrind-ppc64-linux cachegrind-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../cachegrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../cachegrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make  chdir clreq dlclose myprint.so
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT chdir.o -MD -MP -MF .deps/chdir.Tpo -c -o chdir.o chdir.c
++mv -f .deps/chdir.Tpo .deps/chdir.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o chdir chdir.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
++mv -f .deps/clreq.Tpo .deps/clreq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dlclose.o -MD -MP -MF .deps/dlclose.Tpo -c -o dlclose.o dlclose.c
++mv -f .deps/dlclose.Tpo .deps/dlclose.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dlclose dlclose.o -ldl 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT myprint_so-myprint.o -MD -MP -MF .deps/myprint_so-myprint.Tpo -c -o myprint_so-myprint.o `test -f 'myprint.c' || echo './'`myprint.c
++mv -f .deps/myprint_so-myprint.Tpo .deps/myprint_so-myprint.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Winline -Wall -Wshadow -g -m64 -shared -fPIC  -o myprint.so myprint_so-myprint.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
++Making check in callgrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++mkdir -p ../.in_place; \
++for f in callgrind-ppc64-linux callgrind-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../callgrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../callgrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make  clreq simwork threads
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
++mv -f .deps/clreq.Tpo .deps/clreq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT simwork.o -MD -MP -MF .deps/simwork.Tpo -c -o simwork.o simwork.c
++mv -f .deps/simwork.Tpo .deps/simwork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o simwork simwork.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threads.o -MD -MP -MF .deps/threads.Tpo -c -o threads.o threads.c
++mv -f .deps/threads.Tpo .deps/threads.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threads threads.o -lpthread 
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[5]: Warning: File `.deps/threads.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
++Making check in massif
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++mkdir -p ../.in_place; \
++for f in massif-ppc64-linux massif-ppc32-linux vgpreload_massif-ppc64-linux.so vgpreload_massif-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../massif/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../massif/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make  alloc-fns basic big-alloc culling1 culling2 custom_alloc deep ignored ignoring insig long-names long-time malloc_usable new-cpp null one overloaded-new pages_as_heap peak realloc thresholds zero
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT alloc-fns.o -MD -MP -MF .deps/alloc-fns.Tpo -c -o alloc-fns.o alloc-fns.c
++mv -f .deps/alloc-fns.Tpo .deps/alloc-fns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o alloc-fns alloc-fns.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT basic.o -MD -MP -MF .deps/basic.Tpo -c -o basic.o basic.c
++mv -f .deps/basic.Tpo .deps/basic.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o basic basic.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big-alloc.o -MD -MP -MF .deps/big-alloc.Tpo -c -o big-alloc.o big-alloc.c
++mv -f .deps/big-alloc.Tpo .deps/big-alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big-alloc big-alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling1.o -MD -MP -MF .deps/culling1.Tpo -c -o culling1.o culling1.c
++mv -f .deps/culling1.Tpo .deps/culling1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling1 culling1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling2.o -MD -MP -MF .deps/culling2.Tpo -c -o culling2.o culling2.c
++mv -f .deps/culling2.Tpo .deps/culling2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling2 culling2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep.o -MD -MP -MF .deps/deep.Tpo -c -o deep.o deep.c
++mv -f .deps/deep.Tpo .deps/deep.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep deep.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignored.o -MD -MP -MF .deps/ignored.Tpo -c -o ignored.o ignored.c
++mv -f .deps/ignored.Tpo .deps/ignored.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignored ignored.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignoring.o -MD -MP -MF .deps/ignoring.Tpo -c -o ignoring.o ignoring.c
++mv -f .deps/ignoring.Tpo .deps/ignoring.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignoring ignoring.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT insig.o -MD -MP -MF .deps/insig.Tpo -c -o insig.o insig.c
++mv -f .deps/insig.Tpo .deps/insig.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o insig insig.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-names.o -MD -MP -MF .deps/long-names.Tpo -c -o long-names.o long-names.c
++mv -f .deps/long-names.Tpo .deps/long-names.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-names long-names.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-time.o -MD -MP -MF .deps/long-time.Tpo -c -o long-time.o long-time.c
++mv -f .deps/long-time.Tpo .deps/long-time.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-time long-time.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
++mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new-cpp.o -MD -MP -MF .deps/new-cpp.Tpo -c -o new-cpp.o new-cpp.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new-cpp.Tpo .deps/new-cpp.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new-cpp new-cpp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null.o -MD -MP -MF .deps/null.Tpo -c -o null.o null.c
++mv -f .deps/null.Tpo .deps/null.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null null.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT one.o -MD -MP -MF .deps/one.Tpo -c -o one.o one.c
++mv -f .deps/one.Tpo .deps/one.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o one one.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overloaded-new.o -MD -MP -MF .deps/overloaded-new.Tpo -c -o overloaded-new.o overloaded-new.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/overloaded-new.Tpo .deps/overloaded-new.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overloaded-new overloaded-new.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pages_as_heap.o -MD -MP -MF .deps/pages_as_heap.Tpo -c -o pages_as_heap.o pages_as_heap.c
++mv -f .deps/pages_as_heap.Tpo .deps/pages_as_heap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pages_as_heap pages_as_heap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT peak.o -MD -MP -MF .deps/peak.Tpo -c -o peak.o peak.c
++mv -f .deps/peak.Tpo .deps/peak.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o peak peak.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc.o -MD -MP -MF .deps/realloc.Tpo -c -o realloc.o realloc.c
++mv -f .deps/realloc.Tpo .deps/realloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc realloc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thresholds.o -MD -MP -MF .deps/thresholds.Tpo -c -o thresholds.o thresholds.c
++mv -f .deps/thresholds.Tpo .deps/thresholds.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thresholds thresholds.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT zero.o -MD -MP -MF .deps/zero.Tpo -c -o zero.o zero.c
++mv -f .deps/zero.Tpo .deps/zero.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o zero zero.o  
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[4]: Warning: File `.deps/zero.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
++Making check in lackey
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++mkdir -p ../.in_place; \
++for f in lackey-ppc64-linux lackey-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../lackey/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../lackey/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
++make[3]: Nothing to be done for `check'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
++Making check in none
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++mkdir -p ../.in_place; \
++for f in none-ppc64-linux none-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../none/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../none/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make  ansi args async-sigs bitfield1 bug129866 closeall coolo_strlen discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip mmap_fcntl_bug munmap_exe map_unaligned map_unmap mq nestedfns pending procfs-cmdline-exe pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_stackalign rcrl readline1 require-text-symbol res_search resolv rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts stackgrowth sigstackgrowth syscall-restart1 syscall-restart2 syslog system threaded-fork threadederrno timestamp tls tls.so tls2.so valgrind_cpp_test vgprintf coolo_sigaction gxx304 process_vm_readv_writev manythreads thread-exits rlimit64_nofile 
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ansi-ansi.o -MD -MP -MF .deps/ansi-ansi.Tpo -c -o ansi-ansi.o `test -f 'ansi.c' || echo './'`ansi.c
++mv -f .deps/ansi-ansi.Tpo .deps/ansi-ansi.Po
++gcc -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ansi ansi-ansi.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT args.o -MD -MP -MF .deps/args.Tpo -c -o args.o args.c
++mv -f .deps/args.Tpo .deps/args.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o args args.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT async-sigs.o -MD -MP -MF .deps/async-sigs.Tpo -c -o async-sigs.o async-sigs.c
++mv -f .deps/async-sigs.Tpo .deps/async-sigs.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o async-sigs async-sigs.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bitfield1.o -MD -MP -MF .deps/bitfield1.Tpo -c -o bitfield1.o bitfield1.c
++mv -f .deps/bitfield1.Tpo .deps/bitfield1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bitfield1 bitfield1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129866.o -MD -MP -MF .deps/bug129866.Tpo -c -o bug129866.o bug129866.c
++mv -f .deps/bug129866.Tpo .deps/bug129866.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129866 bug129866.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT closeall.o -MD -MP -MF .deps/closeall.Tpo -c -o closeall.o closeall.c
++mv -f .deps/closeall.Tpo .deps/closeall.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o closeall closeall.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_strlen.o -MD -MP -MF .deps/coolo_strlen.Tpo -c -o coolo_strlen.o coolo_strlen.c
++mv -f .deps/coolo_strlen.Tpo .deps/coolo_strlen.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_strlen coolo_strlen.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT discard.o -MD -MP -MF .deps/discard.Tpo -c -o discard.o discard.c
++mv -f .deps/discard.Tpo .deps/discard.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o discard discard.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exec-sigmask.o -MD -MP -MF .deps/exec-sigmask.Tpo -c -o exec-sigmask.o exec-sigmask.c
++mv -f .deps/exec-sigmask.Tpo .deps/exec-sigmask.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exec-sigmask exec-sigmask.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve-execve.o -MD -MP -MF .deps/execve-execve.Tpo -c -o execve-execve.o `test -f 'execve.c' || echo './'`execve.c
++mv -f .deps/execve-execve.Tpo .deps/execve-execve.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve execve-execve.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT faultstatus.o -MD -MP -MF .deps/faultstatus.Tpo -c -o faultstatus.o faultstatus.c
++mv -f .deps/faultstatus.Tpo .deps/faultstatus.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o faultstatus faultstatus.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fcntl_setown.o -MD -MP -MF .deps/fcntl_setown.Tpo -c -o fcntl_setown.o fcntl_setown.c
++mv -f .deps/fcntl_setown.Tpo .deps/fcntl_setown.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fcntl_setown fcntl_setown.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_cmsg.o -MD -MP -MF .deps/fdleak_cmsg.Tpo -c -o fdleak_cmsg.o fdleak_cmsg.c
++mv -f .deps/fdleak_cmsg.Tpo .deps/fdleak_cmsg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_cmsg fdleak_cmsg.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_creat.o -MD -MP -MF .deps/fdleak_creat.Tpo -c -o fdleak_creat.o fdleak_creat.c
++mv -f .deps/fdleak_creat.Tpo .deps/fdleak_creat.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_creat fdleak_creat.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup.o -MD -MP -MF .deps/fdleak_dup.Tpo -c -o fdleak_dup.o fdleak_dup.c
++mv -f .deps/fdleak_dup.Tpo .deps/fdleak_dup.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup fdleak_dup.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup2.o -MD -MP -MF .deps/fdleak_dup2.Tpo -c -o fdleak_dup2.o fdleak_dup2.c
++mv -f .deps/fdleak_dup2.Tpo .deps/fdleak_dup2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup2 fdleak_dup2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_fcntl.o -MD -MP -MF .deps/fdleak_fcntl.Tpo -c -o fdleak_fcntl.o fdleak_fcntl.c
++mv -f .deps/fdleak_fcntl.Tpo .deps/fdleak_fcntl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_fcntl fdleak_fcntl.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_ipv4.o -MD -MP -MF .deps/fdleak_ipv4.Tpo -c -o fdleak_ipv4.o fdleak_ipv4.c
++mv -f .deps/fdleak_ipv4.Tpo .deps/fdleak_ipv4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_ipv4 fdleak_ipv4.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_open.o -MD -MP -MF .deps/fdleak_open.Tpo -c -o fdleak_open.o fdleak_open.c
++mv -f .deps/fdleak_open.Tpo .deps/fdleak_open.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_open fdleak_open.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_pipe.o -MD -MP -MF .deps/fdleak_pipe.Tpo -c -o fdleak_pipe.o fdleak_pipe.c
++mv -f .deps/fdleak_pipe.Tpo .deps/fdleak_pipe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_pipe fdleak_pipe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_socketpair.o -MD -MP -MF .deps/fdleak_socketpair.Tpo -c -o fdleak_socketpair.o fdleak_socketpair.c
++mv -f .deps/fdleak_socketpair.Tpo .deps/fdleak_socketpair.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_socketpair fdleak_socketpair.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT floored.o -MD -MP -MF .deps/floored.Tpo -c -o floored.o floored.c
++mv -f .deps/floored.Tpo .deps/floored.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o floored floored.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork.o -MD -MP -MF .deps/fork.Tpo -c -o fork.o fork.c
++mv -f .deps/fork.Tpo .deps/fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork fork.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fucomip.o -MD -MP -MF .deps/fucomip.Tpo -c -o fucomip.o fucomip.c
++mv -f .deps/fucomip.Tpo .deps/fucomip.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fucomip fucomip.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmap_fcntl_bug.o -MD -MP -MF .deps/mmap_fcntl_bug.Tpo -c -o mmap_fcntl_bug.o mmap_fcntl_bug.c
++mv -f .deps/mmap_fcntl_bug.Tpo .deps/mmap_fcntl_bug.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmap_fcntl_bug mmap_fcntl_bug.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT munmap_exe.o -MD -MP -MF .deps/munmap_exe.Tpo -c -o munmap_exe.o munmap_exe.c
++mv -f .deps/munmap_exe.Tpo .deps/munmap_exe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o munmap_exe munmap_exe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unaligned.o -MD -MP -MF .deps/map_unaligned.Tpo -c -o map_unaligned.o map_unaligned.c
++mv -f .deps/map_unaligned.Tpo .deps/map_unaligned.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unaligned map_unaligned.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unmap.o -MD -MP -MF .deps/map_unmap.Tpo -c -o map_unmap.o map_unmap.c
++mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unmap map_unmap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c
++mv -f .deps/mq.Tpo .deps/mq.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mq mq.o -lrt 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c
++mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nestedfns nestedfns-nestedfns.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c
++mv -f .deps/pending.Tpo .deps/pending.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pending pending.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c
++mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o procfs-cmdline-exe procfs-cmdline-exe.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c
++mv -f .deps/pth_atfork1.Tpo .deps/pth_atfork1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_atfork1 pth_atfork1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_blockedsig.o -MD -MP -MF .deps/pth_blockedsig.Tpo -c -o pth_blockedsig.o pth_blockedsig.c
++mv -f .deps/pth_blockedsig.Tpo .deps/pth_blockedsig.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_blockedsig pth_blockedsig.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel1-pth_cancel1.o -MD -MP -MF .deps/pth_cancel1-pth_cancel1.Tpo -c -o pth_cancel1-pth_cancel1.o `test -f 'pth_cancel1.c' || echo './'`pth_cancel1.c
++mv -f .deps/pth_cancel1-pth_cancel1.Tpo .deps/pth_cancel1-pth_cancel1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel1 pth_cancel1-pth_cancel1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel2.o -MD -MP -MF .deps/pth_cancel2.Tpo -c -o pth_cancel2.o pth_cancel2.c
++mv -f .deps/pth_cancel2.Tpo .deps/pth_cancel2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel2 pth_cancel2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cvsimple.o -MD -MP -MF .deps/pth_cvsimple.Tpo -c -o pth_cvsimple.o pth_cvsimple.c
++mv -f .deps/pth_cvsimple.Tpo .deps/pth_cvsimple.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cvsimple pth_cvsimple.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_empty.o -MD -MP -MF .deps/pth_empty.Tpo -c -o pth_empty.o pth_empty.c
++mv -f .deps/pth_empty.Tpo .deps/pth_empty.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_empty pth_empty.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit.o -MD -MP -MF .deps/pth_exit.Tpo -c -o pth_exit.o pth_exit.c
++mv -f .deps/pth_exit.Tpo .deps/pth_exit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit pth_exit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit2.o -MD -MP -MF .deps/pth_exit2.Tpo -c -o pth_exit2.o pth_exit2.c
++mv -f .deps/pth_exit2.Tpo .deps/pth_exit2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit2 pth_exit2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutexspeed.o -MD -MP -MF .deps/pth_mutexspeed.Tpo -c -o pth_mutexspeed.o pth_mutexspeed.c
++mv -f .deps/pth_mutexspeed.Tpo .deps/pth_mutexspeed.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutexspeed pth_mutexspeed.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_once.o -MD -MP -MF .deps/pth_once.Tpo -c -o pth_once.o pth_once.c
++mv -f .deps/pth_once.Tpo .deps/pth_once.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_once pth_once.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_rwlock.o -MD -MP -MF .deps/pth_rwlock.Tpo -c -o pth_rwlock.o pth_rwlock.c
++mv -f .deps/pth_rwlock.Tpo .deps/pth_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_rwlock pth_rwlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_stackalign.o -MD -MP -MF .deps/pth_stackalign.Tpo -c -o pth_stackalign.o pth_stackalign.c
++mv -f .deps/pth_stackalign.Tpo .deps/pth_stackalign.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_stackalign pth_stackalign.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rcrl.o -MD -MP -MF .deps/rcrl.Tpo -c -o rcrl.o rcrl.c
++mv -f .deps/rcrl.Tpo .deps/rcrl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rcrl rcrl.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT readline1.o -MD -MP -MF .deps/readline1.Tpo -c -o readline1.o readline1.c
++mv -f .deps/readline1.Tpo .deps/readline1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o readline1 readline1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT require-text-symbol.o -MD -MP -MF .deps/require-text-symbol.Tpo -c -o require-text-symbol.o require-text-symbol.c
++mv -f .deps/require-text-symbol.Tpo .deps/require-text-symbol.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o require-text-symbol require-text-symbol.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT res_search.o -MD -MP -MF .deps/res_search.Tpo -c -o res_search.o res_search.c
++mv -f .deps/res_search.Tpo .deps/res_search.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o res_search res_search.o -lresolv -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT resolv.o -MD -MP -MF .deps/resolv.Tpo -c -o resolv.o resolv.c
++mv -f .deps/resolv.Tpo .deps/resolv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o resolv resolv.o -lresolv -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c
++mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit_nofile rlimit_nofile.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c
++mv -f .deps/selfrun.Tpo .deps/selfrun.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o selfrun selfrun.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c
++mv -f .deps/sem.Tpo .deps/sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem sem.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c
++mv -f .deps/semlimit.Tpo .deps/semlimit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o semlimit semlimit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c
++mv -f .deps/sha1_test.Tpo .deps/sha1_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sha1_test sha1_test.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shortpush.o -MD -MP -MF .deps/shortpush.Tpo -c -o shortpush.o shortpush.c
++mv -f .deps/shortpush.Tpo .deps/shortpush.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shortpush shortpush.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shorts.o -MD -MP -MF .deps/shorts.Tpo -c -o shorts.o shorts.c
++mv -f .deps/shorts.Tpo .deps/shorts.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shorts shorts.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackgrowth.o -MD -MP -MF .deps/stackgrowth.Tpo -c -o stackgrowth.o stackgrowth.c
++mv -f .deps/stackgrowth.Tpo .deps/stackgrowth.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackgrowth stackgrowth.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigstackgrowth.o -MD -MP -MF .deps/sigstackgrowth.Tpo -c -o sigstackgrowth.o sigstackgrowth.c
++mv -f .deps/sigstackgrowth.Tpo .deps/sigstackgrowth.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigstackgrowth sigstackgrowth.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart1.o -MD -MP -MF .deps/syscall-restart1.Tpo -c -o syscall-restart1.o syscall-restart1.c
++mv -f .deps/syscall-restart1.Tpo .deps/syscall-restart1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart1 syscall-restart1.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart2.o -MD -MP -MF .deps/syscall-restart2.Tpo -c -o syscall-restart2.o syscall-restart2.c
++mv -f .deps/syscall-restart2.Tpo .deps/syscall-restart2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart2 syscall-restart2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog.o -MD -MP -MF .deps/syslog.Tpo -c -o syslog.o syslog.c
++mv -f .deps/syslog.Tpo .deps/syslog.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog syslog.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT system.o -MD -MP -MF .deps/system.Tpo -c -o system.o system.c
++mv -f .deps/system.Tpo .deps/system.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o system system.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
++mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threadederrno.o -MD -MP -MF .deps/threadederrno.Tpo -c -o threadederrno.o threadederrno.c
++mv -f .deps/threadederrno.Tpo .deps/threadederrno.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threadederrno threadederrno.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timestamp.o -MD -MP -MF .deps/timestamp.Tpo -c -o timestamp.o timestamp.c
++mv -f .deps/timestamp.Tpo .deps/timestamp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timestamp timestamp.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls.o -MD -MP -MF .deps/tls.Tpo -c -o tls.o tls.c
++mv -f .deps/tls.Tpo .deps/tls.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2.o -MD -MP -MF .deps/tls2.Tpo -c -o tls2.o tls2.c
++mv -f .deps/tls2.Tpo .deps/tls2.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls_so-tls_so.o -MD -MP -MF .deps/tls_so-tls_so.Tpo -c -o tls_so-tls_so.o `test -f 'tls_so.c' || echo './'`tls_so.c
++mv -f .deps/tls_so-tls_so.Tpo .deps/tls_so-tls_so.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2_so.o -MD -MP -MF .deps/tls2_so.Tpo -c -o tls2_so.o tls2_so.c
++mv -f .deps/tls2_so.Tpo .deps/tls2_so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -shared  -o tls2.so tls2_so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests -shared -fPIC  -o tls.so tls_so-tls_so.o tls2.so 
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests  -o tls tls.o tls2.o tls.so tls2.so -lpthread 
++make[5]: `tls.so' is up to date.
++make[5]: `tls2.so' is up to date.
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT valgrind_cpp_test.o -MD -MP -MF .deps/valgrind_cpp_test.Tpo -c -o valgrind_cpp_test.o valgrind_cpp_test.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/valgrind_cpp_test.Tpo .deps/valgrind_cpp_test.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o valgrind_cpp_test valgrind_cpp_test.o -lstdc++ 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vgprintf.o -MD -MP -MF .deps/vgprintf.Tpo -c -o vgprintf.o vgprintf.c
++mv -f .deps/vgprintf.Tpo .deps/vgprintf.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vgprintf vgprintf.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_sigaction.o -MD -MP -MF .deps/coolo_sigaction.Tpo -c -o coolo_sigaction.o coolo_sigaction.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/coolo_sigaction.Tpo .deps/coolo_sigaction.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_sigaction coolo_sigaction.o  
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT gxx304.o -MD -MP -MF .deps/gxx304.Tpo -c -o gxx304.o gxx304.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/gxx304.Tpo .deps/gxx304.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o gxx304 gxx304.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT process_vm_readv_writev.o -MD -MP -MF .deps/process_vm_readv_writev.Tpo -c -o process_vm_readv_writev.o process_vm_readv_writev.c
++mv -f .deps/process_vm_readv_writev.Tpo .deps/process_vm_readv_writev.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o process_vm_readv_writev process_vm_readv_writev.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manythreads.o -MD -MP -MF .deps/manythreads.Tpo -c -o manythreads.o manythreads.c
++mv -f .deps/manythreads.Tpo .deps/manythreads.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manythreads manythreads.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread-exits.o -MD -MP -MF .deps/thread-exits.Tpo -c -o thread-exits.o thread-exits.c
++mv -f .deps/thread-exits.Tpo .deps/thread-exits.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread-exits thread-exits.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit64_nofile.o -MD -MP -MF .deps/rlimit64_nofile.Tpo -c -o rlimit64_nofile.o rlimit64_nofile.c
++mv -f .deps/rlimit64_nofile.Tpo .deps/rlimit64_nofile.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit64_nofile rlimit64_nofile.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 80 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++Making check in ppc32
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make  allexec bug129390-ppc32 bug139050-ppc32 ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
++mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129390-ppc32.o -MD -MP -MF .deps/bug129390-ppc32.Tpo -c -o bug129390-ppc32.o bug129390-ppc32.c
++mv -f .deps/bug129390-ppc32.Tpo .deps/bug129390-ppc32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129390-ppc32 bug129390-ppc32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug139050-ppc32.o -MD -MP -MF .deps/bug139050-ppc32.Tpo -c -o bug139050-ppc32.o bug139050-ppc32.c
++mv -f .deps/bug139050-ppc32.Tpo .deps/bug139050-ppc32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug139050-ppc32 bug139050-ppc32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ldstrev.o -MD -MP -MF .deps/ldstrev.Tpo -c -o ldstrev.o ldstrev.c
++mv -f .deps/ldstrev.Tpo .deps/ldstrev.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ldstrev ldstrev.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
++mv -f .deps/lsw.Tpo .deps/lsw.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
++mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mftocrf.o -MD -MP -MF .deps/mftocrf.Tpo -c -o mftocrf.o mftocrf.c
++mv -f .deps/mftocrf.Tpo .deps/mftocrf.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mftocrf mftocrf.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mcrfs.o -MD -MP -MF .deps/mcrfs.Tpo -c -o mcrfs.o mcrfs.c
++mv -f .deps/mcrfs.Tpo .deps/mcrfs.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mcrfs mcrfs.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
++mv -f .deps/round.Tpo .deps/round.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_fx.o -MD -MP -MF .deps/test_fx.Tpo -c -o test_fx.o test_fx.c
++mv -f .deps/test_fx.Tpo .deps/test_fx.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_fx test_fx.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_gx.o -MD -MP -MF .deps/test_gx.Tpo -c -o test_gx.o test_gx.c
++mv -f .deps/test_gx.Tpo .deps/test_gx.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_gx test_gx.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT testVMX-testVMX.o -MD -MP -MF .deps/testVMX-testVMX.Tpo -c -o testVMX-testVMX.o `test -f 'testVMX.c' || echo './'`testVMX.c
++mv -f .deps/testVMX-testVMX.Tpo .deps/testVMX-testVMX.Po
++gcc -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o testVMX testVMX-testVMX.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi.o -MD -MP -MF .deps/twi.Tpo -c -o twi.o twi.c
++mv -f .deps/twi.Tpo .deps/twi.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi twi.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw.o -MD -MP -MF .deps/tw.Tpo -c -o tw.o tw.c
++mv -f .deps/tw.Tpo .deps/tw.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw tw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xlc_dbl_u32.o -MD -MP -MF .deps/xlc_dbl_u32.Tpo -c -o xlc_dbl_u32.o xlc_dbl_u32.c
++mv -f .deps/xlc_dbl_u32.Tpo .deps/xlc_dbl_u32.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xlc_dbl_u32 xlc_dbl_u32.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power5+_round.o -MD -MP -MF .deps/power5+_round.Tpo -c -o power5+_round.o power5+_round.c
++mv -f .deps/power5+_round.Tpo .deps/power5+_round.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power5+_round power5+_round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
++mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
++mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
++mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
++mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
++mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
++mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
++mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
++mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
++mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
++gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 79 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++Making check in ppc64
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make  allexec jm-insns lsw round std_reg_imm twi_tdi tw_td power6_bcmp power6_mf_gpr test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
++mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
++mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
++mv -f .deps/lsw.Tpo .deps/lsw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
++mv -f .deps/round.Tpo .deps/round.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_reg_imm.o -MD -MP -MF .deps/std_reg_imm.Tpo -c -o std_reg_imm.o std_reg_imm.c
++mv -f .deps/std_reg_imm.Tpo .deps/std_reg_imm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_reg_imm std_reg_imm.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi_tdi.o -MD -MP -MF .deps/twi_tdi.Tpo -c -o twi_tdi.o twi_tdi.c
++mv -f .deps/twi_tdi.Tpo .deps/twi_tdi.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi_tdi twi_tdi.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw_td.o -MD -MP -MF .deps/tw_td.Tpo -c -o tw_td.o tw_td.c
++mv -f .deps/tw_td.Tpo .deps/tw_td.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw_td tw_td.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
++mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_mf_gpr.o -MD -MP -MF .deps/power6_mf_gpr.Tpo -c -o power6_mf_gpr.o power6_mf_gpr.c
++mv -f .deps/power6_mf_gpr.Tpo .deps/power6_mf_gpr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_mf_gpr power6_mf_gpr.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
++mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
++mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
++mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
++mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
++mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
++mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
++mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
++mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 79 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++Making check in linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make  blockfault mremap mremap2 mremap3
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT blockfault.o -MD -MP -MF .deps/blockfault.Tpo -c -o blockfault.o blockfault.c
++mv -f .deps/blockfault.Tpo .deps/blockfault.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o blockfault blockfault.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap.o -MD -MP -MF .deps/mremap.Tpo -c -o mremap.o mremap.c
++mv -f .deps/mremap.Tpo .deps/mremap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap mremap.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap2.o -MD -MP -MF .deps/mremap2.Tpo -c -o mremap2.o mremap2.c
++mv -f .deps/mremap2.Tpo .deps/mremap2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap2 mremap2.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap3.o -MD -MP -MF .deps/mremap3.Tpo -c -o mremap3.o mremap3.c
++mv -f .deps/mremap3.Tpo .deps/mremap3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap3 mremap3.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
++Making check in helgrind
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++mkdir -p ../.in_place; \
++for f in helgrind-ppc64-linux helgrind-ppc32-linux vgpreload_helgrind-ppc64-linux.so vgpreload_helgrind-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../helgrind/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../helgrind/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make  annotate_hbefore cond_timedwait_invalid free_is_write hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared locked_vs_unlocked1 locked_vs_unlocked2 locked_vs_unlocked3 pth_destroy_cond t2t tc01_simple_race tc02_simple_tls tc03_re_excl tc04_free_lock tc05_simple_race tc06_two_races tc07_hbl1 tc08_hbl2 tc09_bad_unlock tc10_rec_lock tc11_XCHG tc12_rwl_trivial tc13_laog1 tc14_laog_dinphils tc15_laog_lockdel tc16_byterace tc17_sembar tc18_semabuse tc19_shadowmem tc21_pthonce tc23_bogus_condwait tc24_nonzero_sem tc22_exit_w_lock bar_bad bar_trivial tc20_verifywrap annotate_rwlock
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hbefore-annotate_hbefore.o -MD -MP -MF .deps/annotate_hbefore-annotate_hbefore.Tpo -c -o annotate_hbefore-annotate_hbefore.o `test -f 'annotate_hbefore.c' || echo './'`annotate_hbefore.c
++mv -f .deps/annotate_hbefore-annotate_hbefore.Tpo .deps/annotate_hbefore-annotate_hbefore.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hbefore annotate_hbefore-annotate_hbefore.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT cond_timedwait_invalid.o -MD -MP -MF .deps/cond_timedwait_invalid.Tpo -c -o cond_timedwait_invalid.o cond_timedwait_invalid.c
++mv -f .deps/cond_timedwait_invalid.Tpo .deps/cond_timedwait_invalid.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o cond_timedwait_invalid cond_timedwait_invalid.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
++mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg01_all_ok.o -MD -MP -MF .deps/hg01_all_ok.Tpo -c -o hg01_all_ok.o hg01_all_ok.c
++mv -f .deps/hg01_all_ok.Tpo .deps/hg01_all_ok.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg01_all_ok hg01_all_ok.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg02_deadlock.o -MD -MP -MF .deps/hg02_deadlock.Tpo -c -o hg02_deadlock.o hg02_deadlock.c
++mv -f .deps/hg02_deadlock.Tpo .deps/hg02_deadlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg02_deadlock hg02_deadlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg03_inherit.o -MD -MP -MF .deps/hg03_inherit.Tpo -c -o hg03_inherit.o hg03_inherit.c
++mv -f .deps/hg03_inherit.Tpo .deps/hg03_inherit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg03_inherit hg03_inherit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg04_race.o -MD -MP -MF .deps/hg04_race.Tpo -c -o hg04_race.o hg04_race.c
++mv -f .deps/hg04_race.Tpo .deps/hg04_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg04_race hg04_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg05_race2.o -MD -MP -MF .deps/hg05_race2.Tpo -c -o hg05_race2.o hg05_race2.c
++mv -f .deps/hg05_race2.Tpo .deps/hg05_race2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg05_race2 hg05_race2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg06_readshared.o -MD -MP -MF .deps/hg06_readshared.Tpo -c -o hg06_readshared.o hg06_readshared.c
++mv -f .deps/hg06_readshared.Tpo .deps/hg06_readshared.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg06_readshared hg06_readshared.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked1.o -MD -MP -MF .deps/locked_vs_unlocked1.Tpo -c -o locked_vs_unlocked1.o locked_vs_unlocked1.c
++mv -f .deps/locked_vs_unlocked1.Tpo .deps/locked_vs_unlocked1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked1 locked_vs_unlocked1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked2.o -MD -MP -MF .deps/locked_vs_unlocked2.Tpo -c -o locked_vs_unlocked2.o locked_vs_unlocked2.c
++mv -f .deps/locked_vs_unlocked2.Tpo .deps/locked_vs_unlocked2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked2 locked_vs_unlocked2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked3.o -MD -MP -MF .deps/locked_vs_unlocked3.Tpo -c -o locked_vs_unlocked3.o locked_vs_unlocked3.c
++mv -f .deps/locked_vs_unlocked3.Tpo .deps/locked_vs_unlocked3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked3 locked_vs_unlocked3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_destroy_cond.o -MD -MP -MF .deps/pth_destroy_cond.Tpo -c -o pth_destroy_cond.o pth_destroy_cond.c
++mv -f .deps/pth_destroy_cond.Tpo .deps/pth_destroy_cond.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_destroy_cond pth_destroy_cond.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t2t.o -MD -MP -MF .deps/t2t.Tpo -c -o t2t.o t2t.c
++mv -f .deps/t2t.Tpo .deps/t2t.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t2t t2t.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc01_simple_race.o -MD -MP -MF .deps/tc01_simple_race.Tpo -c -o tc01_simple_race.o tc01_simple_race.c
++mv -f .deps/tc01_simple_race.Tpo .deps/tc01_simple_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc01_simple_race tc01_simple_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc02_simple_tls.o -MD -MP -MF .deps/tc02_simple_tls.Tpo -c -o tc02_simple_tls.o tc02_simple_tls.c
++mv -f .deps/tc02_simple_tls.Tpo .deps/tc02_simple_tls.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc02_simple_tls tc02_simple_tls.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc03_re_excl.o -MD -MP -MF .deps/tc03_re_excl.Tpo -c -o tc03_re_excl.o tc03_re_excl.c
++mv -f .deps/tc03_re_excl.Tpo .deps/tc03_re_excl.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc03_re_excl tc03_re_excl.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc04_free_lock.o -MD -MP -MF .deps/tc04_free_lock.Tpo -c -o tc04_free_lock.o tc04_free_lock.c
++mv -f .deps/tc04_free_lock.Tpo .deps/tc04_free_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc04_free_lock tc04_free_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc05_simple_race.o -MD -MP -MF .deps/tc05_simple_race.Tpo -c -o tc05_simple_race.o tc05_simple_race.c
++mv -f .deps/tc05_simple_race.Tpo .deps/tc05_simple_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc05_simple_race tc05_simple_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc06_two_races.o -MD -MP -MF .deps/tc06_two_races.Tpo -c -o tc06_two_races.o tc06_two_races.c
++mv -f .deps/tc06_two_races.Tpo .deps/tc06_two_races.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc06_two_races tc06_two_races.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc07_hbl1-tc07_hbl1.o -MD -MP -MF .deps/tc07_hbl1-tc07_hbl1.Tpo -c -o tc07_hbl1-tc07_hbl1.o `test -f 'tc07_hbl1.c' || echo './'`tc07_hbl1.c
++mv -f .deps/tc07_hbl1-tc07_hbl1.Tpo .deps/tc07_hbl1-tc07_hbl1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc07_hbl1 tc07_hbl1-tc07_hbl1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc08_hbl2-tc08_hbl2.o -MD -MP -MF .deps/tc08_hbl2-tc08_hbl2.Tpo -c -o tc08_hbl2-tc08_hbl2.o `test -f 'tc08_hbl2.c' || echo './'`tc08_hbl2.c
++mv -f .deps/tc08_hbl2-tc08_hbl2.Tpo .deps/tc08_hbl2-tc08_hbl2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc08_hbl2 tc08_hbl2-tc08_hbl2.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc09_bad_unlock.o -MD -MP -MF .deps/tc09_bad_unlock.Tpo -c -o tc09_bad_unlock.o tc09_bad_unlock.c
++mv -f .deps/tc09_bad_unlock.Tpo .deps/tc09_bad_unlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc09_bad_unlock tc09_bad_unlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc10_rec_lock.o -MD -MP -MF .deps/tc10_rec_lock.Tpo -c -o tc10_rec_lock.o tc10_rec_lock.c
++mv -f .deps/tc10_rec_lock.Tpo .deps/tc10_rec_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc10_rec_lock tc10_rec_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc11_XCHG.o -MD -MP -MF .deps/tc11_XCHG.Tpo -c -o tc11_XCHG.o tc11_XCHG.c
++mv -f .deps/tc11_XCHG.Tpo .deps/tc11_XCHG.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc11_XCHG tc11_XCHG.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc12_rwl_trivial.o -MD -MP -MF .deps/tc12_rwl_trivial.Tpo -c -o tc12_rwl_trivial.o tc12_rwl_trivial.c
++mv -f .deps/tc12_rwl_trivial.Tpo .deps/tc12_rwl_trivial.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc12_rwl_trivial tc12_rwl_trivial.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc13_laog1.o -MD -MP -MF .deps/tc13_laog1.Tpo -c -o tc13_laog1.o tc13_laog1.c
++mv -f .deps/tc13_laog1.Tpo .deps/tc13_laog1.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc13_laog1 tc13_laog1.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc14_laog_dinphils.o -MD -MP -MF .deps/tc14_laog_dinphils.Tpo -c -o tc14_laog_dinphils.o tc14_laog_dinphils.c
++mv -f .deps/tc14_laog_dinphils.Tpo .deps/tc14_laog_dinphils.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc14_laog_dinphils tc14_laog_dinphils.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc15_laog_lockdel.o -MD -MP -MF .deps/tc15_laog_lockdel.Tpo -c -o tc15_laog_lockdel.o tc15_laog_lockdel.c
++mv -f .deps/tc15_laog_lockdel.Tpo .deps/tc15_laog_lockdel.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc15_laog_lockdel tc15_laog_lockdel.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc16_byterace.o -MD -MP -MF .deps/tc16_byterace.Tpo -c -o tc16_byterace.o tc16_byterace.c
++mv -f .deps/tc16_byterace.Tpo .deps/tc16_byterace.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc16_byterace tc16_byterace.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc17_sembar.o -MD -MP -MF .deps/tc17_sembar.Tpo -c -o tc17_sembar.o tc17_sembar.c
++mv -f .deps/tc17_sembar.Tpo .deps/tc17_sembar.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc17_sembar tc17_sembar.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc18_semabuse.o -MD -MP -MF .deps/tc18_semabuse.Tpo -c -o tc18_semabuse.o tc18_semabuse.c
++mv -f .deps/tc18_semabuse.Tpo .deps/tc18_semabuse.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc18_semabuse tc18_semabuse.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc19_shadowmem.o -MD -MP -MF .deps/tc19_shadowmem.Tpo -c -o tc19_shadowmem.o tc19_shadowmem.c
++mv -f .deps/tc19_shadowmem.Tpo .deps/tc19_shadowmem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc19_shadowmem tc19_shadowmem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc21_pthonce.o -MD -MP -MF .deps/tc21_pthonce.Tpo -c -o tc21_pthonce.o tc21_pthonce.c
++mv -f .deps/tc21_pthonce.Tpo .deps/tc21_pthonce.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc21_pthonce tc21_pthonce.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc23_bogus_condwait.o -MD -MP -MF .deps/tc23_bogus_condwait.Tpo -c -o tc23_bogus_condwait.o tc23_bogus_condwait.c
++mv -f .deps/tc23_bogus_condwait.Tpo .deps/tc23_bogus_condwait.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc23_bogus_condwait tc23_bogus_condwait.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc24_nonzero_sem.o -MD -MP -MF .deps/tc24_nonzero_sem.Tpo -c -o tc24_nonzero_sem.o tc24_nonzero_sem.c
++mv -f .deps/tc24_nonzero_sem.Tpo .deps/tc24_nonzero_sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc24_nonzero_sem tc24_nonzero_sem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc22_exit_w_lock.o -MD -MP -MF .deps/tc22_exit_w_lock.Tpo -c -o tc22_exit_w_lock.o tc22_exit_w_lock.c
++mv -f .deps/tc22_exit_w_lock.Tpo .deps/tc22_exit_w_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc22_exit_w_lock tc22_exit_w_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_bad.o -MD -MP -MF .deps/bar_bad.Tpo -c -o bar_bad.o bar_bad.c
++mv -f .deps/bar_bad.Tpo .deps/bar_bad.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_bad bar_bad.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_trivial.o -MD -MP -MF .deps/bar_trivial.Tpo -c -o bar_trivial.o bar_trivial.c
++mv -f .deps/bar_trivial.Tpo .deps/bar_trivial.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_trivial bar_trivial.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc20_verifywrap.o -MD -MP -MF .deps/tc20_verifywrap.Tpo -c -o tc20_verifywrap.o tc20_verifywrap.c
++mv -f .deps/tc20_verifywrap.Tpo .deps/tc20_verifywrap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc20_verifywrap tc20_verifywrap.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
++mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 81 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
++Making check in drd
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++mkdir -p ../.in_place; \
++for f in drd-ppc64-linux drd-ppc32-linux vgpreload_drd-ppc64-linux.so vgpreload_drd-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../drd/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../drd/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make  annotate_hb_err annotate_hb_race annotate_ignore_rw annotate_ignore_write annotate_publish_hg annotate_static bug-235681 custom_alloc fp_race free_is_write hold_lock linuxthreads_det memory_allocation monitor_example new_delete pth_broadcast pth_cancel_locked pth_cleanup_handler pth_cond_race pth_create_chain pth_detached pth_detached_sem pth_detached3 pth_inconsistent_cond_wait pth_mutex_reinit pth_process_shared_mutex pth_uninitialized_cond recursive_mutex rwlock_race rwlock_test rwlock_type_checking sem_as_mutex sem_open sigalrm thread_name threaded-fork trylock unit_bitmap unit_vc  annotate_barrier annotate_rwlock atomic_var circular_buffer  annotate_smart_pointer tsan_unittest std_thread omp_matinv omp_prime omp_printf matinv pth_barrier pth_barrier_race pth_barrier_reinit pth_barrier_thr_cr  pth_spinlock
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_err.o -MD -MP -MF .deps/annotate_hb_err.Tpo -c -o annotate_hb_err.o annotate_hb_err.c
++mv -f .deps/annotate_hb_err.Tpo .deps/annotate_hb_err.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_err annotate_hb_err.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_race.o -MD -MP -MF .deps/annotate_hb_race.Tpo -c -o annotate_hb_race.o annotate_hb_race.c
++mv -f .deps/annotate_hb_race.Tpo .deps/annotate_hb_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_race annotate_hb_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_rw.o -MD -MP -MF .deps/annotate_ignore_rw.Tpo -c -o annotate_ignore_rw.o annotate_ignore_rw.c
++mv -f .deps/annotate_ignore_rw.Tpo .deps/annotate_ignore_rw.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_rw annotate_ignore_rw.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_write.o -MD -MP -MF .deps/annotate_ignore_write.Tpo -c -o annotate_ignore_write.o annotate_ignore_write.c
++mv -f .deps/annotate_ignore_write.Tpo .deps/annotate_ignore_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_write annotate_ignore_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_publish_hg.o -MD -MP -MF .deps/annotate_publish_hg.Tpo -c -o annotate_publish_hg.o annotate_publish_hg.c
++mv -f .deps/annotate_publish_hg.Tpo .deps/annotate_publish_hg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_publish_hg annotate_publish_hg.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_static.o -MD -MP -MF .deps/annotate_static.Tpo -c -o annotate_static.o annotate_static.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/annotate_static.Tpo .deps/annotate_static.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_static annotate_static.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug-235681.o -MD -MP -MF .deps/bug-235681.Tpo -c -o bug-235681.o bug-235681.c
++mv -f .deps/bug-235681.Tpo .deps/bug-235681.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug-235681 bug-235681.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
++mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fp_race.o -MD -MP -MF .deps/fp_race.Tpo -c -o fp_race.o fp_race.c
++mv -f .deps/fp_race.Tpo .deps/fp_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fp_race fp_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
++mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hold_lock.o -MD -MP -MF .deps/hold_lock.Tpo -c -o hold_lock.o hold_lock.c
++mv -f .deps/hold_lock.Tpo .deps/hold_lock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hold_lock hold_lock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT linuxthreads_det.o -MD -MP -MF .deps/linuxthreads_det.Tpo -c -o linuxthreads_det.o linuxthreads_det.c
++mv -f .deps/linuxthreads_det.Tpo .deps/linuxthreads_det.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o linuxthreads_det linuxthreads_det.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memory_allocation.o -MD -MP -MF .deps/memory_allocation.Tpo -c -o memory_allocation.o memory_allocation.c
++mv -f .deps/memory_allocation.Tpo .deps/memory_allocation.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memory_allocation memory_allocation.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT monitor_example.o -MD -MP -MF .deps/monitor_example.Tpo -c -o monitor_example.o monitor_example.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/monitor_example.Tpo .deps/monitor_example.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o monitor_example monitor_example.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_delete.o -MD -MP -MF .deps/new_delete.Tpo -c -o new_delete.o new_delete.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/new_delete.Tpo .deps/new_delete.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_delete new_delete.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_broadcast.o -MD -MP -MF .deps/pth_broadcast.Tpo -c -o pth_broadcast.o pth_broadcast.c
++mv -f .deps/pth_broadcast.Tpo .deps/pth_broadcast.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_broadcast pth_broadcast.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel_locked.o -MD -MP -MF .deps/pth_cancel_locked.Tpo -c -o pth_cancel_locked.o pth_cancel_locked.c
++mv -f .deps/pth_cancel_locked.Tpo .deps/pth_cancel_locked.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel_locked pth_cancel_locked.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cleanup_handler-pth_cleanup_handler.o -MD -MP -MF .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo -c -o pth_cleanup_handler-pth_cleanup_handler.o `test -f 'pth_cleanup_handler.c' || echo './'`pth_cleanup_handler.c
++mv -f .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo .deps/pth_cleanup_handler-pth_cleanup_handler.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cleanup_handler pth_cleanup_handler-pth_cleanup_handler.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cond_race.o -MD -MP -MF .deps/pth_cond_race.Tpo -c -o pth_cond_race.o pth_cond_race.c
++mv -f .deps/pth_cond_race.Tpo .deps/pth_cond_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cond_race pth_cond_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_create_chain.o -MD -MP -MF .deps/pth_create_chain.Tpo -c -o pth_create_chain.o pth_create_chain.c
++mv -f .deps/pth_create_chain.Tpo .deps/pth_create_chain.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_create_chain pth_create_chain.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached.o -MD -MP -MF .deps/pth_detached.Tpo -c -o pth_detached.o pth_detached.c
++mv -f .deps/pth_detached.Tpo .deps/pth_detached.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached pth_detached.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached_sem.o -MD -MP -MF .deps/pth_detached_sem.Tpo -c -o pth_detached_sem.o pth_detached_sem.c
++mv -f .deps/pth_detached_sem.Tpo .deps/pth_detached_sem.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached_sem pth_detached_sem.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached3.o -MD -MP -MF .deps/pth_detached3.Tpo -c -o pth_detached3.o pth_detached3.c
++mv -f .deps/pth_detached3.Tpo .deps/pth_detached3.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached3 pth_detached3.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_inconsistent_cond_wait.o -MD -MP -MF .deps/pth_inconsistent_cond_wait.Tpo -c -o pth_inconsistent_cond_wait.o pth_inconsistent_cond_wait.c
++mv -f .deps/pth_inconsistent_cond_wait.Tpo .deps/pth_inconsistent_cond_wait.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_inconsistent_cond_wait pth_inconsistent_cond_wait.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutex_reinit.o -MD -MP -MF .deps/pth_mutex_reinit.Tpo -c -o pth_mutex_reinit.o pth_mutex_reinit.c
++mv -f .deps/pth_mutex_reinit.Tpo .deps/pth_mutex_reinit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutex_reinit pth_mutex_reinit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_process_shared_mutex.o -MD -MP -MF .deps/pth_process_shared_mutex.Tpo -c -o pth_process_shared_mutex.o pth_process_shared_mutex.c
++mv -f .deps/pth_process_shared_mutex.Tpo .deps/pth_process_shared_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_process_shared_mutex pth_process_shared_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_uninitialized_cond.o -MD -MP -MF .deps/pth_uninitialized_cond.Tpo -c -o pth_uninitialized_cond.o pth_uninitialized_cond.c
++mv -f .deps/pth_uninitialized_cond.Tpo .deps/pth_uninitialized_cond.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_uninitialized_cond pth_uninitialized_cond.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT recursive_mutex.o -MD -MP -MF .deps/recursive_mutex.Tpo -c -o recursive_mutex.o recursive_mutex.c
++mv -f .deps/recursive_mutex.Tpo .deps/recursive_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o recursive_mutex recursive_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_race.o -MD -MP -MF .deps/rwlock_race.Tpo -c -o rwlock_race.o rwlock_race.c
++mv -f .deps/rwlock_race.Tpo .deps/rwlock_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_race rwlock_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_test.o -MD -MP -MF .deps/rwlock_test.Tpo -c -o rwlock_test.o rwlock_test.c
++mv -f .deps/rwlock_test.Tpo .deps/rwlock_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_test rwlock_test.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_type_checking.o -MD -MP -MF .deps/rwlock_type_checking.Tpo -c -o rwlock_type_checking.o rwlock_type_checking.c
++mv -f .deps/rwlock_type_checking.Tpo .deps/rwlock_type_checking.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_type_checking rwlock_type_checking.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_as_mutex.o -MD -MP -MF .deps/sem_as_mutex.Tpo -c -o sem_as_mutex.o sem_as_mutex.c
++mv -f .deps/sem_as_mutex.Tpo .deps/sem_as_mutex.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_as_mutex sem_as_mutex.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_open.o -MD -MP -MF .deps/sem_open.Tpo -c -o sem_open.o sem_open.c
++mv -f .deps/sem_open.Tpo .deps/sem_open.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_open sem_open.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigalrm.o -MD -MP -MF .deps/sigalrm.Tpo -c -o sigalrm.o sigalrm.c
++mv -f .deps/sigalrm.Tpo .deps/sigalrm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigalrm sigalrm.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread_name.o -MD -MP -MF .deps/thread_name.Tpo -c -o thread_name.o thread_name.c
++mv -f .deps/thread_name.Tpo .deps/thread_name.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread_name thread_name.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
++mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trylock.o -MD -MP -MF .deps/trylock.Tpo -c -o trylock.o trylock.c
++mv -f .deps/trylock.Tpo .deps/trylock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trylock trylock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_bitmap-unit_bitmap.o -MD -MP -MF .deps/unit_bitmap-unit_bitmap.Tpo -c -o unit_bitmap-unit_bitmap.o `test -f 'unit_bitmap.c' || echo './'`unit_bitmap.c
++mv -f .deps/unit_bitmap-unit_bitmap.Tpo .deps/unit_bitmap-unit_bitmap.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_bitmap unit_bitmap-unit_bitmap.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_vc-unit_vc.o -MD -MP -MF .deps/unit_vc-unit_vc.Tpo -c -o unit_vc-unit_vc.o `test -f 'unit_vc.c' || echo './'`unit_vc.c
++mv -f .deps/unit_vc-unit_vc.Tpo .deps/unit_vc-unit_vc.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_vc unit_vc-unit_vc.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_barrier.o -MD -MP -MF .deps/annotate_barrier.Tpo -c -o annotate_barrier.o annotate_barrier.c
++mv -f .deps/annotate_barrier.Tpo .deps/annotate_barrier.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_barrier annotate_barrier.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
++mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c
++mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_var atomic_var.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c
++mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o circular_buffer circular_buffer.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_smart_pointer.o -MD -MP -MF .deps/annotate_smart_pointer.Tpo -c -o annotate_smart_pointer.o annotate_smart_pointer.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/annotate_smart_pointer.Tpo .deps/annotate_smart_pointer.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_smart_pointer annotate_smart_pointer.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/tsan_unittest-tsan_unittest.Tpo .deps/tsan_unittest-tsan_unittest.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tsan_unittest tsan_unittest-tsan_unittest.o -lpthread 
++g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_thread-std_thread.o -MD -MP -MF .deps/std_thread-std_thread.Tpo -c -o std_thread-std_thread.o `test -f 'std_thread.cpp' || echo './'`std_thread.cpp
++cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
++mv -f .deps/std_thread-std_thread.Tpo .deps/std_thread-std_thread.Po
++g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_thread std_thread-std_thread.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_matinv-omp_matinv.o -MD -MP -MF .deps/omp_matinv-omp_matinv.Tpo -c -o omp_matinv-omp_matinv.o `test -f 'omp_matinv.c' || echo './'`omp_matinv.c
++mv -f .deps/omp_matinv-omp_matinv.Tpo .deps/omp_matinv-omp_matinv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_matinv omp_matinv-omp_matinv.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_prime-omp_prime.o -MD -MP -MF .deps/omp_prime-omp_prime.Tpo -c -o omp_prime-omp_prime.o `test -f 'omp_prime.c' || echo './'`omp_prime.c
++mv -f .deps/omp_prime-omp_prime.Tpo .deps/omp_prime-omp_prime.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_prime omp_prime-omp_prime.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_printf-omp_printf.o -MD -MP -MF .deps/omp_printf-omp_printf.Tpo -c -o omp_printf-omp_printf.o `test -f 'omp_printf.c' || echo './'`omp_printf.c
++mv -f .deps/omp_printf-omp_printf.Tpo .deps/omp_printf-omp_printf.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_printf omp_printf-omp_printf.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT matinv.o -MD -MP -MF .deps/matinv.Tpo -c -o matinv.o matinv.c
++mv -f .deps/matinv.Tpo .deps/matinv.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o matinv matinv.o -lpthread -lm 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier.o -MD -MP -MF .deps/pth_barrier.Tpo -c -o pth_barrier.o pth_barrier.c
++mv -f .deps/pth_barrier.Tpo .deps/pth_barrier.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier pth_barrier.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_race.o -MD -MP -MF .deps/pth_barrier_race.Tpo -c -o pth_barrier_race.o pth_barrier_race.c
++mv -f .deps/pth_barrier_race.Tpo .deps/pth_barrier_race.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_race pth_barrier_race.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_reinit.o -MD -MP -MF .deps/pth_barrier_reinit.Tpo -c -o pth_barrier_reinit.o pth_barrier_reinit.c
++mv -f .deps/pth_barrier_reinit.Tpo .deps/pth_barrier_reinit.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_reinit pth_barrier_reinit.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_thr_cr.o -MD -MP -MF .deps/pth_barrier_thr_cr.Tpo -c -o pth_barrier_thr_cr.o pth_barrier_thr_cr.c
++mv -f .deps/pth_barrier_thr_cr.Tpo .deps/pth_barrier_thr_cr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_thr_cr pth_barrier_thr_cr.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_spinlock.o -MD -MP -MF .deps/pth_spinlock.Tpo -c -o pth_spinlock.o pth_spinlock.c
++mv -f .deps/pth_spinlock.Tpo .deps/pth_spinlock.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_spinlock pth_spinlock.o -lpthread 
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
++Making check in exp-sgcheck
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++mkdir -p ../.in_place; \
++for f in exp-sgcheck-ppc64-linux exp-sgcheck-ppc32-linux vgpreload_exp-sgcheck-ppc64-linux.so vgpreload_exp-sgcheck-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-sgcheck/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-sgcheck/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make  bad_percentify globalerr hackedbz2 hsg preen_invars preen_invars_so.so stackerr
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bad_percentify.o -MD -MP -MF .deps/bad_percentify.Tpo -c -o bad_percentify.o bad_percentify.c
++mv -f .deps/bad_percentify.Tpo .deps/bad_percentify.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bad_percentify bad_percentify.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT globalerr.o -MD -MP -MF .deps/globalerr.Tpo -c -o globalerr.o globalerr.c
++mv -f .deps/globalerr.Tpo .deps/globalerr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o globalerr globalerr.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hackedbz2-hackedbz2.o -MD -MP -MF .deps/hackedbz2-hackedbz2.Tpo -c -o hackedbz2-hackedbz2.o `test -f 'hackedbz2.c' || echo './'`hackedbz2.c
++mv -f .deps/hackedbz2-hackedbz2.Tpo .deps/hackedbz2-hackedbz2.Po
++gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hackedbz2 hackedbz2-hackedbz2.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hsg.o -MD -MP -MF .deps/hsg.Tpo -c -o hsg.o hsg.c
++mv -f .deps/hsg.Tpo .deps/hsg.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hsg hsg.o  
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars.o -MD -MP -MF .deps/preen_invars.Tpo -c -o preen_invars.o preen_invars.c
++mv -f .deps/preen_invars.Tpo .deps/preen_invars.Po
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars_so_so-preen_invars_so.o -MD -MP -MF .deps/preen_invars_so_so-preen_invars_so.Tpo -c -o preen_invars_so_so-preen_invars_so.o `test -f 'preen_invars_so.c' || echo './'`preen_invars_so.c
++mv -f .deps/preen_invars_so_so-preen_invars_so.Tpo .deps/preen_invars_so_so-preen_invars_so.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,preen_invars_so.so  -o preen_invars_so.so preen_invars_so_so-preen_invars_so.o  
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o preen_invars preen_invars.o -ldl 
++make[4]: `preen_invars_so.so' is up to date.
++gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackerr.o -MD -MP -MF .deps/stackerr.Tpo -c -o stackerr.o stackerr.c
++mv -f .deps/stackerr.Tpo .deps/stackerr.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackerr stackerr.o  
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make  check-local
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
++Making check in exp-bbv
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++mkdir -p ../.in_place; \
++for f in exp-bbv-ppc64-linux exp-bbv-ppc32-linux ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-bbv/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-bbv/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making check in .
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make  
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making all in .
++make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[6]: Nothing to be done for `all-am'.
++make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making all in ppc32-linux
++make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[6]: Nothing to be done for `all'.
++make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++Making check in ppc32-linux
++make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make  million ll
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT million.o -MD -MP -MF .deps/million.Tpo -c -o million.o million.S
++mv -f .deps/million.Tpo .deps/million.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o million million.o  
++gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT ll.o -MD -MP -MF .deps/ll.Tpo -c -o ll.o ll.S
++mv -f .deps/ll.Tpo .deps/ll.Po
++gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o ll ll.o  
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make  check-local
++make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Warning: File `.deps/million.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
++make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
++Making check in exp-dhat
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in .
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++mkdir -p ../.in_place; \
++for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../exp-dhat/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
++done
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in tests
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
++make[3]: Nothing to be done for `check'.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++Making check in tests
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make  arch_test os_test true x86_amd64_features s390x_features
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT arch_test.o -MD -MP -MF .deps/arch_test.Tpo -c -o arch_test.o arch_test.c
++mv -f .deps/arch_test.Tpo .deps/arch_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o arch_test arch_test.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT os_test.o -MD -MP -MF .deps/os_test.Tpo -c -o os_test.o os_test.c
++mv -f .deps/os_test.Tpo .deps/os_test.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o os_test os_test.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT true.o -MD -MP -MF .deps/true.Tpo -c -o true.o true.c
++mv -f .deps/true.Tpo .deps/true.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o true true.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT x86_amd64_features-x86_amd64_features.o -MD -MP -MF .deps/x86_amd64_features-x86_amd64_features.Tpo -c -o x86_amd64_features-x86_amd64_features.o `test -f 'x86_amd64_features.c' || echo './'`x86_amd64_features.c
++mv -f .deps/x86_amd64_features-x86_amd64_features.Tpo .deps/x86_amd64_features-x86_amd64_features.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o x86_amd64_features x86_amd64_features-x86_amd64_features.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT s390x_features.o -MD -MP -MF .deps/s390x_features.Tpo -c -o s390x_features.o s390x_features.c
++mv -f .deps/s390x_features.Tpo .deps/s390x_features.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o s390x_features s390x_features.o  
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++Making check in perf
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make  bigcode bz2 fbench ffbench heap many-loss-records many-xpts sarp tinycc
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bigcode.o -MD -MP -MF .deps/bigcode.Tpo -c -o bigcode.o bigcode.c
++mv -f .deps/bigcode.Tpo .deps/bigcode.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bigcode bigcode.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bz2-bz2.o -MD -MP -MF .deps/bz2-bz2.Tpo -c -o bz2-bz2.o `test -f 'bz2.c' || echo './'`bz2.c
++mv -f .deps/bz2-bz2.Tpo .deps/bz2-bz2.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bz2 bz2-bz2.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fbench-fbench.o -MD -MP -MF .deps/fbench-fbench.Tpo -c -o fbench-fbench.o `test -f 'fbench.c' || echo './'`fbench.c
++mv -f .deps/fbench-fbench.Tpo .deps/fbench-fbench.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fbench fbench-fbench.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ffbench.o -MD -MP -MF .deps/ffbench.Tpo -c -o ffbench.o ffbench.c
++mv -f .deps/ffbench.Tpo .deps/ffbench.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ffbench ffbench.o -lm 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT heap.o -MD -MP -MF .deps/heap.Tpo -c -o heap.o heap.c
++mv -f .deps/heap.Tpo .deps/heap.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o heap heap.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-loss-records.o -MD -MP -MF .deps/many-loss-records.Tpo -c -o many-loss-records.o many-loss-records.c
++mv -f .deps/many-loss-records.Tpo .deps/many-loss-records.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-loss-records many-loss-records.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-xpts.o -MD -MP -MF .deps/many-xpts.Tpo -c -o many-xpts.o many-xpts.c
++mv -f .deps/many-xpts.Tpo .deps/many-xpts.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-xpts many-xpts.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sarp.o -MD -MP -MF .deps/sarp.Tpo -c -o sarp.o sarp.c
++mv -f .deps/sarp.Tpo .deps/sarp.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sarp sarp.o  
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tinycc-tinycc.o -MD -MP -MF .deps/tinycc-tinycc.Tpo -c -o tinycc-tinycc.o `test -f 'tinycc.c' || echo './'`tinycc.c
++mv -f .deps/tinycc-tinycc.Tpo .deps/tinycc-tinycc.Po
++gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tinycc tinycc-tinycc.o  
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 81 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++Making check in gdbserver_tests
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make  clean_after_fork fork_chain passsigalrm sleepers main_pic t watchpoints
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clean_after_fork.o -MD -MP -MF .deps/clean_after_fork.Tpo -c -o clean_after_fork.o clean_after_fork.c
++mv -f .deps/clean_after_fork.Tpo .deps/clean_after_fork.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clean_after_fork clean_after_fork.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork_chain.o -MD -MP -MF .deps/fork_chain.Tpo -c -o fork_chain.o fork_chain.c
++mv -f .deps/fork_chain.Tpo .deps/fork_chain.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork_chain fork_chain.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT passsigalrm.o -MD -MP -MF .deps/passsigalrm.Tpo -c -o passsigalrm.o passsigalrm.c
++mv -f .deps/passsigalrm.Tpo .deps/passsigalrm.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o passsigalrm passsigalrm.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sleepers.o -MD -MP -MF .deps/sleepers.Tpo -c -o sleepers.o sleepers.c
++mv -f .deps/sleepers.Tpo .deps/sleepers.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sleepers sleepers.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT main_pic-main_pic.o -MD -MP -MF .deps/main_pic-main_pic.Tpo -c -o main_pic-main_pic.o `test -f 'main_pic.c' || echo './'`main_pic.c
++mv -f .deps/main_pic-main_pic.Tpo .deps/main_pic-main_pic.Po
++gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -pie  -o main_pic main_pic-main_pic.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t.o -MD -MP -MF .deps/t.Tpo -c -o t.o t.c
++mv -f .deps/t.Tpo .deps/t.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t t.o -lpthread 
++gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT watchpoints.o -MD -MP -MF .deps/watchpoints.Tpo -c -o watchpoints.o watchpoints.c
++mv -f .deps/watchpoints.Tpo .deps/watchpoints.Po
++gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o watchpoints watchpoints.o -lpthread 
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make  check-local
++make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 82 s in the future
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
++make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++Making check in auxprogs
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
++Making check in mpi
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
++mkdir -p ../.in_place; \
++for f in   ; do \
++  rm -f ../.in_place/$f; \
++  ln -f -s ../mpi/$f ../.in_place; \
++done
++for f in ; do \
++  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
++      echo "dsymutil $f"; \
++      dsymutil $f; \
++  fi; \
++done
++mkdir -p ../.in_place; \
++for f in ; do \
++  rm -f ../.in_place/$f.dSYM; \
++  ln -f -s ../mpi/$f.dSYM ../.in_place; \
++done
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
++Making check in docs
++make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
++make[2]: Nothing to be done for `check'.
++make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
++make[1]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
++gdbserver_tests/make_local_links /usr/bin/gdb
++if /usr/bin/perl tests/vg_regtest gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat ; then \
++   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
++else \
++   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
++   false; \
++fi
++-- Running  tests in gdbserver_tests -----------------------------------
++mcblocklistsearch: valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcblocklistsearch -q  ./../memcheck/tests/leak-tree  (progB: ./gdb --quiet -l 60 --nx 1>&2 ../memcheck/tests/leak-tree)
++mcbreak:         valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcbreak ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++mcclean_after_fork: valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcclean_after_fork ./clean_after_fork  (progB: ./gdb --quiet -l 60 --nx ./clean_after_fork)
++mchelp:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mchelp ./t  (progB: ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mchelp -c help -c help debug -c v.kill)
++mcinfcallRU:     valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++mcinfcallWSRU:   valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers)
++mcinvokeRU:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0)
++mcinvokeWS:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0)
++mcleak:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta  (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta)
++mcmain_pic:      valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic  (progB: ./gdb --quiet -l 60 --nx ./main_pic)
++*** mcmain_pic failed (stdout) ***
++*** mcmain_pic failed (stderr) ***
++*** mcmain_pic failed (stdoutB) ***
++*** mcmain_pic failed (stderrB) ***
++mcsignopass:     valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
++mcsigpass:       valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
++mcvabits:        valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++mcwatchpoints:   valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints  (progB: ./gdb --quiet -l 60 --nx ./watchpoints)
++mssnapshot:      valgrind   --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
++nlcontrolc:      valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++nlfork_chain:    valgrind   --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain 
++nlpasssigalrm:   valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm  (progB: ./gdb --quiet -l 60 --nx ./passsigalrm)
++nlsigvgdb:       valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlsigvgdb ./sleepers 1 10000000 0 -S-S-S-S (progB: ./gdb --quiet -l 60 --nx ./sleepers)
++-- Finished tests in gdbserver_tests -----------------------------------
++-- Running  tests in memcheck/tests ------------------------------------
++accounting:      valgrind   ./accounting 
++addressable:     valgrind   ./addressable 
++atomic_incs:     valgrind   -q --track-origins=yes ./atomic_incs 
++badaddrvalue:    valgrind   -q ./badaddrvalue 
++badfree-2trace:  valgrind   --num-callers=2 -q ./badfree 
++badfree:         valgrind   -q ./badfree 
++badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
++badjump:         valgrind   ./badjump 
++sh: line 1: 28448 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++badjump2:        valgrind   -q ./badjump2 
++badloop:         valgrind   -q ./badloop 
++badpoll:         valgrind   -q ./badpoll 
++badrw:           valgrind   -q ./badrw 
++big_blocks_freed_list: valgrind   --freelist-vol=1000000 --freelist-big-blocks=50000 ./big_blocks_freed_list 
++brk2:            valgrind   ./brk2 
++buflen_check:    valgrind   -q ./buflen_check 
++bug287260:       valgrind   ./bug287260 
++calloc-overflow: valgrind   -q ./calloc-overflow 
++clientperm:      valgrind   -q ./clientperm 
++clireq_nofill:   valgrind   -q --undef-value-errors=no --malloc-fill=0xaf --free-fill=0xdb ./clireq_nofill 
++clo_redzone_128: valgrind   --leak-check=no -q --redzone-size=128 ./clo_redzone 
++clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone 
++custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
++custom_alloc:    valgrind   -q ./custom_alloc 
++deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
++sh: line 1: 30190 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++deep_templates:  valgrind   -q ./deep_templates 
++describe-block:  valgrind   ./describe-block 
++doublefree:      valgrind   -q ./doublefree 
++dw4:             valgrind   --read-var-info=yes -q ./dw4 
++err_disable1:    valgrind   -q ./err_disable1 
++err_disable2:    valgrind   -q ./err_disable2 
++err_disable3:    valgrind   -q ./err_disable3 
++err_disable4:    valgrind   -q --num-callers=3 ./err_disable4 
++erringfds:       valgrind   ./erringfds 
++error_counts:    valgrind   --log-fd=-1 ./error_counts 
++errs1:           valgrind   -q ./errs1 
++execve1:         valgrind   -q ./execve1 
++execve2:         valgrind   -q --trace-children=yes ./execve2 
++exitprog:        valgrind   -q ./exitprog 
++file_locking:    valgrind   -q --trace-children=yes ./file_locking 
++fprw:            valgrind   -q ./fprw 
++fwrite:          valgrind   -q ./fwrite 
++holey_buffer_too_small: valgrind   -q --track-origins=yes ./holey_buffer_too_small 
++inits:           valgrind   -q ./inits 
++inline:          valgrind   -q ./inline 
++leak-0:          valgrind   -q ./leak-0 
++leak-cases-full: valgrind   -q --leak-check=full --leak-resolution=high ./leak-cases 
++leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases 
++leak-cases-summary: valgrind   -q --leak-check=summary --leak-resolution=high ./leak-cases 
++leak-cycle:      valgrind   -q --leak-check=yes --leak-resolution=high ./leak-cycle 
++leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta 
++leak-pool-0:     valgrind   ./leak-pool 0
++leak-pool-1:     valgrind   ./leak-pool 1
++leak-pool-2:     valgrind   ./leak-pool 2
++leak-pool-3:     valgrind   ./leak-pool 3
++leak-pool-4:     valgrind   ./leak-pool 4
++leak-pool-5:     valgrind   ./leak-pool 5
++leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
++-- Running  tests in memcheck/tests/linux ------------------------------
++brk:             valgrind   ./brk 
++capget:          valgrind   ./capget 
++lsframe1:        valgrind   --main-stacksize=67200000 --max-stackframe=67200000 ./lsframe1 
++lsframe2:        valgrind   --main-stacksize=68500000 ./lsframe2 
++sigqueue:        valgrind   ./sigqueue -q
++stack_changes:   valgrind   -q ./stack_changes 
++stack_switch:    valgrind   -q ./stack_switch 
++syscalls-2007:   valgrind   ./syscalls-2007 
++syslog-syscall:  valgrind   ./syslog-syscall 
++timerfd-syscall: valgrind   ./timerfd-syscall 
++with-space:      valgrind   -q ./'with space' 
++-- Finished tests in memcheck/tests/linux ------------------------------
++long-supps:      valgrind   --suppressions=long-supps.supp -q ./long-supps 
++long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
++mallinfo:        valgrind   ./mallinfo -q
++malloc1:         valgrind   -q ./malloc1 
++malloc2:         valgrind   -q ./malloc2 
++malloc3:         valgrind   -q ./malloc3 
++malloc_free_fill: valgrind   -q --malloc-fill=0x55 --free-fill=0x77 ./malloc_free_fill 
++malloc_usable:   valgrind   -q ./malloc_usable 
++manuel1:         valgrind   -q ./manuel1 
++manuel2:         valgrind   -q ./manuel2 
++manuel3:         valgrind   -q ./manuel3 
++match-overrun:   valgrind   -q --suppressions=match-overrun.supp ./match-overrun 
++memalign2:       valgrind   -q --freelist-vol=100000 --freelist-big-blocks=0 ./memalign2 
++memalign_test:   valgrind   -q ./memalign_test 
++memcmptest:      valgrind   -q ./memcmptest 
++mempool:         valgrind   -q --leak-check=yes ./mempool 
++mempool2:        valgrind   -q --leak-check=yes ./mempool2 
++metadata:        valgrind   -q ./metadata 
++mismatches:      valgrind   -q ./mismatches 
++mmaptest:        valgrind   -q ./mmaptest 
++nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2 
++nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp 
++new_nothrow:     valgrind   -q ./new_nothrow 
++new_override:    valgrind   ./new_override 
++noisy_child:     valgrind   --child-silent-after-fork=yes ./noisy_child 
++null_socket:     valgrind   -q ./null_socket 
++origin1-yes:     valgrind   -q --track-origins=yes ./origin1-yes 
++origin2-not-quite: valgrind   -q --track-origins=yes ./origin2-not-quite 
++origin3-no:      valgrind   -q --track-origins=yes ./origin3-no 
++origin4-many:    valgrind   -q --track-origins=yes ./origin4-many 
++origin5-bz2:     valgrind   -q --track-origins=yes ./origin5-bz2 x
++origin6-fp:      valgrind   -q --track-origins=yes ./origin6-fp 
++overlap:         valgrind   -q ./overlap 
++partial_load_dflt: valgrind   ./partial_load 
++partial_load_ok: valgrind   --partial-loads-ok=yes ./partial_load 
++partiallydefinedeq: valgrind   ./partiallydefinedeq 
++pdb-realloc:     valgrind   -q ./pdb-realloc 
++pdb-realloc2:    valgrind   -q ./pdb-realloc2 
++pipe:            valgrind   -q ./pipe 
++pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace 
++post-syscall:    valgrind   -q ./post-syscall 
++-- Running  tests in memcheck/tests/ppc32 ------------------------------
++power_ISA2_05:   valgrind   ./power_ISA2_05 
++test_spe:        valgrind   --leak-check=full ./test_spe 
++*** test_spe failed (stderr) ***
++-- Finished tests in memcheck/tests/ppc32 ------------------------------
++-- Running  tests in memcheck/tests/ppc64 ------------------------------
++power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
++-- Finished tests in memcheck/tests/ppc64 ------------------------------
++realloc1:        valgrind   -q ./realloc1 
++realloc2:        valgrind   -q ./realloc2 
++realloc3:        valgrind   -q ./realloc3 
++sbfragment:      valgrind   ./sbfragment 
++sh-mem-random:   valgrind   -q ./sh-mem-random 
++sh-mem:          valgrind   -q ./sh-mem 
++sigaltstack:     valgrind   -q ./sigaltstack 
++sigkill:         valgrind   ./sigkill 
++signal2:         valgrind   -q ./signal2 
++sigprocmask:     valgrind   -q ./sigprocmask 
++static_malloc:   valgrind   -q --leak-check=full --soname-synonyms=somalloc=NONE ./static_malloc 
++str_tester:      valgrind   -q ./str_tester 
++strchr:          valgrind   -q ./strchr 
++supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true 
++supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
++supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
++supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
++sh: line 1: 14080 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++*** supp_unknown failed (stderr) ***
++suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
++test-plo-no:     valgrind   -q ./test-plo 
++test-plo-yes:    (skipping, prereq failed: test ! `../../tests/arch_test ppc32` && ! `../../tests/arch_test ppc64` && ! `../../tests/arch_test s390x`)
++trivialleak:     valgrind   --leak-check=yes -q ./trivialleak 
++*** trivialleak failed (stderr) ***
++unit_libcbase:   valgrind   -q ./unit_libcbase 
++unit_oset:       valgrind   -q ./unit_oset 
++varinfo1:        valgrind   --read-var-info=yes -q ./varinfo1 
++varinfo2:        valgrind   --read-var-info=yes -q ./varinfo2 
++varinfo3:        valgrind   --read-var-info=yes -q ./varinfo3 
++varinfo4:        valgrind   --read-var-info=yes -q ./varinfo4 
++varinfo5:        valgrind   --read-var-info=yes -q ./varinfo5 
++varinfo6:        valgrind   --read-var-info=yes -q ./varinfo6 
++*** varinfo6 failed (stderr) ***
++vcpu_bz2:        valgrind   -q ./../../perf/bz2 x
++vcpu_fbench:     valgrind   -q ./vcpu_fbench 
++vcpu_fnfns:      valgrind   -q ./vcpu_fnfns 
++wrap1:           valgrind   -q ./wrap1 
++wrap2:           valgrind   -q ./wrap2 
++wrap3:           valgrind   -q ./wrap3 
++wrap4:           valgrind   -q ./wrap4 
++wrap5:           valgrind   -q ./wrap5 
++wrap6:           valgrind   -q ./wrap6 
++wrap7:           valgrind   -q ./wrap7 
++wrap8:           valgrind   -q ./wrap8 
++*** wrap8 failed (stdout) ***
++*** wrap8 failed (stderr) ***
++writev1:         valgrind   -q ./writev1 
++xml1:            valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./xml1 
++-- Finished tests in memcheck/tests ------------------------------------
++-- Running  tests in cachegrind/tests ----------------------------------
++chdir:           valgrind   ./chdir 
++clreq:           valgrind   -q ./clreq 
++dlclose:         valgrind   ./dlclose 
++notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
++wrap5:           valgrind   ./../../memcheck/tests/wrap5 
++-- Finished tests in cachegrind/tests ----------------------------------
++-- Running  tests in callgrind/tests -----------------------------------
++clreq:           valgrind    ./clreq 
++notpower2-hwpref: valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-hwpref=yes ./../../tests/true 
++notpower2-use:   valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --cacheuse=yes ./../../tests/true 
++notpower2-wb:    valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-wb=yes ./../../tests/true 
++notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
++simwork-both:    valgrind   --cache-sim=yes --branch-sim=yes ./simwork 
++simwork-branch:  valgrind   --branch-sim=yes ./simwork 
++simwork-cache:   valgrind   --cache-sim=yes ./simwork 
++simwork1:        valgrind   --simulate-hwpref=yes ./simwork 
++simwork2:        valgrind   --simulate-wb=yes --simulate-hwpref=yes ./simwork 
++simwork3:        valgrind   --cacheuse=yes ./simwork 
++threads-use:     valgrind   --separate-threads=yes --cacheuse=yes --collect-bus=yes --collect-systime=yes ./threads 
++threads:         valgrind   --separate-threads=yes --collect-bus=yes ./threads 
++-- Finished tests in callgrind/tests -----------------------------------
++-- Running  tests in massif/tests --------------------------------------
++alloc-fns-A:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
++alloc-fns-B:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b4 --alloc-fn=b3 --alloc-fn=c4 --alloc-fn=c3 --alloc-fn=c2 --alloc-fn=d4 --alloc-fn=d3 --alloc-fn=d2 --alloc-fn=d1 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
++basic:           valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++basic2:          valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --detailed-freq=1 --max-snapshots=10 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++big-alloc:       valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./big-alloc 
++*** big-alloc failed (post) ***
++culling1:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling1 
++culling2:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling2 
++custom_alloc:    valgrind   --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./custom_alloc 
++deep-A:          valgrind   --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-B:          valgrind   --stats=yes --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-C:          valgrind   --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --stats=yes --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++deep-D:          valgrind   --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
++*** deep-D failed (post) ***
++ignored:         valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=ignore1 --ignore-fn=ignore2 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignored 
++ignoring:        valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignoring 
++insig:           valgrind   --stacks=no --time-unit=B --heap-admin=128 --massif-out-file=massif.out --threshold=0.99 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./insig 
++long-names:      valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-names 
++long-time:       valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-time 
++malloc_usable:   valgrind   -q --massif-out-file=massif.out ./malloc_usable 
++new-cpp:         valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./new-cpp 
++no-stack-no-heap: valgrind   --stacks=no --heap=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
++null:            valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./null 
++one:             valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./one 
++overloaded-new:  valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./overloaded-new 
++pages_as_heap:   valgrind   --stacks=no --time-unit=B --heap-admin=0 --pages-as-heap=yes --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=mmap ./pages_as_heap 
++peak:            valgrind   --stacks=no --time-unit=B --peak-inaccuracy=0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
++peak2:           valgrind   --stacks=no --time-unit=B -v -v --stats=yes --peak-inaccuracy=10.0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
++realloc:         valgrind   -v -v --stats=yes --stacks=no --heap-admin=0 --time-unit=B --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./realloc 
++thresholds_0_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_0_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_10_0: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_10_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_5_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++thresholds_5_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
++zero1:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
++zero2:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
++-- Finished tests in massif/tests --------------------------------------
++-- Running  tests in lackey/tests --------------------------------------
++true:            valgrind   ./../../tests/true 
++-- Finished tests in lackey/tests --------------------------------------
++-- Running  tests in none/tests ----------------------------------------
++allexec32:       valgrind   --trace-children=yes ./allexec32 exec
++allexec64:       valgrind   --trace-children=yes ./allexec64 exec
++ansi:            valgrind   ./ansi 
++args:            valgrind   ./args a b "1 2 3"
++async-sigs:      valgrind   -q ./async-sigs 
++bitfield1:       valgrind   ./bitfield1 
++bug129866:       valgrind   ./bug129866 
++closeall:        valgrind   ./closeall 
++cmd-with-special: valgrind   -q ./'a \<>b' 
++cmdline0:        valgrind   --version  
++cmdline1:        valgrind   --help --tool=none  
++cmdline2:        valgrind   --help-debug --tool=none  
++cmdline3:        valgrind    
++cmdline4:        valgrind   --bad-bad-option ./../../tests/true 
++cmdline5:        valgrind   ./no-such-program-my-friend 
++cmdline6:        valgrind   ./cmdline6.vgtest 
++coolo_sigaction: valgrind   ./coolo_sigaction 
++coolo_strlen:    valgrind   ./coolo_strlen 
++discard:         valgrind   ./discard 
++empty-exe:       valgrind    ./empty-exe 
++exec-sigmask:    valgrind   ./exec-sigmask 
++execve:          valgrind   ./execve 
++faultstatus:     valgrind   ./faultstatus 
++fcntl_setown:    valgrind   ./fcntl_setown 
++fdleak_cmsg:     valgrind   --track-fds=yes ./fdleak_cmsg < /dev/null
++fdleak_creat:    valgrind   --track-fds=yes ./fdleak_creat < /dev/null
++fdleak_dup:      valgrind   --track-fds=yes ./fdleak_dup < /dev/null
++fdleak_dup2:     valgrind   --track-fds=yes ./fdleak_dup2 < /dev/null
++fdleak_fcntl:    valgrind   --track-fds=yes ./fdleak_fcntl < /dev/null
++fdleak_ipv4:     valgrind   --track-fds=yes ./fdleak_ipv4 < /dev/null
++fdleak_open:     valgrind   --track-fds=yes ./fdleak_open < /dev/null
++fdleak_pipe:     valgrind   --track-fds=yes ./fdleak_pipe < /dev/null
++fdleak_socketpair: valgrind   --track-fds=yes ./fdleak_socketpair < /dev/null
++floored:         valgrind   ./floored 
++fork:            valgrind   -q ./fork 
++fucomip:         valgrind   ./fucomip 
++gxx304:          valgrind   ./gxx304 
++ifunc:           (skipping, prereq failed: test -e ifunc)
++-- Running  tests in none/tests/linux ----------------------------------
++blockfault:      valgrind   ./blockfault 
++sh: line 1: 16801 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++mremap:          valgrind   ./mremap 
++mremap2:         valgrind   ./mremap2 
++mremap3:         valgrind   ./mremap3 
++-- Finished tests in none/tests/linux ----------------------------------
++manythreads:     valgrind   ./manythreads 
++map_unaligned:   valgrind   ./map_unaligned 
++map_unmap:       valgrind   --sanity-level=3 ./map_unmap 
++mmap_fcntl_bug:  valgrind   -q ./mmap_fcntl_bug 
++mq:              valgrind   ./mq 
++munmap_exe:      valgrind   ./munmap_exe 
++nestedfns:       valgrind   ./nestedfns 
++nodir:           valgrind   ./nodir.vgtest/foobar 
++pending:         valgrind   ./pending 
++-- Running  tests in none/tests/ppc32 ----------------------------------
++bug129390-ppc32: valgrind   -q ./bug129390-ppc32 
++bug139050-ppc32: valgrind   -q ./bug139050-ppc32 
++jm-fp:           valgrind   ./jm-insns -f 
++jm-int:          valgrind   ./jm-insns -i 
++jm-vmx:          valgrind   ./jm-insns -a 
++ldstrev:         valgrind   ./ldstrev 
++lsw:             valgrind   ./lsw 
++mcrfs:           valgrind   ./mcrfs 
++mftocrf:         valgrind   ./mftocrf 
++power5+_round:   valgrind   ./power5+_round 
++power6_bcmp:     valgrind   ./power6_bcmp 
++round:           valgrind   ./round 
++test_dfp1:       valgrind   ./test_dfp1 
++test_dfp2:       valgrind   ./test_dfp2 
++test_dfp3:       valgrind   ./test_dfp3 
++test_dfp4:       valgrind   ./test_dfp4 
++test_dfp5:       valgrind   ./test_dfp5 
++test_fx:         valgrind   ./test_fx 
++test_gx:         valgrind   ./test_gx 
++test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
++test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
++test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
++testVMX:         valgrind   ./testVMX 
++tw:              valgrind   ./tw 
++twi:             valgrind   ./twi 
++xlc_dbl_u32:     valgrind   ./xlc_dbl_u32 
++-- Finished tests in none/tests/ppc32 ----------------------------------
++-- Running  tests in none/tests/ppc64 ----------------------------------
++jm-fp:           valgrind   ./jm-insns -f 
++jm-int:          valgrind   ./jm-insns -i 
++jm-vmx:          valgrind   ./jm-insns -a 
++lsw:             valgrind   ./lsw 
++power6_bcmp:     valgrind   ./power6_bcmp 
++power6_mf_gpr:   valgrind   ./power6_mf_gpr 
++round:           valgrind   ./round 
++std_reg_imm:     valgrind   -q ./std_reg_imm 
++test_dfp1:       valgrind   ./test_dfp1 
++test_dfp2:       valgrind   ./test_dfp2 
++test_dfp3:       valgrind   ./test_dfp3 
++test_dfp4:       valgrind   ./test_dfp4 
++test_dfp5:       valgrind   ./test_dfp5 
++test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
++test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
++test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
++tw_td:           valgrind   ./tw_td 
++twi_tdi:         valgrind   ./twi_tdi 
++-- Finished tests in none/tests/ppc64 ----------------------------------
++process_vm_readv_writev: valgrind   ./process_vm_readv_writev 
++procfs-linux:    valgrind   ./procfs-cmdline-exe arg1 "arg 2" arg3
++procfs-non-linux: (skipping, prereq failed: [ $(uname) != Linux ])
++pth_atfork1:     valgrind   ./pth_atfork1 
++pth_blockedsig:  valgrind   ./pth_blockedsig 
++pth_cancel1:     valgrind   ./pth_cancel1 
++pth_cancel2:     valgrind   ./pth_cancel2 
++pth_cvsimple:    valgrind   ./pth_cvsimple 
++pth_empty:       valgrind   ./pth_empty 
++pth_exit:        valgrind   ./pth_exit 
++pth_exit2:       valgrind   ./pth_exit2 
++pth_mutexspeed:  valgrind   ./pth_mutexspeed 
++pth_once:        valgrind   ./pth_once 
++pth_rwlock:      valgrind   ./pth_rwlock 
++pth_stackalign:  valgrind   ./pth_stackalign 
++rcrl:            valgrind   ./rcrl 
++readline1:       valgrind   ./readline1 
++require-text-symbol-1: valgrind   -q "--require-text-symbol=:*libc.so*:strl?n" ./require-text-symbol 
++require-text-symbol-2: valgrind   -q "--require-text-symbol=:*libc.so*:doesntexist" --vgdb-prefix=./vgdb-prefix-require-text-symbol-2 ./require-text-symbol 
++res_search:      valgrind   -q ./res_search www.yahoo.com
++resolv:          valgrind   ./resolv 
++rlimit64_nofile: valgrind   ./rlimit64_nofile 
++rlimit_nofile:   valgrind   ./rlimit_nofile 
++selfrun:         (skipping, prereq failed: grep '^#define HAVE_PIE 1' ../../config.h > /dev/null)
++sem:             valgrind   ./sem 
++semlimit:        valgrind   ./semlimit 
++sha1_test:       valgrind   ./sha1_test 
++shell:           valgrind   -q ./shell 
++shell_badinterp: valgrind   ./shell_badinterp 
++shell_binaryfile: valgrind   ./shell_binaryfile 
++shell_dir:       valgrind   ./x86/ 
++*** shell_dir failed (stderr) ***
++shell_nonexec:   valgrind   ./shell.vgtest 
++shell_nosuchfile: valgrind   ./shell_nosuchfile 
++shell_valid1:    valgrind   -q ./shell_valid1 
++shell_valid2:    valgrind   -q ./shell_valid2 
++shell_valid3:    valgrind   -q ./shell_valid3 
++shell_zerolength: valgrind   -q ./shell_zerolength 
++shortpush:       valgrind   ./shortpush 
++shorts:          valgrind   ./shorts 
++sigstackgrowth:  valgrind   --sanity-level=3 ./sigstackgrowth 
++stackgrowth:     valgrind   --sanity-level=3 ./stackgrowth 
++syscall-restart1: valgrind   ./syscall-restart1 
++syscall-restart2: valgrind   ./syscall-restart2 
++syslog:          valgrind   -q ./syslog 
++system:          valgrind   ./system 
++thread-exits:    valgrind   ./thread-exits 
++threaded-fork:   valgrind   ./threaded-fork 
++threadederrno:   valgrind   -q ./threadederrno 
++timestamp:       valgrind   --time-stamp=yes ./timestamp 
++tls:             valgrind   ./tls 
++vgprintf:        valgrind   ./vgprintf 
++-- Finished tests in none/tests ----------------------------------------
++-- Running  tests in helgrind/tests ------------------------------------
++annotate_hbefore: valgrind   -q --fair-sched=try ./annotate_hbefore 
++annotate_rwlock: valgrind   -q ./annotate_rwlock 
++annotate_smart_pointer: valgrind   ./../../drd/tests/annotate_smart_pointer 50 5
++bar_bad:         valgrind   -q ./bar_bad 
++bar_trivial:     valgrind   -q ./bar_trivial 
++cond_timedwait_invalid: valgrind   ./cond_timedwait_invalid 
++free_is_write:   valgrind   --free-is-write=yes ./free_is_write 
++hg01_all_ok:     valgrind   ./hg01_all_ok 
++hg02_deadlock:   valgrind   ./hg02_deadlock 
++hg03_inherit:    valgrind   --read-var-info=yes ./hg03_inherit 
++hg04_race:       valgrind   --read-var-info=yes ./hg04_race 
++hg05_race2:      valgrind   --read-var-info=yes ./hg05_race2 
++hg06_readshared: valgrind   ./hg06_readshared 
++locked_vs_unlocked1_fwd: valgrind   -q ./locked_vs_unlocked1 
++locked_vs_unlocked1_rev: valgrind   -q ./locked_vs_unlocked1 x
++locked_vs_unlocked2: valgrind   -q ./locked_vs_unlocked2 
++locked_vs_unlocked3: valgrind   -q ./locked_vs_unlocked3 
++pth_barrier1:    valgrind   -q ./../../drd/tests/pth_barrier 2 1 1
++pth_barrier2:    valgrind   -q --cmp-race-err-addrs=yes ./../../drd/tests/pth_barrier 2 32 1
++pth_barrier3:    valgrind   -q ./../../drd/tests/pth_barrier 32 1 1
++pth_destroy_cond: valgrind   -q ./pth_destroy_cond 
++pth_spinlock:    (skipping, prereq failed: false)
++rwlock_race:     valgrind   --read-var-info=yes ./../../drd/tests/rwlock_race 
++rwlock_test:     valgrind   ./../../drd/tests/rwlock_test 
++t2t_laog:        valgrind   ./t2t 30 10 4
++tc01_simple_race: valgrind   --read-var-info=yes ./tc01_simple_race 
++tc02_simple_tls: valgrind   ./tc02_simple_tls 
++tc03_re_excl:    valgrind   ./tc03_re_excl 
++tc04_free_lock:  valgrind   ./tc04_free_lock 
++tc05_simple_race: valgrind   --read-var-info=yes ./tc05_simple_race 
++tc06_two_races:  valgrind   --read-var-info=yes ./tc06_two_races 
++tc06_two_races_xml: valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --log-file=/dev/null ./tc06_two_races 
++tc07_hbl1:       valgrind   ./tc07_hbl1 
++tc08_hbl2:       valgrind   ./tc08_hbl2 
++tc09_bad_unlock: valgrind   ./tc09_bad_unlock 
++tc10_rec_lock:   valgrind   ./tc10_rec_lock 
++tc11_XCHG:       valgrind   ./tc11_XCHG 
++tc12_rwl_trivial: valgrind   ./tc12_rwl_trivial 
++tc13_laog1:      valgrind   ./tc13_laog1 
++tc14_laog_dinphils: valgrind   ./tc14_laog_dinphils 
++tc15_laog_lockdel: valgrind   ./tc15_laog_lockdel 
++tc16_byterace:   valgrind   --read-var-info=yes ./tc16_byterace 
++tc17_sembar:     valgrind   ./tc17_sembar 
++tc18_semabuse:   valgrind   ./tc18_semabuse 
++*** tc18_semabuse failed (stderr) ***
++tc19_shadowmem:  valgrind   --cmp-race-err-addrs=yes --error-limit=no ./tc19_shadowmem 
++tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap 
++*** tc20_verifywrap failed (stderr) ***
++tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
++tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
++sh: line 1: 28063 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
++tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
++-- Finished tests in helgrind/tests ------------------------------------
++-- Running  tests in drd/tests -----------------------------------------
++annotate_barrier: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./annotate_barrier 2 1 1 
++annotate_barrier_xml: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 --xml=yes --xml-fd=2 ./annotate_barrier 2 1 1 
++annotate_hb_err: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_hb_err 
++annotate_hb_race: valgrind   --check-stack-var=yes --show-confl-seg=no ./annotate_hb_race 
++annotate_hbefore: valgrind   --fair-sched=try --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_hbefore 
++annotate_ignore_read: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 69
++annotate_ignore_rw: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw 
++annotate_ignore_rw2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw -r
++annotate_ignore_write: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write 
++annotate_ignore_write2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write -r
++annotate_order_1: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 3
++annotate_order_2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 30
++annotate_order_3: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 31
++annotate_publish_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_publish_hg 
++annotate_rwlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_rwlock 
++annotate_rwlock_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_rwlock 
++annotate_smart_pointer: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 50 5
++annotate_smart_pointer2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 1 1 0
++annotate_spinlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 27
++annotate_static: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_static 
++annotate_trace_memory: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
++annotate_trace_memory_xml: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
++atomic_var:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2 ./atomic_var 
++bar_bad:         valgrind   ./../../helgrind/tests/bar_bad 
++bar_bad_xml:     valgrind   --xml=yes --xml-fd=2 ./../../helgrind/tests/bar_bad 
++bar_trivial:     valgrind   ./../../helgrind/tests/bar_trivial 
++boost_thread:    (skipping, prereq failed: test -e boost_thread)
++bug-235681:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./bug-235681 -q
++circular_buffer: valgrind   ./circular_buffer -q
++custom_alloc:    valgrind   ./custom_alloc 
++custom_alloc_fiw: valgrind   --free-is-write=yes ./custom_alloc 
++fp_race:         valgrind   --read-var-info=yes ./fp_race 
++fp_race2:        valgrind   ./fp_race -m
++fp_race_xml:     valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --trace-fork-join=yes ./fp_race 
++free_is_write:   valgrind   --read-var-info=yes --free-is-write=yes --show-confl-seg=no ./free_is_write -q
++free_is_write2:  valgrind   --read-var-info=yes --free-is-write=yes --check-stack-var=yes --show-confl-seg=no ./free_is_write -q
++hg01_all_ok:     valgrind   ./../../helgrind/tests/hg01_all_ok 
++hg02_deadlock:   valgrind   ./../../helgrind/tests/hg02_deadlock 
++hg03_inherit:    valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg03_inherit 
++hg04_race:       valgrind   --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg04_race 
++hg05_race2:      valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=2 ./../../helgrind/tests/hg05_race2 
++hg06_readshared: valgrind   ./../../helgrind/tests/hg06_readshared 
++hold_lock_1:     valgrind   --exclusive-threshold=500 --shared-threshold=2000 ./hold_lock -i 1000
++hold_lock_2:     valgrind   --exclusive-threshold=2000 --shared-threshold=500 ./hold_lock -i 1000
++linuxthreads_det: valgrind   --read-var-info=yes ./linuxthreads_det 
++matinv:          valgrind   ./matinv 30 -t 15 -q
++memory_allocation: valgrind   ./memory_allocation 
++monitor_example: valgrind   ./monitor_example 
++new_delete:      valgrind   ./new_delete 
++omp_matinv:      (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
++omp_matinv_racy: (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
++omp_prime_racy:  (skipping, prereq failed: ./run_openmp_test ./omp_prime)
++omp_printf:      (skipping, prereq failed: ./run_openmp_test ./omp_printf)
++pth_barrier:     valgrind   ./pth_barrier 2 1 1
++pth_barrier2:    valgrind   ./pth_barrier 2 32 1
++pth_barrier3:    valgrind   ./pth_barrier 32 1 1
++pth_barrier_race: valgrind   --num-callers=3 ./pth_barrier_race 
++pth_barrier_reinit: valgrind   ./pth_barrier_reinit 
++pth_barrier_thr_cr: valgrind   --suppressions=pth_barrier_thr_cr.supp ./pth_barrier_thr_cr 50
++pth_broadcast:   valgrind   ./pth_broadcast 
++pth_cancel_locked: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cancel_locked 
++pth_cleanup_handler: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cleanup_handler 
++pth_cond_race:   valgrind   --num-callers=3 ./pth_cond_race 
++pth_cond_race2:  valgrind   ./pth_cond_race -m
++pth_cond_race3:  valgrind   --report-signal-unlocked=no ./pth_cond_race 
++pth_create_chain: (skipping, prereq failed: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ])
++pth_create_glibc_2_0: (skipping, prereq failed: test -e pth_create_glibc_2_0 && ./supported_libpthread)
++pth_detached:    valgrind   ./pth_detached 1 1
++pth_detached2:   valgrind   --read-var-info=yes ./pth_detached 10 10
++pth_detached3:   valgrind   ./pth_detached3 
++pth_detached_sem: valgrind   ./pth_detached_sem 10 10
++pth_inconsistent_cond_wait: valgrind   --num-callers=3 ./pth_inconsistent_cond_wait -q
++pth_mutex_reinit: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_mutex_reinit 
++pth_once:        valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./tsan_unittest 106
++pth_process_shared_mutex: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_process_shared_mutex 
++pth_spinlock:    valgrind   --read-var-info=yes --check-stack-var=yes ./pth_spinlock 
++pth_uninitialized_cond: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_uninitialized_cond 
++read_and_free_race: valgrind   --free-is-write=yes --num-callers=3 --show-confl-seg=no ./../../helgrind/tests/free_is_write 
++recursive_mutex: valgrind   --check-stack-var=yes --read-var-info=yes ./recursive_mutex 
++rwlock_race:     valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./rwlock_race 
++rwlock_test:     valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./rwlock_test 
++rwlock_type_checking: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./rwlock_type_checking 
++sem_as_mutex:    valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex 
++sem_as_mutex2:   valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex -m
++sem_as_mutex3:   valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_as_mutex 
++sem_open:        valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open 
++sem_open2:       valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open -m
++sem_open3:       valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_open 
++sem_open_traced: valgrind   --check-stack-var=yes --read-var-info=yes --trace-semaphore=yes ./sem_open -m
++sigalrm:         valgrind   ./sigalrm 
++sigaltstack:     valgrind   -q ./../../memcheck/tests/sigaltstack 
++std_thread:      (skipping, prereq failed: false && test -e std_thread && ./supported_libpthread)
++tc01_simple_race: valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc01_simple_race 
++tc02_simple_tls: valgrind   ./../../helgrind/tests/tc02_simple_tls 
++tc03_re_excl:    valgrind   ./../../helgrind/tests/tc03_re_excl 
++tc04_free_lock:  valgrind   --check-stack-var=yes ./../../helgrind/tests/tc04_free_lock 
++tc05_simple_race: valgrind   ./../../helgrind/tests/tc05_simple_race 
++tc06_two_races:  valgrind   ./../../helgrind/tests/tc06_two_races 
++tc07_hbl1:       valgrind   ./../../helgrind/tests/tc07_hbl1 
++tc08_hbl2:       valgrind   ./../../helgrind/tests/tc08_hbl2 
++tc09_bad_unlock: valgrind   --check-stack-var=yes --num-callers=3 ./../../helgrind/tests/tc09_bad_unlock 
++tc10_rec_lock:   valgrind   ./../../helgrind/tests/tc10_rec_lock 
++tc11_XCHG:       valgrind   ./../../helgrind/tests/tc11_XCHG 
++tc12_rwl_trivial: valgrind   ./../../helgrind/tests/tc12_rwl_trivial 
++tc13_laog1:      valgrind   ./../../helgrind/tests/tc13_laog1 
++tc15_laog_lockdel: valgrind   ./../../helgrind/tests/tc15_laog_lockdel 
++tc16_byterace:   valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc16_byterace 
++tc17_sembar:     valgrind   ./../../helgrind/tests/tc17_sembar 
++tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse 
++tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
++tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
++tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
++sh: line 1: 24201 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
++tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
++thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
++thread_name_xml: valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 --xml=yes --xml-fd=2 ./thread_name 
++threaded-fork:   valgrind   ./threaded-fork 
++trylock:         valgrind   ./trylock 
++unit_bitmap:     valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_bitmap -s 93 -t 97 -q
++unit_vc:         valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_vc 
++-- Finished tests in drd/tests -----------------------------------------
++-- Running  tests in exp-sgcheck/tests ---------------------------------
++bad_percentify:  (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++globalerr:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++hackedbz2:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++hsg:             (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++preen_invars:    (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++stackerr:        (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
++-- Finished tests in exp-sgcheck/tests ---------------------------------
++-- Running  tests in exp-bbv/tests/ppc32-linux -------------------------
++ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll 
++million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
++-- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
++
++== 530 tests, 9 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++gdbserver_tests/mcmain_pic               (stdout)
++gdbserver_tests/mcmain_pic               (stderr)
++gdbserver_tests/mcmain_pic               (stdoutB)
++gdbserver_tests/mcmain_pic               (stderrB)
++memcheck/tests/ppc32/test_spe            (stderr)
++memcheck/tests/supp_unknown              (stderr)
++memcheck/tests/trivialleak               (stderr)
++memcheck/tests/varinfo6                  (stderr)
++memcheck/tests/wrap8                     (stdout)
++memcheck/tests/wrap8                     (stderr)
++massif/tests/big-alloc                   (post)
++massif/tests/deep-D                      (post)
++none/tests/shell_dir                     (stderr)
++helgrind/tests/tc18_semabuse             (stderr)
++helgrind/tests/tc20_verifywrap           (stderr)
++
++make: *** [regtest] Error 1
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0051-Cleanups-in-memcheck-tests-ppc32-test_spe.c.patch b/recipes-devtools/valgrind/files/0051-Cleanups-in-memcheck-tests-ppc32-test_spe.c.patch
new file mode 100644
index 0000000..219d051
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0051-Cleanups-in-memcheck-tests-ppc32-test_spe.c.patch
@@ -0,0 +1,1427 @@
+From 49051805ebca0914972d5f580dd3cdf4b87ac2db Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 9 Apr 2013 14:12:21 -0700
+Subject: [PATCH 51/65] Cleanups in memcheck/tests/ppc32/test_spe.c
+
+- Removed the memory related tests in:
+  evmwsmfan_asm (), evmwsmfaa_asm (), evmwsmf_asm (), evmwsmfa_asm (), evmwhsmf_asm (), evmwhsmfa_asm ()
+  since it was getting to be a headache to get the same diagnostics on Power 7 and e500v2
+
+- evmhogsmian_baseline[] made global.
+
+- Needed to check lower word in evmwhsmfa_asm () tests.
+
+- test_spe now passes in the default build's regression test as well.
+---
+ memcheck/tests/ppc32/test_spe.c          |  578 +-----------------------------
+ memcheck/tests/ppc32/test_spe.stderr.exp |  240 +------------
+ regtest-power7-64.default-build.log      |   24 +-
+ regtest-power7-64.log                    |   44 ++--
+ 4 files changed, 56 insertions(+), 830 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 06b10db..4113103 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -9320,72 +9320,31 @@ int evmwsmfan_asm(void)
+ {
+   int failures = 0;
+ 
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u64__ regA asm ("30");
+   register __ev64_u64__ regB asm ("29");
+   register __ev64_u64__ regD asm ("28");
+-  __ev64_u64__ *ops;
+ 
+   // Initialize the ACC.
+   regA = (__ev64_u64__) { 0x0 };
+   asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
+   VERIFY(regD[0] == 0x0);
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+ 
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA1u64); i++) {
+ 
+-    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
+-    // by allocating 4 __ev64_u64__'s - not sure, why so?
+-    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
+-    // e500v2 and Classic Power).
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u64__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
+-
+-    ops[1] = rA1u64[i];
+-    ops[2] = rB1u64[i];
++    regA = rA1u64[i];
++    regB = rB1u64[i];
+ 
+-#ifdef __SPE__
+-    regA = ops[1];
+-    regB = ops[2];
+     asm volatile ("evmwsmfan %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
+ #else
+     VERIFY(regD[0] == evmwsmfan_baseline[i][0]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+-
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeef;                     // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                       // Invalid read detected?
+-#if 0                                        // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -9693,73 +9652,32 @@ __ev64_u64__ evmwsmfaa_baseline[] = {
+ int evmwsmfaa_asm(void)
+ {
+   int failures = 0;
+-
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u64__ regA asm ("30");
+   register __ev64_u64__ regB asm ("29");
+   register __ev64_u64__ regD asm ("28");
+-  __ev64_u64__ *ops;
+ 
+   // Initialize the ACC.
+   regA = (__ev64_u64__) { 0x0 };
+   asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
+   VERIFY(regD[0] == 0x0);
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+ 
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA1u64); i++) {
+ 
+-    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
+-    // by allocating 4 __ev64_u64__'s - not sure, why so?
+-    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
+-    // e500v2 and Classic Power).
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u64__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
+-
+-    ops[1] = rA1u64[i];
+-    ops[2] = rB1u64[i];
++    regA = rA1u64[i];
++    regB = rB1u64[i];
+ 
+-#ifdef __SPE__
+-    regA = ops[1];
+-    regB = ops[2];
+     asm volatile ("evmwsmfaa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
+ #else
+     VERIFY(regD[0] == evmwsmfaa_baseline[i][0]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+ 
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeef;                     // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                       // Invalid read detected?
+-#if 0                                        // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -10065,16 +9983,10 @@ __ev64_u64__ evmwsmf_baseline[] = {
+ int evmwsmf_asm(void)
+ {
+   int failures = 0;
+-
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u64__ regA asm ("30");
+   register __ev64_u64__ regB asm ("29");
+   register __ev64_u64__ regD asm ("28");
+-  __ev64_u64__ *ops;
+   __ev64_u64__ res[] = {
+ 
+     (__ev64_u64__) { 0xe000000000000000 }, // -(1/2^2)
+@@ -10094,59 +10006,22 @@ int evmwsmf_asm(void)
+     (__ev64_u64__) { 0xffffffe200000000 }, // -(1/32768^2)
+ 
+   };
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+ 
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA1u64); i++) {
+ 
+-    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
+-    // by allocating 4 __ev64_u64__'s - not sure, why so?
+-    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
+-    // e500v2 and Classic Power).
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u64__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
++    regA = rA1u64[i];
++    regB = rB1u64[i];
+ 
+-    ops[1] = rA1u64[i];
+-    ops[2] = rB1u64[i];
+-
+-#ifdef __SPE__
+-    regA = ops[1];
+-    regB = ops[2];
+     asm volatile ("evmwsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
+ #else
+     VERIFY(regD[0] == evmwsmf_baseline[i][0]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+-
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeef;                     // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                       // Invalid read detected?
+-#if 0                                        // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+-
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -10185,16 +10060,10 @@ __ev64_u64__ *evmwsmfa_baseline = evmwsmf_baseline;
+ int evmwsmfa_asm(void)
+ {
+   int failures = 0;
+-
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u64__ regA asm ("30");
+   register __ev64_u64__ regB asm ("29");
+   register __ev64_u64__ regD asm ("28");
+-  __ev64_u64__ *ops;
+   __ev64_u64__ res[] = {
+ 
+     (__ev64_u64__) { 0xe000000000000000 }, // -(1/2^2)
+@@ -10214,36 +10083,18 @@ int evmwsmfa_asm(void)
+     (__ev64_u64__) { 0xffffffe200000000 }, // -(1/32768^2)
+ 
+   };
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+-
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA1u64); i++) {
+ 
+-    // We get one kind of diagnostics by allocating 3 __ev64_u64__'s and another kind
+-    // by allocating 4 __ev64_u64__'s - not sure, why so?
+-    // (For now, go with allocating 8 __ev64_u64__'s - to get consistent results on
+-    // e500v2 and Classic Power).
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u64__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
+-
+-    ops[1] = rA1u64[i];
+-    ops[2] = rB1u64[i];
+-
+-#ifdef __SPE__
+     // Initialize the ACC.
+     regA = (__ev64_u64__) { 0x0 };
+     asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
+     VERIFY(regD[0] == 0x0);
+ 
+-    regA = ops[1];
+-    regB = ops[2];
++    regA = rA1u64[i];
++    regB = rB1u64[i];
++
+     asm volatile ("evmwsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u64__) { 0x%llx },\n", regD[0]);
+@@ -10256,27 +10107,8 @@ int evmwsmfa_asm(void)
+ #ifndef GEN_BASELINE
+     VERIFY(regD[0] == evmwsmfa_baseline[i][0]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+-
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u64__) { 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeef;                     // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                       // Invalid read detected?
+-#if 0                                        // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -10588,16 +10420,10 @@ __ev64_u32__ evmwhsmf_baseline[] = {
+ int evmwhsmf_asm(void)
+ {
+   int failures = 0;
+-
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u32__ regA asm ("30");
+   register __ev64_u32__ regB asm ("29");
+   register __ev64_u32__ regD asm ("28");
+-  __ev64_u32__ *ops;
+   __ev64_u32__ res[] = {
+ 
+     (__ev64_u32__) { 0xe0000000, 0xe0000000 }, // -(1/2^2)
+@@ -10617,27 +10443,14 @@ int evmwhsmf_asm(void)
+     (__ev64_u32__) { 0xffffffe2, 0xffffffe2 }, // -(1/32768^2)
+ 
+   };
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+ 
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA2u32); i++) {
+ 
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u32__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
+-
+-    ops[1] = rA2u32[i];
+-    ops[2] = rB2u32[i];
++    regA = rA2u32[i];
++    regB = rB2u32[i];
+ 
+-#ifdef __SPE__
+-    regA = ops[1];
+-    regB = ops[2];
+     asm volatile ("evmwhsmf %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
+@@ -10645,28 +10458,8 @@ int evmwhsmf_asm(void)
+     VERIFY(regD[0] == evmwhsmf_baseline[i][0]);
+     VERIFY(regD[1] == evmwhsmf_baseline[i][1]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+-
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u32__) { 0xdeadbeef, 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeefdeadbeef;                         // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                                   // Invalid read detected?
+-#if 0                                                    // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+-
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -10706,16 +10499,10 @@ __ev64_u32__ *evmwhsmfa_baseline = evmwhsmf_baseline;
+ int evmwhsmfa_asm(void)
+ {
+   int failures = 0;
+-
+-  // Be sure to verify that in addition to executing the emulated instruction,
+-  // unfreed memory and incorrect (r&w) accesses around that instruction are
+-  // detected too.
+-
+ #ifdef __SPE__
+   register __ev64_u32__ regA asm ("30");
+   register __ev64_u32__ regB asm ("29");
+   register __ev64_u32__ regD asm ("28");
+-  __ev64_u32__ *ops;
+   __ev64_u32__ res[] = {
+ 
+     (__ev64_u32__) { 0xe0000000, 0xe0000000 }, // -(1/2^2)
+@@ -10735,37 +10522,25 @@ int evmwhsmfa_asm(void)
+     (__ev64_u32__) { 0xffffffe2, 0xffffffe2 }, // -(1/32768^2)
+ 
+   };
+-#else
+-  uint64_t *ops;
+-#endif // __SPE__
+ 
+   int32_t i;
+ 
+   for (i = 0; i < NELTS(rA2u32); i++) {
+ 
+-    ops = calloc(8,
+-#ifdef __SPE__
+-          sizeof (__ev64_u32__));
+-#else
+-          sizeof (uint64_t));
+-#endif //  __SPE__
+-
+-    ops[1] = rA2u32[i];
+-    ops[2] = rB2u32[i];
+-
+-#ifdef __SPE__
+     // Initialize the ACC.
+     regA = (__ev64_u32__) { 0x0 };
+     asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));
+     VERIFY(regD[0] == 0x0);
+ 
+-    regA = ops[1];
+-    regB = ops[2];
++    regA = rA2u32[i];
++    regB = rB2u32[i];
++
+     asm volatile ("evmwhsmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+ #ifdef GEN_BASELINE
+     printf ("  (__ev64_u32__) { 0x%x, 0x%x },\n", regD[0], regD[1]);
+ #else
+     VERIFY(regD[0] == evmwhsmfa_baseline[i][0]);
++    VERIFY(regD[1] == evmwhsmfa_baseline[i][1]);
+ #endif
+     // Verify that evmwhsmfa wrote into the ACC:
+     regD = (__ev64_u32__) { 0x0, 0x0 };
+@@ -10773,27 +10548,8 @@ int evmwhsmfa_asm(void)
+ #ifndef GEN_BASELINE
+     VERIFY(regD[0] == evmwhsmfa_baseline[i][0]);
+ #endif
+-#else
+-    // NOP;
+-#endif //  __SPE__
+-
+-#ifdef __SPE__
+-    ops[0] = regD;
+-#endif //  __SPE__
+-
+-    ops[17] =
+-#ifdef __SPE__
+-             (__ev64_u32__) { 0xdeadbeef };  // Invalid write detected?
+-#else
+-             0xdeadbeef;                     // Invalid write detected?
+-#endif //  __SPE__
+-    ops[3] = ops[-17];                       // Invalid read detected?
+-#if 0                                        // Unfreed memory detected?
+-    free (ops);
+-#endif
+   }
+ 
+-#ifdef __SPE__
+   //////////////////////////////////////////////////////////////////////////////
+   // While, we have a test above to verify that what we compute on the real CPU
+   // with this instruction, is what we compute on the 'synthetic' CPU, let us
+@@ -15442,45 +15198,6 @@ int evmhogsmiaa_asm(void)
+ }
+ TEST_SPE_DECL(evmhogsmiaa_asm, "evmhogsmiaa");
+ 
+-#if 0
+-/* TODO: MYSTERY!
+-   If we uncomment this and make evmhogsmian_baseline[] a global array,
+-   we get this weird situation where:
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:14397)
+-
+-   changes to:
+-
+-64 bytes in 1 blocks are possibly lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17093)
+-
+-16,320 bytes in 255 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17093)
+-
+-   Why? we are not sure. Come back and debug this.
+-*/
+ #ifdef __SPE__
+ __ev64_s64__ evmhogsmian_baseline[] = {
+ 
+@@ -15743,276 +15460,11 @@ __ev64_s64__ evmhogsmian_baseline[] = {
+ 
+ };
+ #endif // __SPE__
+-#endif
+ 
+ int evmhogsmian_asm(void)
+ {
+   int failures = 0;
+-
+ #ifdef __SPE__
+-// TODO: This array is not intended to be local to this function, see note above.
+-#if 1
+-__ev64_s64__ evmhogsmian_baseline[] = {
+-
+-  (__ev64_s64__) { 0x2bd53dd },
+-  (__ev64_s64__) { 0xffffffffce0d49bc },
+-  (__ev64_s64__) { 0x495a02c },
+-  (__ev64_s64__) { 0xfffffffff01f253c },
+-  (__ev64_s64__) { 0x2292abb8 },
+-  (__ev64_s64__) { 0x82c7466 },
+-  (__ev64_s64__) { 0x54d4770 },
+-  (__ev64_s64__) { 0x357a320 },
+-  (__ev64_s64__) { 0xffffffffec607ead },
+-  (__ev64_s64__) { 0x1144343e },
+-  (__ev64_s64__) { 0xfffffffff085dbae },
+-  (__ev64_s64__) { 0x7c0967a },
+-  (__ev64_s64__) { 0xffffffffff4dd4b4 },
+-  (__ev64_s64__) { 0xfffffffffd10babe },
+-  (__ev64_s64__) { 0xfffffffffc9796b4 },
+-  (__ev64_s64__) { 0xfffffffff8bba612 },
+-  (__ev64_s64__) { 0xffffffffe0796574 },
+-  (__ev64_s64__) { 0xffffffffd93b6702 },
+-  (__ev64_s64__) { 0xffffffffe3249266 },
+-  (__ev64_s64__) { 0xfffffffff9f4840c },
+-  (__ev64_s64__) { 0xfffffffff60cb4a2 },
+-  (__ev64_s64__) { 0x52dc240 },
+-  (__ev64_s64__) { 0xffffffffff50dfb2 },
+-  (__ev64_s64__) { 0x25f32a3e },
+-  (__ev64_s64__) { 0xfffffffff616ed08 },
+-  (__ev64_s64__) { 0x20d2c60a },
+-  (__ev64_s64__) { 0xffffffffd3038670 },
+-  (__ev64_s64__) { 0x11c501fe },
+-  (__ev64_s64__) { 0xffffffffe973c5b0 },
+-  (__ev64_s64__) { 0x5d6d701 },
+-  (__ev64_s64__) { 0x2e5a1b80 },
+-  (__ev64_s64__) { 0x11eed3d9 },
+-  (__ev64_s64__) { 0x1a01de65 },
+-  (__ev64_s64__) { 0x19ad6ea },
+-  (__ev64_s64__) { 0x12cad738 },
+-  (__ev64_s64__) { 0xffffffffd18e75cc },
+-  (__ev64_s64__) { 0xffffffffd7c7183a },
+-  (__ev64_s64__) { 0x154542d6 },
+-  (__ev64_s64__) { 0xffffffffed9cd388 },
+-  (__ev64_s64__) { 0x1fb4bd0e },
+-  (__ev64_s64__) { 0x1d81ce80 },
+-  (__ev64_s64__) { 0xfffffffffba3e4ee },
+-  (__ev64_s64__) { 0x1a15cd48 },
+-  (__ev64_s64__) { 0x1100e278 },
+-  (__ev64_s64__) { 0xfffffffffdea81a0 },
+-  (__ev64_s64__) { 0xffffffffffd40e08 },
+-  (__ev64_s64__) { 0xffffffffefb3696e },
+-  (__ev64_s64__) { 0xffffffffe42da896 },
+-  (__ev64_s64__) { 0xffffffffef9e2ba1 },
+-  (__ev64_s64__) { 0xfffffffffde803a9 },
+-  (__ev64_s64__) { 0xffffffffe8cc473c },
+-  (__ev64_s64__) { 0xfffffffffca3758b },
+-  (__ev64_s64__) { 0x181bd8ca },
+-  (__ev64_s64__) { 0x6c8bf79 },
+-  (__ev64_s64__) { 0x46df678 },
+-  (__ev64_s64__) { 0xfffffffff5d70e82 },
+-  (__ev64_s64__) { 0x1ce084da },
+-  (__ev64_s64__) { 0x1a082014 },
+-  (__ev64_s64__) { 0x11b7aae8 },
+-  (__ev64_s64__) { 0x10661574 },
+-  (__ev64_s64__) { 0x5c6688 },
+-  (__ev64_s64__) { 0xf95bcac },
+-  (__ev64_s64__) { 0xe1e31c0 },
+-  (__ev64_s64__) { 0x345f1fbb },
+-  (__ev64_s64__) { 0xffffffffffee7275 },
+-  (__ev64_s64__) { 0x112cd556 },
+-  (__ev64_s64__) { 0xb304c0 },
+-  (__ev64_s64__) { 0xfffffffffd0250f6 },
+-  (__ev64_s64__) { 0xffffffffff66b566 },
+-  (__ev64_s64__) { 0xfffffffffefc5f9e },
+-  (__ev64_s64__) { 0x5ef30c8 },
+-  (__ev64_s64__) { 0x127f1538 },
+-  (__ev64_s64__) { 0xdb8eec5 },
+-  (__ev64_s64__) { 0xffffffffffbf2a3e },
+-  (__ev64_s64__) { 0xffffffffee2908c0 },
+-  (__ev64_s64__) { 0xffffffffe5944640 },
+-  (__ev64_s64__) { 0xb5eef20 },
+-  (__ev64_s64__) { 0xffffffffc9999040 },
+-  (__ev64_s64__) { 0x4602864 },
+-  (__ev64_s64__) { 0xfffffffff3fad040 },
+-  (__ev64_s64__) { 0x41aa3fb },
+-  (__ev64_s64__) { 0xfffffffff5e427b0 },
+-  (__ev64_s64__) { 0x4b0ff74 },
+-  (__ev64_s64__) { 0x6ab1917 },
+-  (__ev64_s64__) { 0x1114fb68 },
+-  (__ev64_s64__) { 0x32e038c },
+-  (__ev64_s64__) { 0xfffffffff6464e24 },
+-  (__ev64_s64__) { 0xfffffffff52b1b38 },
+-  (__ev64_s64__) { 0xffffffffe5b0ed7c },
+-  (__ev64_s64__) { 0xffffffffe3f2b228 },
+-  (__ev64_s64__) { 0xffffffffef326f60 },
+-  (__ev64_s64__) { 0x251507ca },
+-  (__ev64_s64__) { 0xffffffffd13f59c3 },
+-  (__ev64_s64__) { 0xffffffffdfde9dae },
+-  (__ev64_s64__) { 0x3465114 },
+-  (__ev64_s64__) { 0xfffffffff2027f8c },
+-  (__ev64_s64__) { 0xffffffffea913738 },
+-  (__ev64_s64__) { 0x499500 },
+-  (__ev64_s64__) { 0xffffffffeb95d438 },
+-  (__ev64_s64__) { 0xfffffffff61f584c },
+-  (__ev64_s64__) { 0xffffffffdee2891c },
+-  (__ev64_s64__) { 0xffffffffe130c36c },
+-  (__ev64_s64__) { 0xffffffffed6f67f0 },
+-  (__ev64_s64__) { 0xfffffffffebc3edf },
+-  (__ev64_s64__) { 0xfffffffffd3ae378 },
+-  (__ev64_s64__) { 0x339c2f6d },
+-  (__ev64_s64__) { 0xffffffffeff52038 },
+-  (__ev64_s64__) { 0xfffffffffff3709c },
+-  (__ev64_s64__) { 0xffffffffea232eec },
+-  (__ev64_s64__) { 0xfffffffffa4f52dc },
+-  (__ev64_s64__) { 0x3812bc6 },
+-  (__ev64_s64__) { 0x1965eeca },
+-  (__ev64_s64__) { 0x8013b5c },
+-  (__ev64_s64__) { 0xfffffffff88c11a0 },
+-  (__ev64_s64__) { 0xfffffffff81ed0ae },
+-  (__ev64_s64__) { 0x1fb50ca },
+-  (__ev64_s64__) { 0x1fd7b8 },
+-  (__ev64_s64__) { 0xffffffffeda92b00 },
+-  (__ev64_s64__) { 0x26bdaaa4 },
+-  (__ev64_s64__) { 0x77b3f8c },
+-  (__ev64_s64__) { 0xffffffffec9202d2 },
+-  (__ev64_s64__) { 0x14b4508c },
+-  (__ev64_s64__) { 0x27b32a7 },
+-  (__ev64_s64__) { 0xd1c8f50 },
+-  (__ev64_s64__) { 0x49506 },
+-  (__ev64_s64__) { 0x2279df18 },
+-  (__ev64_s64__) { 0xb013f41 },
+-  (__ev64_s64__) { 0x8fbb960 },
+-  (__ev64_s64__) { 0x78b06d1 },
+-  (__ev64_s64__) { 0x1d02e23e },
+-  (__ev64_s64__) { 0xfffffffff2054f24 },
+-  (__ev64_s64__) { 0xffffffffece3613e },
+-  (__ev64_s64__) { 0x7d2f930 },
+-  (__ev64_s64__) { 0x12b16753 },
+-  (__ev64_s64__) { 0x15628d4 },
+-  (__ev64_s64__) { 0xfffffffffd118ce8 },
+-  (__ev64_s64__) { 0x14f6d050 },
+-  (__ev64_s64__) { 0x2524a4b2 },
+-  (__ev64_s64__) { 0x1035401 },
+-  (__ev64_s64__) { 0x354c3a8 },
+-  (__ev64_s64__) { 0x31bd75b0 },
+-  (__ev64_s64__) { 0x17f4492a },
+-  (__ev64_s64__) { 0xfffffffffeeacbc0 },
+-  (__ev64_s64__) { 0x392b4a },
+-  (__ev64_s64__) { 0xffffffffef36d4c3 },
+-  (__ev64_s64__) { 0x3443a00 },
+-  (__ev64_s64__) { 0x8f5546e },
+-  (__ev64_s64__) { 0x10683cd0 },
+-  (__ev64_s64__) { 0xf8edc85 },
+-  (__ev64_s64__) { 0xffffffffffdea108 },
+-  (__ev64_s64__) { 0x2f33bf6 },
+-  (__ev64_s64__) { 0x1fd4690 },
+-  (__ev64_s64__) { 0xfffffffffa7382d3 },
+-  (__ev64_s64__) { 0x17847f54 },
+-  (__ev64_s64__) { 0xfffffffff867c058 },
+-  (__ev64_s64__) { 0xffffffffe5108a5e },
+-  (__ev64_s64__) { 0xfffffffffd26b47c },
+-  (__ev64_s64__) { 0xffffffffffadd0f4 },
+-  (__ev64_s64__) { 0x1a921088 },
+-  (__ev64_s64__) { 0xfffffffff942939d },
+-  (__ev64_s64__) { 0x28245fc },
+-  (__ev64_s64__) { 0xb9e8e4e },
+-  (__ev64_s64__) { 0xfffffffff1fab6f6 },
+-  (__ev64_s64__) { 0xffffffffee554084 },
+-  (__ev64_s64__) { 0xa30bda6 },
+-  (__ev64_s64__) { 0x8989b5a },
+-  (__ev64_s64__) { 0xfffffffffffd3bb8 },
+-  (__ev64_s64__) { 0xffffffffd3e28e50 },
+-  (__ev64_s64__) { 0xfffffffff495e1f0 },
+-  (__ev64_s64__) { 0x3e264b8 },
+-  (__ev64_s64__) { 0xffffffffffa6292a },
+-  (__ev64_s64__) { 0xfffffffffbba40eb },
+-  (__ev64_s64__) { 0x29fceca0 },
+-  (__ev64_s64__) { 0x16dec974 },
+-  (__ev64_s64__) { 0x1ddf289c },
+-  (__ev64_s64__) { 0x9bae2c0 },
+-  (__ev64_s64__) { 0xffffffffe6c04164 },
+-  (__ev64_s64__) { 0xffffffffec5d3414 },
+-  (__ev64_s64__) { 0x2ad953 },
+-  (__ev64_s64__) { 0xfffffffff81a4e10 },
+-  (__ev64_s64__) { 0xfffffffffd3aa935 },
+-  (__ev64_s64__) { 0x10ceef30 },
+-  (__ev64_s64__) { 0xfffffffffcab77bd },
+-  (__ev64_s64__) { 0xe4a7e08 },
+-  (__ev64_s64__) { 0xffffffffd657e6cc },
+-  (__ev64_s64__) { 0x20c9359c },
+-  (__ev64_s64__) { 0xfffffffff250389a },
+-  (__ev64_s64__) { 0x5b185b4 },
+-  (__ev64_s64__) { 0xffffffffdd6f51e4 },
+-  (__ev64_s64__) { 0xfffffffff34b4a4a },
+-  (__ev64_s64__) { 0xfffffffff847530a },
+-  (__ev64_s64__) { 0x243a4de },
+-  (__ev64_s64__) { 0xffffffffe4f3dcd3 },
+-  (__ev64_s64__) { 0xffffffffff0ae5e0 },
+-  (__ev64_s64__) { 0x387b57c },
+-  (__ev64_s64__) { 0xffffffffffcb5245 },
+-  (__ev64_s64__) { 0x24f97c },
+-  (__ev64_s64__) { 0x1277afa8 },
+-  (__ev64_s64__) { 0xffffffffd7c50c48 },
+-  (__ev64_s64__) { 0xffffffffff242281 },
+-  (__ev64_s64__) { 0xffffffffe8d6eccb },
+-  (__ev64_s64__) { 0xb9548d8 },
+-  (__ev64_s64__) { 0xff8948e },
+-  (__ev64_s64__) { 0xfffffffff7db0763 },
+-  (__ev64_s64__) { 0x6a80056 },
+-  (__ev64_s64__) { 0x90a37f2 },
+-  (__ev64_s64__) { 0x2db5914f },
+-  (__ev64_s64__) { 0xfffffffffa02a2fa },
+-  (__ev64_s64__) { 0x167eb450 },
+-  (__ev64_s64__) { 0xffffffffd9378f24 },
+-  (__ev64_s64__) { 0xfffffffff4f7a0eb },
+-  (__ev64_s64__) { 0xfffffffffec0ff1d },
+-  (__ev64_s64__) { 0xbc701fe },
+-  (__ev64_s64__) { 0xc2526a8 },
+-  (__ev64_s64__) { 0x1ca67b8e },
+-  (__ev64_s64__) { 0x5b2d938 },
+-  (__ev64_s64__) { 0x6ec7c3 },
+-  (__ev64_s64__) { 0x2fd630 },
+-  (__ev64_s64__) { 0x12271a6c },
+-  (__ev64_s64__) { 0xfffffffff262a732 },
+-  (__ev64_s64__) { 0xb570493 },
+-  (__ev64_s64__) { 0x2517f0a5 },
+-  (__ev64_s64__) { 0x2745558 },
+-  (__ev64_s64__) { 0x284ebfd1 },
+-  (__ev64_s64__) { 0xfffffffffa0d6844 },
+-  (__ev64_s64__) { 0x287c7ed },
+-  (__ev64_s64__) { 0xfffffffffe5417a6 },
+-  (__ev64_s64__) { 0x7cbb7c4 },
+-  (__ev64_s64__) { 0x10411d76 },
+-  (__ev64_s64__) { 0x216c241c },
+-  (__ev64_s64__) { 0xfffffffffc4f9a44 },
+-  (__ev64_s64__) { 0x209aced },
+-  (__ev64_s64__) { 0xfffffffff9c4bd2f },
+-  (__ev64_s64__) { 0xffffffffd99fd462 },
+-  (__ev64_s64__) { 0x175e0c0 },
+-  (__ev64_s64__) { 0xffffffffe82e17cf },
+-  (__ev64_s64__) { 0x1535594 },
+-  (__ev64_s64__) { 0x12a39eab },
+-  (__ev64_s64__) { 0xffffffffef24e8d1 },
+-  (__ev64_s64__) { 0xffffffffe63b2e47 },
+-  (__ev64_s64__) { 0xfffffffffd9418c3 },
+-  (__ev64_s64__) { 0xffffffffff1fdc14 },
+-  (__ev64_s64__) { 0xffffffffe2da1d6c },
+-  (__ev64_s64__) { 0xffffffffe724ffa0 },
+-  (__ev64_s64__) { 0xfffffffffb42ffad },
+-  (__ev64_s64__) { 0xffffffffeb32b0e0 },
+-  (__ev64_s64__) { 0x2d75ffa8 },
+-  (__ev64_s64__) { 0xffffffffffd394bf },
+-  (__ev64_s64__) { 0xffffffffffb2d54e },
+-  (__ev64_s64__) { 0xfffffffff4396fcc },
+-  (__ev64_s64__) { 0x2f4ca28 },
+-  (__ev64_s64__) { 0xfffffffffda28706 },
+-  (__ev64_s64__) { 0xffffffffeb05de21 },
+-  (__ev64_s64__) { 0xffffffffeeb6b0d7 },
+-  (__ev64_s64__) { 0x83b17b },
+-  (__ev64_s64__) { 0x117bd4fe },
+-
+-};
+-#endif
+   register __ev64_s16__ regA asm ("30");
+   register __ev64_s16__ regB asm ("29");
+   register __ev64_s64__ regD asm ("28");
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 3a6df85..ae31f29 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
++   by 0x........: main (test_spe.c:16584)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,178 +13,12 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwsmfan_asm (test_spe.c:9376)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwsmfan_asm (test_spe.c:9382)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 184 bytes inside a block of size 256 free'd
+-   at 0x........: free (vg_replace_malloc.c:...)
+-   by 0x........: simple_loop (test_spe.c:333)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwsmfaa_asm (test_spe.c:9750)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwsmfaa_asm (test_spe.c:9756)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 8 bytes before a block of size 64 alloc'd
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfan_asm (test_spe.c:9349)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwsmf_asm (test_spe.c:10136)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwsmf_asm (test_spe.c:10142)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 8 bytes before a block of size 64 alloc'd
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfaa_asm (test_spe.c:9723)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwsmfa_asm (test_spe.c:10267)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwsmfa_asm (test_spe.c:10273)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 8 bytes before a block of size 64 alloc'd
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmf_asm (test_spe.c:10109)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwhsmf_asm (test_spe.c:10656)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwhsmf_asm (test_spe.c:10662)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 8 bytes before a block of size 64 alloc'd
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfa_asm (test_spe.c:10229)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-Invalid write of size 8
+-   at 0x........: evmwhsmfa_asm (test_spe.c:10784)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-
+-Invalid read of size 8
+-   at 0x........: evmwhsmfa_asm (test_spe.c:10790)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+- Address 0x........ is 8 bytes before a block of size 64 alloc'd
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmf_asm (test_spe.c:10628)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
++   by 0x........: main (test_spe.c:16584)
+ 
+ 
+ HEAP SUMMARY:
+-    in use at exit: 98,344 bytes in 1,537 blocks
+-  total heap usage: 1,538 allocs, 1 frees, 98,600 bytes allocated
++    in use at exit: 40 bytes in 1 blocks
++  total heap usage: 2 allocs, 1 frees, 296 bytes allocated
+ 
+ 40 bytes in 1 blocks are definitely lost in loss record ... of ...
+    at 0x........: malloc (vg_replace_malloc.c:...)
+@@ -193,74 +27,14 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfan_asm (test_spe.c:9349)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfaa_asm (test_spe.c:9723)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmf_asm (test_spe.c:10109)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwsmfa_asm (test_spe.c:10229)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmf_asm (test_spe.c:10628)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
+-
+-16,384 bytes in 256 blocks are definitely lost in loss record ... of ...
+-   at 0x........: calloc (vg_replace_malloc.c:...)
+-   by 0x........: evmwhsmfa_asm (test_spe.c:10746)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:17132)
++   by 0x........: main (test_spe.c:16584)
+ 
+ LEAK SUMMARY:
+-   definitely lost: 98,344 bytes in 1,537 blocks
++   definitely lost: 40 bytes in 1 blocks
+    indirectly lost: 0 bytes in 0 blocks
+      possibly lost: 0 bytes in 0 blocks
+    still reachable: 0 bytes in 0 blocks
+         suppressed: 0 bytes in 0 blocks
+ 
+ For counts of detected and suppressed errors, rerun with: -v
+-ERROR SUMMARY: 3080 errors from 20 contexts (suppressed: 0 from 0)
++ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 68c78fc..c94d8d7 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1775,6 +1775,7 @@ Making check in exp-dhat
+ make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in .
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++make[3]: Warning: File `exp-dhat-ppc32-linux' has modification time 0.65 s in the future
+ mkdir -p ../.in_place; \
+ for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
+   rm -f ../.in_place/$f; \
+@@ -1791,6 +1792,7 @@ for f in ; do \
+   rm -f ../.in_place/$f.dSYM; \
+   ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in tests
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+@@ -1980,7 +1982,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 28448 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  4940 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1999,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 30190 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  5499 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2088,7 +2090,6 @@ post-syscall:    valgrind   -q ./post-syscall
+ -- Running  tests in memcheck/tests/ppc32 ------------------------------
+ power_ISA2_05:   valgrind   ./power_ISA2_05 
+ test_spe:        valgrind   --leak-check=full ./test_spe 
+-*** test_spe failed (stderr) ***
+ -- Finished tests in memcheck/tests/ppc32 ------------------------------
+ -- Running  tests in memcheck/tests/ppc64 ------------------------------
+ power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+@@ -2110,7 +2111,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 14080 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 10317 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2247,7 +2248,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16801 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 14955 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2413,7 +2414,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 28063 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 32393 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2530,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 24201 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  5457 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2553,12 +2554,11 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 530 tests, 9 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 530 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+ gdbserver_tests/mcmain_pic               (stderrB)
+-memcheck/tests/ppc32/test_spe            (stderr)
+ memcheck/tests/supp_unknown              (stderr)
+ memcheck/tests/trivialleak               (stderr)
+ memcheck/tests/varinfo6                  (stderr)
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 2356f17..1570041 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 77 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 81 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 78 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 80 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 81 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 81 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 81 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7797 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7572 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  8356 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  8146 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 13050 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12861 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 17538 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 17359 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  2693 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2523 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  8040 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  8596 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0052-Implement-Instructions-mfspefscr-mtspefscr.patch b/recipes-devtools/valgrind/files/0052-Implement-Instructions-mfspefscr-mtspefscr.patch
new file mode 100644
index 0000000..329f853
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0052-Implement-Instructions-mfspefscr-mtspefscr.patch
@@ -0,0 +1,505 @@
+From 80e06a8e22c21cf51fe0eab567ddf7941fc27716 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 12 Apr 2013 18:08:56 -0700
+Subject: [PATCH 52/65] Implement Instructions: { mfspefscr, mtspefscr }.
+
+---
+ FSL-SPE-README.txt                       |    4 +
+ VEX/priv/guest_ppc_defs.h                |    4 +
+ VEX/priv/guest_ppc_helpers.c             |   30 +++++++
+ VEX/priv/guest_ppc_toIR.c                |   43 ++++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  132 ++++++++++++++++++++---------
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ regtest-power7-64.default-build.log      |   20 ++---
+ regtest-power7-64.log                    |   16 ++--
+ 8 files changed, 191 insertions(+), 64 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index d6e779b..e5d2e27 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -73,6 +73,10 @@
+  evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
+  evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian,
+ 
++ New instructions implemented since last release:
++
++ mfspefscr, mtspefscr,
++
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 18837b1..217f73e 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -283,6 +283,10 @@ extern void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
+                                           UInt rD_off,
+                                           UInt rA_off,
+                                           UInt rB_off);
++extern void spe_dirtyhelper_mfspefscr ( VexGuestPPC32State* gst,
++                                        UInt rD_off );
++extern void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
++                                        UInt rD_off );
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index f62ac3e..6be07a5 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1399,6 +1399,36 @@ void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
+   return;
+ }
+ 
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_mfspefscr ( VexGuestPPC32State* gst,
++                                 UInt rD_off )
++{
++#ifdef __SPE__
++  register uint32_t rD asm ("29") = 0x0;
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 1 * sizeof(UInt));
++  asm volatile ("mfspefscr %[d]" : [d] "=r" (rD));
++  // Write rD to the Guest State:
++  *((UInt *) ((UChar *) gst + rD_off)) = rD;
++#endif // __SPE__
++  return;
++}
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
++                                 UInt rD_off )
++{
++#ifdef __SPE__
++  register uint32_t rD asm ("29") = 0x0;
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 1 * sizeof(UInt));
++  // Read rD from the Guest State:
++  rD = *((UInt *) ((UChar *) gst + rD_off));
++  asm volatile ("mtspefscr %[d]" : : [d] "r" (rD));
++#endif // __SPE__
++  return;
++}
++
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+ /*----------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 0f137c2..b395826 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -6644,7 +6644,27 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr )
+          DIP("mfspr r%u, SPRG3(readonly)\n", rD_addr);
+          putIReg( rD_addr, getGST( PPC_GST_SPRG3_RO ) );
+          break;
+-
++#ifdef __SPE__
++      case 0x200: {
++         UInt rD_off   = integerGuestRegOffset ( rD_addr );
++         IRExpr** args = mkIRExprVec_1 ( mkU32( rD_off ) );
++         IRDirty* d    = unsafeIRDirty_0_N (0 /* regparms */,
++                                            "spe_dirtyhelper_mfspefscr",
++                                            &spe_dirtyhelper_mfspefscr,
++                                            args);
++         DIP("mfspefscr r%u\n", rD_addr);
++         d->needsBBP = True;
++         d->nFxState = 1;
++         vex_bzero(&d->fxState, sizeof(d->fxState));
++         d->fxState[0].fx     = Ifx_Write;
++         d->fxState[0].offset = rD_off;
++         d->fxState[0].size   = 1 * sizeof(UInt);
++
++         /* execute the dirty call, side-effecting guest state */
++         stmt( IRStmt_Dirty(d) );
++         break;
++      }
++#endif
+       /* Even a lowly PPC7400 can run the associated helper, so no
+          obvious need for feature testing at this point. */
+       case 268 /* 0x10C */:
+@@ -6779,6 +6799,27 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr )
+          putGST( PPC_GST_VRSAVE, mkNarrowTo32(ty, mkexpr(rS)) );
+          break;
+          
++#ifdef __SPE__
++      case 0x200: {
++         UInt rD_off   = integerGuestRegOffset ( rD_addr );
++         IRExpr** args = mkIRExprVec_1 ( mkU32( rD_off ) );
++         IRDirty* d    = unsafeIRDirty_0_N (0 /* regparms */,
++                                            "spe_dirtyhelper_mtspefscr",
++                                            &spe_dirtyhelper_mtspefscr,
++                                            args);
++         DIP("mtspefscr r%u\n", rD_addr);
++         d->needsBBP = True;
++         d->nFxState = 1;
++         vex_bzero(&d->fxState, sizeof(d->fxState));
++         d->fxState[0].fx     = Ifx_Read;
++         d->fxState[0].offset = rD_off;
++         d->fxState[0].size   = 1 * sizeof(UInt);
++
++         /* execute the dirty call, side-effecting guest state */
++         stmt( IRStmt_Dirty(d) );
++         break;
++      }
++#endif
+       default:
+          vex_printf("dis_proc_ctl(ppc)(mtspr,SPR)(%u)\n", SPR);
+          return False;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 4113103..b489fa8 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -4368,50 +4368,100 @@ __ev64_opaque__ __ev_set_u8( __ev64_opaque__ a, uint8_t b, uint32_t pos );
+ __ev64_opaque__ __ev_set_s8( __ev64_opaque__ a, int8_t b, uint32_t pos );
+ #endif
+ 
+-#if TODO
+-  // TODO: ADD examples here.
+   // 4.2 Signal Processing Engine (SPE) APU Registers
+   // 4.2.2 SPEFSCR Intrinsics
+   // 4.2.2.1 SPEFSCR Low-Level Accessors
+-uint32_t __ev_get_spefscr_sovh( );
+-uint32_t __ev_get_spefscr_ovh( );
+-uint32_t __ev_get_spefscr_fgh( );
+-uint32_t __ev_get_spefscr_fxh( );
+-uint32_t __ev_get_spefscr_finvh( );
+-uint32_t __ev_get_spefscr_fdbzh( );
+-uint32_t __ev_get_spefscr_funfh( );
+-uint32_t __ev_get_spefscr_fovfh( );
+-uint32_t __ev_get_spefscr_finxs(  );
+-uint32_t __ev_get_spefscr_finvs(  );
+-uint32_t __ev_get_spefscr_fdbzs(  );
+-uint32_t __ev_get_spefscr_funfs(  );
+-uint32_t __ev_get_spefscr_fovfs(  );
+-uint32_t __ev_get_spefscr_mode( );
+-uint32_t __ev_get_spefscr_sov( );
+-uint32_t __ev_get_spefscr_ov( );
+-uint32_t __ev_get_spefscr_fg( );
+-uint32_t __ev_get_spefscr_fx( );
+-uint32_t __ev_get_spefscr_finv( );
+-uint32_t __ev_get_spefscr_fdbz( );
+-uint32_t __ev_get_spefscr_funf( );
+-uint32_t __ev_get_spefscr_fovf( );
+-uint32_t __ev_get_spefscr_finxe( );
+-uint32_t __ev_get_spefscr_finve( );
+-uint32_t __ev_get_spefscr_fdbze( );
+-uint32_t __ev_get_spefscr_funfe( );
+-uint32_t __ev_get_spefscr_fovfe( );
+-uint32_t __ev_get_spefscr_frmc( );
+-void __ev_clr_spefscr_sovh( );
+-void __ev_clr_spefscr_sov( );
+-void __ev_clr_spefscr_finxs(  );
+-void __ev_clr_spefscr_finvs(  );
+-void __ev_clr_spefscr_fdbzs(  );
+-void __ev_clr_spefscr_funfs(  );
+-void __ev_clr_spefscr_fovfs(  );
+-void __ev_set_spefscr_frmc( uint32_t rnd );
+-                                 // rnd = 0 (nearest), rnd = 1 (zero),
+-                                 //                                  // rnd = 2 (+inf), rnd = 3 (-inf)
+-                                 //
++
++  // SPEFSCR get()'s
++  // All we are achieving by making these calls is verifying that these calls execute
++  // and that in particular, mfspefscr executes.
++  (void) __ev_get_spefscr_sovh();
++  (void) __ev_get_spefscr_ovh();
++  (void) __ev_get_spefscr_fgh();
++  (void) __ev_get_spefscr_fxh();
++  (void) __ev_get_spefscr_finvh();
++  (void) __ev_get_spefscr_fdbzh();
++  (void) __ev_get_spefscr_funfh();
++  (void) __ev_get_spefscr_fovfh();
++  (void) __ev_get_spefscr_finxs();
++  (void) __ev_get_spefscr_finvs();
++  (void) __ev_get_spefscr_fdbzs();
++  (void) __ev_get_spefscr_funfs();
++  (void) __ev_get_spefscr_fovfs();
++  (void) __ev_get_spefscr_mode();
++  (void) __ev_get_spefscr_sov();
++  (void) __ev_get_spefscr_ov();
++  (void) __ev_get_spefscr_fg();
++  (void) __ev_get_spefscr_fx();
++  (void) __ev_get_spefscr_finv();
++  (void) __ev_get_spefscr_fdbz();
++  (void) __ev_get_spefscr_funf();
++  (void) __ev_get_spefscr_fovf();
++  (void) __ev_get_spefscr_finxe();
++  (void) __ev_get_spefscr_finve();
++  (void) __ev_get_spefscr_fdbze();
++  (void) __ev_get_spefscr_funfe();
++  (void) __ev_get_spefscr_fovfe();
++  (void) __ev_get_spefscr_frmc();
++
++  // SPEFSCR clr()'s verify that mfspefscr/mtspefscr work (see spe.h)
++  __ev_clr_spefscr_sovh();
++  uint32_t spefscr_sovh = __ev_get_spefscr_sovh();
++  VERIFY(spefscr_sovh == 0x0);
++
++  __ev_clr_spefscr_sov();
++  uint32_t spefscr_sov = __ev_get_spefscr_sov();
++  VERIFY(spefscr_sov == 0x0);
++
++  __ev_clr_spefscr_finxs();
++  uint32_t spefscr_finxs = __ev_get_spefscr_finxs();
++  VERIFY(spefscr_finxs == 0x0);
++
++  __ev_clr_spefscr_finvs();
++  uint32_t spefscr_finvs = __ev_get_spefscr_finvs();
++  VERIFY(spefscr_finvs == 0x0);
++
++  __ev_clr_spefscr_fdbzs();
++  uint32_t spefscr_fdbzs = __ev_get_spefscr_fdbzs();
++  VERIFY(spefscr_fdbzs == 0x0);
++
++  __ev_clr_spefscr_funfs();
++  uint32_t spefscr_funfs = __ev_get_spefscr_funfs();
++  VERIFY(spefscr_funfs == 0x0);
++
++  __ev_clr_spefscr_fovfs();
++  uint32_t spefscr_fovfs = __ev_get_spefscr_fovfs();
++  VERIFY(spefscr_fovfs == 0x0);
++
++  // SPEFSCR set()'s verify that mfspefscr/mtspefscr work (see spe.h)
++  uint32_t spefscr_frmc;
++
++  // rnd = 0 (nearest)
++  __ev_set_spefscr_frmc(0x0);
++  spefscr_frmc = __ev_get_spefscr_frmc();
++  VERIFY(spefscr_frmc == 0x0);
++
++  // rnd = 1 (zero)
++  __ev_set_spefscr_frmc(0x1);
++  spefscr_frmc = __ev_get_spefscr_frmc();
++  VERIFY(spefscr_frmc == 0x1);
++
++  // rnd = 2 (+inf)
++  __ev_set_spefscr_frmc(0x2);
++  spefscr_frmc = __ev_get_spefscr_frmc();
++  VERIFY(spefscr_frmc == 0x2);
++
++  // rnd = 3 (-inf)
++  __ev_set_spefscr_frmc(0x3);
++  spefscr_frmc = __ev_get_spefscr_frmc();
++  VERIFY(spefscr_frmc == 0x3);
++
++  // Reset the FRMC field.
++  __ev_set_spefscr_frmc(0x0);
++  spefscr_frmc = __ev_get_spefscr_frmc();
++  VERIFY(spefscr_frmc == 0x0);
++
++#if TODO
+ 4.3      Application Binary Interface (ABI) Extensions
+ The following sections discuss ABI extensions.
+ 4.3.1     malloc(), realloc(), calloc(), and new
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index ae31f29..f520e54 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16584)
++   by 0x........: main (test_spe.c:16634)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16584)
++   by 0x........: main (test_spe.c:16634)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:43)
+    by 0x........: run (test_spe.h:49)
+    by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16584)
++   by 0x........: main (test_spe.c:16634)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index c94d8d7..461f22e 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 80 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 81 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1775,7 +1775,6 @@ Making check in exp-dhat
+ make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in .
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-make[3]: Warning: File `exp-dhat-ppc32-linux' has modification time 0.65 s in the future
+ mkdir -p ../.in_place; \
+ for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
+   rm -f ../.in_place/$f; \
+@@ -1792,7 +1791,6 @@ for f in ; do \
+   rm -f ../.in_place/$f.dSYM; \
+   ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in tests
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+@@ -1865,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 81 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1982,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  4940 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7110 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1999,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  5499 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  7669 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2111,7 +2109,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 10317 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12433 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2248,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 14955 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 16942 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2414,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 32393 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2095 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2529,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  5457 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  7450 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 1570041..ea0edc2 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 81 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 81 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7572 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  8454 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  8146 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  9018 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12861 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 15170 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 17359 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 19728 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  2523 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  4905 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  8596 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 11233 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0053-Implement-SPE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch b/recipes-devtools/valgrind/files/0053-Implement-SPE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch
new file mode 100644
index 0000000..5a9107c
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0053-Implement-SPE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch
@@ -0,0 +1,1351 @@
+From 9eb04d0b1c7f951fb1b1ca2a95a64ed07d29ed9c Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 19 Apr 2013 13:23:23 -0700
+Subject: [PATCH 53/65] Implement SPE Instructions: { efdcmpeq, efdabs, efdadd, efdsub, efdcfs, efdcfsf, efdcfsi, efdcfuf, efdcfui }.
+
+---
+ FSL-SPE-README.txt                       |   13 +-
+ VEX/priv/guest_ppc_defs.h                |   22 ++
+ VEX/priv/guest_ppc_helpers.c             |  108 ++++++++++
+ VEX/priv/guest_ppc_toIR.c                |  237 +++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.c          |  332 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.h          |    4 +-
+ memcheck/tests/ppc32/test_spe.stderr.exp |   24 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   13 ++
+ regtest-power7-64.default-build.log      |   46 ++--
+ regtest-power7-64.log                    |   48 +++---
+ 10 files changed, 783 insertions(+), 64 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index e5d2e27..02a37f4 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -75,7 +75,8 @@
+ 
+  New instructions implemented since last release:
+ 
+- mfspefscr, mtspefscr,
++ mfspefscr, mtspefscr, efdcmpeq, efdabs, efdadd, efdsub, efdcfs, efdcfsf, efdcfsi,
++ efdcfuf, efdcfui,
+ 
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+@@ -87,10 +88,9 @@
+ 
+  Note: Non SPE instructions are indicated by suffixing them with a '?' sign.
+ 
+- eciwx?, ecowx?, efdabs, efdadd, efdcfs, efdcfsf, efdcfsi, efdcfsid, efdcfuf,
+- efdcfui, efdcfuid, efdcmpeq, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsidz,
++ eciwx?, ecowx?, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsidz,
+  efdctsiz, efdctuf, efdctui, efdctuidz, efdctuiz, efddiv, efdmul, efdnabs,
+- efdneg, efdsub, efdtsteq, efdtstgt, efdtstlt, efsabs, efsadd, efscfd, efscfsf,
++ efdneg, efdtsteq, efdtstgt, efdtstlt, efsabs, efsadd, efscfd, efscfsf,
+  efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt, efscmplt, efsctsf, efsctsi,
+  efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul, efsnabs, efsneg, efssub,
+  efststeq, efststgt, efststlt, ehpriv?, eqv?, eqv.?, evfsabs, evfsadd,
+@@ -104,6 +104,11 @@
+  evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
+  evsubfssiaaw, evsubfusiaaw, extsb?, extsb.?, extsh?, extsh.?
+ 
++ The following instructions may only be implemented for 64-bit implementations,
++ and are hence out of scope for this porting effort:
++
++ efdcfsid, efdcfuid,
++
+  Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
+  ----------------------------------------------------------------------
+ 
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 217f73e..cb79b14 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -288,6 +288,28 @@ extern void spe_dirtyhelper_mfspefscr ( VexGuestPPC32State* gst,
+ extern void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
+                                         UInt rD_off );
+ 
++#define SPE_DIRTY_HELPER_DECL_crfDrArB(insn) \
++extern UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off );
++
++#define SPE_DIRTY_HELPER_DECL_rDrArB(insn) \
++extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rA_off, UInt rB_off );
++
++#define SPE_DIRTY_HELPER_DECL_rDrA(insn) \
++extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rA_off )
++
++#define SPE_DIRTY_HELPER_DECL_rDrB(insn) \
++extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off )
++
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdcmpeq);
++SPE_DIRTY_HELPER_DECL_rDrA(efdabs);
++SPE_DIRTY_HELPER_DECL_rDrArB(efdadd);
++SPE_DIRTY_HELPER_DECL_rDrArB(efdsub);
++SPE_DIRTY_HELPER_DECL_rDrB(efdcfs);
++SPE_DIRTY_HELPER_DECL_rDrB(efdcfsf);
++SPE_DIRTY_HELPER_DECL_rDrB(efdcfsi);
++SPE_DIRTY_HELPER_DECL_rDrB(efdcfuf);
++SPE_DIRTY_HELPER_DECL_rDrB(efdcfui);
++
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+ /*---------------------------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 6be07a5..a494653 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1429,6 +1429,114 @@ void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
+   return;
+ }
+ 
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++#ifdef __SPE__
++#define SPE_DIRTY_HELPER_DEFN_crfDrArB(insn, rA_type, rB_type)                    \
++UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off ) \
++{                                                                                 \
++  register rA_type      rA asm ("29");                                            \
++  register rB_type      rB asm ("28");                                            \
++  register unsigned int CR asm ("27");                                            \
++                                                                                  \
++  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));               \
++  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));               \
++                                                                                  \
++  /* Read rA, rB from the Guest State: */                                         \
++  rA = *((rA_type *) ((UChar *) gst + rA_off));                                   \
++  rB = *((rB_type *) ((UChar *) gst + rB_off));                                   \
++                                                                                  \
++  /* (Use CR7 for the result of the comparison). */                               \
++  asm volatile (#insn " 7, %[a], %[b]" : : [a] "r" (rA), [b] "r" (rB));           \
++                                                                                  \
++  /* Get hard reg CR into the variable CR: */                                     \
++  asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                   \
++                                                                                  \
++  /* From CR7, extract and return just that one bit holding the result. */        \
++  return ((CR & 0xf) >> 2) & 0x1;                                                 \
++}
++#else
++#define SPE_DIRTY_HELPER_DEFN_crfDrArB(insn, rA_type, rB_type)                    \
++UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off ) \
++{                                                                                 \
++  return 0;                                                                       \
++}
++#endif // __SPE__
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++#ifdef __SPE__
++#define SPE_DIRTY_HELPER_DEFN_rDrArB(insn, rD_type, rA_type, rB_type)                          \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rA_off, UInt rB_off ) \
++{                                                                                              \
++  register rD_type rD asm ("29");                                                              \
++  register rA_type rA asm ("28");                                                              \
++  register rB_type rB asm ("27");                                                              \
++                                                                                               \
++  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                            \
++  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                            \
++  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                            \
++                                                                                               \
++  /* Read rA, rB from the Guest State: */                                                      \
++  rA = *((rA_type *) ((UChar *) gst + rA_off));                                                \
++  rB = *((rB_type *) ((UChar *) gst + rB_off));                                                \
++                                                                                               \
++  asm volatile (#insn " %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));       \
++                                                                                               \
++  /* Write rD to the Guest State: */                                                           \
++  *((rD_type *) ((UChar *) gst + rD_off)) = rD;                                                \
++  return;                                                                                      \
++}
++#else
++#define SPE_DIRTY_HELPER_DEFN_rDrArB(insn, rD_type, rA_type, rB_type)                          \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rA_off, UInt rB_off ) \
++{                                                                                              \
++  return;                                                                                      \
++}
++#endif // __SPE__
++
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (reads guest state, writes guest state) */
++#ifdef __SPE__
++#define SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rB_type)                        \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off ) \
++{                                                                                 \
++  register rD_type rD asm ("30");                                                 \
++  register rB_type rB asm ("29");                                                 \
++                                                                                  \
++  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));               \
++  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));               \
++                                                                                  \
++  /* Read rB from the Guest State: */                                             \
++  rB = *((rB_type*) ((UChar *) gst + rB_off));                                    \
++                                                                                  \
++  asm volatile (#insn " %[d], %[b]" : [d] "=r" (rD) : [b] "r" (rB));              \
++                                                                                  \
++  /* Write rD to the Guest State: */                                              \
++  *((rD_type *) ((UChar *) gst + rD_off)) = rD;                                   \
++  return;                                                                         \
++}
++#else
++#define SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rB_type)                        \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off ) \
++{                                                                                 \
++  return;                                                                         \
++}
++#endif // __SPE__
++
++#define SPE_DIRTY_HELPER_DEFN_rDrA(insn, rD_type, rA_type) \
++        SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rA_type)
++
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdabs, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd, double, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub, double, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf, double, __ev64_u32__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi, double, __ev64_s32__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf, double, __ev64_u64__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui, double, __ev64_u32__)
++
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+ /*----------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index b395826..475a454 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -15031,6 +15031,231 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+   }
+   return True;
+ }
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrArB(insn)                \
++     args = mkIRExprVec_3 ( mkU32( rD_off ),                  \
++                            mkU32( rA_off ),                  \
++                            mkU32( rB_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr, rB_addr );   \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 3;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rA_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++     d->fxState[2].fx     = Ifx_Read;                         \
++     d->fxState[2].offset = rB_off;                           \
++     d->fxState[2].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                        \
++     args = mkIRExprVec_2 ( mkU32( rA_off ),                            \
++                            mkU32( rB_off ) );                          \
++     d = unsafeIRDirty_1_N (val,                                        \
++                            0 /* regparms */,                           \
++                            "spe_dirtyhelper_" #insn,                   \
++                            &spe_dirtyhelper_##insn,                    \
++                            args);                                      \
++     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );      \
++     /* declare guest state effects */                                  \
++     d->needsBBP = True;                                                \
++     d->nFxState = 2;                                                   \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                        \
++     d->fxState[0].fx     = Ifx_Read;                                   \
++     d->fxState[0].offset = rA_off;                                     \
++     d->fxState[0].size   = sizeof(ULong);                              \
++     d->fxState[1].fx     = Ifx_Read;                                   \
++     d->fxState[1].offset = rB_off;                                     \
++     d->fxState[1].size   = sizeof(ULong);                              \
++                                                                        \
++     /* execute the dirty call, side-effecting guest state */           \
++     stmt( IRStmt_Dirty(d) );                                           \
++     /* Update the CR in the guest state with the returned bit-value */ \
++     putCRbit ( CR_field * 4 + 1, mkexpr ( val ) );
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rB_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rB_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rB_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrA(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rA_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( "efdabs r%d, r%d\n", rD_addr, rA_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rA_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++static Bool dis_spe_fs ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRB( theInstr );
++  Char  simm    = evxRA( theInstr );
++
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++
++  IRDirty* d;
++  IRExpr** args;
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_fs (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  default:
++     return False;
++  }
++  return True;
++}
++
++static Bool dis_spe_fv ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1    = evxOpcode( theInstr );
++  UInt  opc2    = evxXO( theInstr );
++  UChar rD_addr = evxRD( theInstr );
++  UChar rA_addr = evxRA( theInstr );
++  UChar rB_addr = evxRB( theInstr );
++  UChar uimm    = evxRB( theInstr );
++  Char  simm    = evxRA( theInstr );
++
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++
++  IRDirty* d;
++  IRExpr** args;
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_fv (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  default:
++     return False;
++  }
++  return True;
++}
++
++static Bool dis_spe_fd ( UInt theInstr )
++{
++  /* EVX-Form */
++  UChar opc1     = evxOpcode( theInstr );
++  UInt  opc2     = evxXO( theInstr );
++  UChar CR_field = evxBF( theInstr );
++  UChar rD_addr  = evxRD( theInstr );
++  UChar rA_addr  = evxRA( theInstr );
++  UChar rB_addr  = evxRB( theInstr );
++  UChar uimm     = evxRB( theInstr );
++  Char  simm     = evxRA( theInstr );
++
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++  UInt CRf_off;
++
++  IRDirty* d;
++  IRExpr** args;
++  IRTemp   val = newTemp(Ity_I32);
++
++  if (opc1 != 0x4) {
++     vex_printf( "dis_spe_fd (ppc)(opc1 != 0x4)\n" );
++     return False;
++  }
++  switch (opc2) {
++  case 0x2e0:
++     // efdadd (Floating-Point Double-Precision Add, SPEPEM p5-18)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efdadd);
++  break;
++  case 0x2e1:
++     // efdsub (Floating-Point Double-Precision Subtract, SPEPEM p5-41)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efdsub);
++  break;
++  case 0x2e4:
++     // efdabs (Floating-Point Double-Precision Absolute Value, SPEPEM p5-17)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efdabs);
++  break;
++  case 0x2ee:
++     // efdcmpeq (Floating-Point Double-Precision Compare Equal, SPEPEM p5-26)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdcmpeq);
++  break;
++  case 0x2ef:
++     // efdcfs (Floating-Point Double-Precision Convert from Single-Precision, SPEPEM p5-19)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfs);
++  break;
++  case 0x2f0:
++     // efdcfui (Convert Floating-Point Double-Precision from Unsigned Integer, SPEPEM p5-24)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfui);
++  break;
++  case 0x2f1:
++      // efdcfsi (Convert Floating-Point Double-Precision from Signed Integer, SPEPEM p5-21)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfsi);
++  break;
++  case 0x2f2:
++     // efdcfuf (Convert Floating-Point Double-Precision from Unsigned Fraction, SPEPEM p5-23)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfuf);
++  break;
++  case 0x2f3:
++     // efdcfsf (Convert Floating-Point Double-Precision from Signed Fraction, SPEPEM p5-20)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfsf);
++  break;
++  default:
++     return False;
++  }
++  return True;
++}
++
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+ /*------------------------------------------------------------*/
+@@ -21012,6 +21237,18 @@ DisResult disInstr_PPC_WRK (
+ #ifdef __SPE__
+       opc2 = IFIELD(theInstr, 0, 11);
+       switch (opc2) {
++      case 0x2e0: // efdadd
++      case 0x2e1: // efdsub
++      case 0x2e4: // efdabs
++      case 0x2ee: // efdcmpeq
++      case 0x2ef: // efdcfs
++      case 0x2f0: // efdcfui
++      case 0x2f1: // efdcfsi
++      case 0x2f2: // efdcfuf
++      case 0x2f3: // efdcfsf
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_fd( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x22c: // evmergehi
+       case 0x22d: // evmergelo
+       case 0x22e: // evmergehilo
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index b489fa8..c31066a 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -16156,6 +16156,283 @@ int evmhogumian_asm(void)
+ }
+ TEST_SPE_DECL(evmhogumian_asm, "evmhogumian");
+ 
++#define EXTRACTOR
++
++#define SPE_DEFN_DEFAULT(insn) \
++int insn##_asm(void)           \
++{                              \
++  int failures = 0;            \
++  return failures;             \
++}
++
++#define SPE_CMP(insn, CR_field, cmp, regA, regB)                                        \
++{                                                                                       \
++  unsigned int CR;                                                                      \
++  int field;                                                                            \
++                                                                                        \
++  field = CR_field;                                                                     \
++  asm volatile (#insn " " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB)); \
++  asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                         \
++  VERIFY(((EXTRACT_CR_FIELD(CR, field) >> 2) & 0x1) == cmp, "i = %d\n", i);             \
++}
++
++#ifdef __SPE__
++#define SPE_DEFN_crfDrArB(insn, rA_type, rB_type, tvals...)  \
++int insn##_asm(void)                                         \
++{                                                            \
++  int failures = 0;                                          \
++  register rA_type regA asm ("30");                          \
++  register rB_type regB asm ("29");                          \
++  struct test_data {                                         \
++    int     cmp;                                             \
++    rA_type aval;                                            \
++    rB_type bval;                                            \
++  } tval[] = { tvals };                                      \
++  int i;                                                     \
++                                                             \
++  for (i = 0; i < NELTS(tval); i++) {                        \
++                                                             \
++    regA = tval[i].aval;                                     \
++    regB = tval[i].bval;                                     \
++                                                             \
++    /* CR0 */ SPE_CMP(insn, 0, tval[i].cmp, (regA), (regB)); \
++    /* CR1 */ SPE_CMP(insn, 1, tval[i].cmp, (regA), (regB)); \
++    /* CR5 */ SPE_CMP(insn, 5, tval[i].cmp, (regA), (regB)); \
++    /* CR6 */ SPE_CMP(insn, 6, tval[i].cmp, (regA), (regB)); \
++    /* CR7 */ SPE_CMP(insn, 7, tval[i].cmp, (regA), (regB)); \
++  }                                                          \
++  return failures;                                           \
++}                                                            \
++TEST_SPE_DECL(insn##_asm, #insn);
++#else
++#define SPE_DEFN_crfDrArB(insn, rD_type, rA_type, rB_type, tvals...) \
++SPE_DEFN_DEFAULT(insn)                                               \
++TEST_SPE_DECL(insn##_asm, #insn);
++#endif // __SPE__
++
++#ifdef __SPE__
++#define SPE_DEFN_rDrArB(insn, rD_type, rA_type, rB_type, generate_baseline, baseline_format, tvals...) \
++int insn##_asm(void)                                                                                   \
++{                                                                                                      \
++  int failures = 0;                                                                                    \
++  register rD_type regD asm ("30");                                                                    \
++  register rA_type regA asm ("29");                                                                    \
++  register rB_type regB asm ("28");                                                                    \
++  struct test_data {                                                                                   \
++    rD_type dval;                                                                                      \
++    rA_type aval;                                                                                      \
++    rB_type bval;                                                                                      \
++  } tval[] = { tvals };                                                                                \
++  int i;                                                                                               \
++                                                                                                       \
++  for (i = 0; i < NELTS(tval); i++) {                                                                  \
++    regA = tval[i].aval;                                                                               \
++    regB = tval[i].bval;                                                                               \
++    asm volatile (#insn " %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));       \
++    if (generate_baseline)                                                                             \
++      printf (baseline_format, regD);                                                                  \
++    else                                                                                               \
++      VERIFY(EXTRACTOR(regD) == EXTRACTOR(tval[i].dval), "i = %d\n", i);                               \
++  }                                                                                                    \
++  return failures;                                                                                     \
++}                                                                                                      \
++TEST_SPE_DECL(insn##_asm, #insn);
++#else
++#define SPE_DEFN_rDrArB(insn, rD_type, rA_type, rB_type, generate_baseline, baseline_format, tvals...) \
++SPE_DEFN_DEFAULT(insn)                                                                                 \
++TEST_SPE_DECL(insn##_asm, #insn);
++#endif
++
++#ifdef __SPE__
++#define SPE_DEFN_rDrB(insn, rD_type, rB_type, generate_baseline, baseline_format, tvals...) \
++int insn##_asm(void)                                                                        \
++{                                                                                           \
++  int failures = 0;                                                                         \
++  register rD_type regD asm ("29");                                                         \
++  register rB_type regB asm ("28");                                                         \
++  struct test_data {                                                                        \
++    rD_type dval;                                                                           \
++    rB_type bval;                                                                           \
++  } tval[] = { tvals };                                                                     \
++  int i;                                                                                    \
++                                                                                            \
++  for (i = 0; i < NELTS(tval); i++) {                                                       \
++    regB = tval[i].bval;                                                                    \
++    asm volatile (#insn " %[d], %[b]" : [d] "=r" (regD) : [b] "r" (regB));                  \
++    if (generate_baseline)                                                                  \
++      printf (baseline_format, EXTRACTOR(regD));                                            \
++    else                                                                                    \
++      VERIFY(EXTRACTOR(regD) == EXTRACTOR(tval[i].dval), "i = %d\n", i);                    \
++  }                                                                                         \
++  return failures;                                                                          \
++}                                                                                           \
++TEST_SPE_DECL(insn##_asm, #insn);
++#else
++#define SPE_DEFN_rDrB(insn, rD_type, rB_type, generate_baseline, baseline_format, tvals...) \
++SPE_DEFN_DEFAULT(insn)                                                                      \
++TEST_SPE_DECL(insn##_asm, #insn);
++#endif // __SPE__
++
++#define SPE_DEFN_rDrA(insn, rD_type, rA_type, generate_baseline, baseline_format, tvals...) \
++        SPE_DEFN_rDrB(insn, rD_type, rA_type, generate_baseline, baseline_format, tvals)
++
++SPE_DEFN_crfDrArB(efdcmpeq, double, double,
++ { 0x1, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x1, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x1, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x1, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x1, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x1, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x1,  0.0, 0.0                          })
++
++SPE_DEFN_rDrArB(efdadd, double, double, double, 0, "%.20f\n",
++ { -2.00918516050100004477,    -0.01020304049999999976,    -1.99898212000100006236,    },
++ {  0.61200000000000009948,    -1.71799999999999997158,     2.33000000000000007105,    },
++ {  5.69600000000000061817,    -0.00200000000000000004,     5.69800000000000039790,    },
++ {  0.00400000000000000355,     2.30399999999999982592,     -2.29999999999999982236,   },
++ {  3.65899999999999980815,    -0.01899999999999999953,     3.67799999999999993605,    },
++ { -2125.99035221000031015137, -92.31222999999999956344,   -2033.67812221000008321425, },
++ {  0.42381700000000011030,     3.14304000000000005599,    -2.71922299999999994569,    },
++ {  31266.31910000000061700121, 31245.31899999999950523488, 21.00009999999999976694,   })
++
++SPE_DEFN_rDrArB(efdsub, double, double, double, 0, "%.20f\n",
++ {  1.98877907950100007994,    -0.01020304049999999976,     -1.99898212000100006236,    },
++ { -4.04800000000000004263,    -1.71799999999999997158,      2.33000000000000007105,    },
++ { -5.70000000000000017764,    -0.00200000000000000004,      5.69800000000000039790,    },
++ {  4.60399999999999920419,     2.30399999999999982592,     -2.29999999999999982236,    },
++ { -3.69700000000000006395,    -0.01899999999999999953,      3.67799999999999993605,    },
++ {  1941.36589221000008365081, -92.31222999999999956344,    -2033.67812221000008321425, },
++ {  5.86226300000000044577,     3.14304000000000005599,     -2.71922299999999994569,    },
++ {  31224.31889999999839346856, 31245.31899999999950523488,  21.00009999999999976694,   })
++
++SPE_DEFN_rDrA(efdabs, double, double, 0, "%.30e\n",
++ { 1.71,            -1.71            },
++ { 0.0,              0.0             },
++ { 2.3,              2.3             },
++ { 0.0000000000001, -0.0000000000001 })
++
++SPE_DEFN_rDrB(efdcfs, double, float, 0, "%.30e\n",
++ { 0.000000000000000000000000000000e+00,   0.000000000000000000000000000000e+00 },
++ { 1.000000000000000000000000000000e+00,   1.000000000000000000000000000000e+00 },
++ { 1.199999973177909851074218750000e-01,   1.199999973177909851074218750000e-01 },
++ { 9.999999776482582092285156250000e-03,   9.999999776482582092285156250000e-03 },
++ { 1.200000000000000000000000000000e+01,   1.200000000000000000000000000000e+01 },
++ { 1.000000000000000000000000000000e+02,   1.000000000000000000000000000000e+02 },
++ { 2.360000000000000000000000000000e+02,   2.360000000000000000000000000000e+02 },
++ { -1.000000000000000000000000000000e+00, -1.000000000000000000000000000000e+00 })
++
++SPE_DEFN_rDrB(efdcfsf, double, __ev64_u32__, 0, "%.30e\n",
++ { -2.500000000000000000000000000000e-01, { 0xe0000000, 0xe0000000 } }, // -(1/2^2)
++ { -6.250000000000000000000000000000e-02, { 0xf8000000, 0xf8000000 } }, // -(1/4^2)
++ { -1.562500000000000000000000000000e-02, { 0xfe000000, 0xfe000000 } }, // -(1/8^2)
++ { -3.906250000000000000000000000000e-03, { 0xff800000, 0xff800000 } }, // -(1/16^2)
++ { -1.220703125000000000000000000000e-03, { 0xffd80000, 0xffd80000 } }, // -(1/32^2)
++ { -2.441406250000000000000000000000e-04, { 0xfff80000, 0xfff80000 } }, // -(1/64^2)
++ { -6.103515625000000000000000000000e-05, { 0xfffe0000, 0xfffe0000 } }, // -(1/128^2)
++ { -1.525878906250000000000000000000e-05, { 0xffff8000, 0xffff8000 } }, // -(1/256^2)
++ { -4.768371582031250000000000000000e-06, { 0xffffd800, 0xffffd800 } }, // -(1/512^2)
++ { -9.536743164062500000000000000000e-07, { 0xfffff800, 0xfffff800 } }, // -(1/1024^2)
++ { -2.384185791015625000000000000000e-07, { 0xfffffe00, 0xfffffe00 } }, // -(1/2048^2)
++ { -5.960464477539062500000000000000e-08, { 0xffffff80, 0xffffff80 } }, // -(1/4096^2)
++ { -1.862645149230957031250000000000e-08, { 0xffffffd8, 0xffffffd8 } }, // -(1/8192^2)
++ { -3.725290298461914062500000000000e-09, { 0xfffffff8, 0xfffffff8 } }, // -(1/16284^2)
++ { -1.396983861923217773437500000000e-08, { 0xffffffe2, 0xffffffe2 } }) // -(1/32768^2)
++
++SPE_DEFN_rDrB(efdcfsi, double, __ev64_s32__, 0, "%.30e\n",
++ {  34.0 , { -1,   34  } },
++ { -179.0, {  2,  -179 } },
++ { -91.0,  { -11, -91  } },
++ {  1.0,   {  0,   1   } },
++ {  46.0,  {  32,  46  } },
++ {  0.0,   {  0,   0   } })
++
++#ifdef SPE64_AVAILABLE
++SPE_DEFN_rDrB(efdcfsid, double, __ev64_s32__, 0, "%.30e\n",
++ {  34.0 , (__ev64_s64__) {  34  } },
++ { -179.0, (__ev64_s64__) { -179 } },
++ { -91.0,  (__ev64_s64__) { -91  } },
++ {  1.0,   (__ev64_s64__) {  1   } },
++ {  46.0,  (__ev64_s64__) {  46  } },
++ {  0.0,   (__ev64_s64__) {  0   } },
++#endif
++
++SPE_DEFN_rDrB(efdcfuf, double, __ev64_u64__, 0, "%.30e\n",
++ { 2.500000000000000000000000000000e-01, powers_of_half[0]  },
++ { 1.250000000000000000000000000000e-01, powers_of_half[1]  },
++ { 6.250000000000000000000000000000e-02, powers_of_half[2]  },
++ { 3.125000000000000000000000000000e-02, powers_of_half[3]  },
++ { 1.562500000000000000000000000000e-02, powers_of_half[4]  },
++ { 7.812500000000000000000000000000e-03, powers_of_half[5]  },
++ { 3.906250000000000000000000000000e-03, powers_of_half[6]  },
++ { 1.953125000000000000000000000000e-03, powers_of_half[7]  },
++ { 9.765625000000000000000000000000e-04, powers_of_half[8]  },
++ { 4.882812500000000000000000000000e-04, powers_of_half[9]  },
++ { 2.441406250000000000000000000000e-04, powers_of_half[10] },
++ { 1.220703125000000000000000000000e-04, powers_of_half[11] },
++ { 6.103515625000000000000000000000e-05, powers_of_half[12] },
++ { 3.051757812500000000000000000000e-05, powers_of_half[13] },
++ { 1.525878906250000000000000000000e-05, powers_of_half[14] })
++
++SPE_DEFN_rDrB(efdcfui, double, __ev64_u32__, 0, "%.30e\n",
++ { 34.0,  { 1,  34  } },
++ { 179.0, { 2,  179 } },
++ { 91.0,  { 11, 91  } },
++ { 1.0,   { 0,  1   } },
++ { 46.0,  { 32, 46  } },
++ { 0.0,   { 0,  0   } })
++
++#ifdef SPE64_AVAILABLE
++SPE_DEFN_rDrB(efdcfuid, double, __ev64_u64__, 0, "%.30e\n",
++ { 34.0 , { 34  } },
++ { 179.0, { 179 } },
++ { 91.0,  { 91  } },
++ { 1.0,   { 1   } },
++ { 46.0,  { 46  } },
++ { 0.0,   { 0   } }),
++#endif
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -16426,6 +16703,60 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+   }
+ };
+ 
++test_t spe_isa_spe_fs_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Single Precision Scalar Floating Point Unit Tests",
++  .table = {
++    NULL
++  }
++};
++
++test_t spe_isa_spe_fv_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Single Precision Vector Floating Point Unit Tests",
++  .table = {
++    NULL
++  }
++};
++
++test_t spe_isa_spe_fd_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Double Precision Scalar Floating Point Unit Tests",
++  .table = {
++    F(efdcmpeq_asm),
++    F(efdabs_asm),
++    F(efdadd_asm),
++    F(efdsub_asm),
++    F(efdcfs_asm),
++    F(efdcfsf_asm),
++    F(efdcfsi_asm),
++#ifdef SPE64_AVAILABLE
++    F(efdcfsid_asm),
++#endif
++    F(efdcfuf_asm),
++    F(efdcfui_asm),
++#ifdef SPE64_AVAILABLE
++    F(efdcfuid_asm),
++#endif
++    NULL
++  }
++};
++
++test_t spe_isa_fp_test_table = {
++
++  .type = table,
++  .description = "SPE ISA Floating Point Unit Tests",
++  .table = {
++    &spe_isa_spe_fs_test_table,
++    &spe_isa_spe_fv_test_table,
++    &spe_isa_spe_fd_test_table,
++    NULL
++  }
++};
++
+ test_t spe_isa_insn_test_table = {
+ 
+   .type = table,
+@@ -16441,6 +16772,7 @@ test_t spe_isa_insn_test_table = {
+     &spe_isa_add_insns_test_table,
+     &spe_isa_ACC_based_multiply_insns_test_table,
+     &spe_isa_ACC_based_fractional_multiply_insns_test_table,
++    &spe_isa_fp_test_table,
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 0030d32..6058f24 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -5,6 +5,7 @@
+ #include <malloc.h>
+ #include <assert.h>
+ #include <stdbool.h>
++#include <math.h>
+ #ifdef __SPE__
+ #include <spe.h>
+ #endif
+@@ -83,11 +84,12 @@ static void report (test_t *test)
+   }
+ }
+ 
+-#define VERIFY(condition)                      \
++#define VERIFY(condition, state...)            \
+ {                                              \
+   if (!(condition)) {                          \
+     failures++;                                \
+     printf("Failure at line: %d\n", __LINE__); \
++    printf("State: " state);                   \
+   }                                            \
+ }
+ 
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index f520e54..d9c604f 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -2,18 +2,18 @@
+ Invalid write of size 4
+    at 0x........: vg_quick_start_guide_aux (test_spe.c:28)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16634)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:16966)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16634)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:16966)
+ 
+ 
+ HEAP SUMMARY:
+@@ -24,10 +24,10 @@ HEAP SUMMARY:
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+    by 0x........: vg_quick_start_guide (test_spe.c:34)
+-   by 0x........: run (test_spe.h:43)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: run (test_spe.h:49)
+-   by 0x........: main (test_spe.c:16634)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:16966)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 9ea6117..efdf0ca 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -165,6 +165,19 @@ SPE Regression Tests: PASS
+ ....evmhogsmian: PASS
+ ....evmhogumiaa: PASS
+ ....evmhogumian: PASS
++...SPE ISA Floating Point Unit Tests: PASS
++....SPE ISA Single Precision Scalar Floating Point Unit Tests: PASS
++....SPE ISA Single Precision Vector Floating Point Unit Tests: PASS
++....SPE ISA Double Precision Scalar Floating Point Unit Tests: PASS
++.....efdcmpeq: PASS
++.....efdabs: PASS
++.....efdadd: PASS
++.....efdsub: PASS
++.....efdcfs: PASS
++.....efdcfsf: PASS
++.....efdcfsi: PASS
++.....efdcfuf: PASS
++.....efdcfui: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 461f22e..4799852 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 78 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 80 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7110 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 15337 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  7669 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 22225 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2109,7 +2109,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12433 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  7143 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16942 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  6544 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  2095 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 13416 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2529,7 +2529,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  7450 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  6595 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index ea0edc2..46aea31 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 78 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 81 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 79 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 76 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 82 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 82 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 82 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  8454 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 18191 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  9018 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 18752 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 15170 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 25619 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2246,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 19728 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 22984 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2412,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  4905 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 14488 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2531,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 11233 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 11114 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0054-Implement-SPE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch b/recipes-devtools/valgrind/files/0054-Implement-SPE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch
new file mode 100644
index 0000000..3bf15f4
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0054-Implement-SPE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch
@@ -0,0 +1,1369 @@
+From 6c7aa6ef92c64cafd2d70b95aab27ff0f7bd99a8 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 25 Apr 2013 13:53:00 -0700
+Subject: [PATCH 54/65] Implement SPE Instructions: { efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsiz, efdctuf, efdctui, efdctuiz, efddiv, efdmul, efdnabs, efdneg, efdtsteq, efdtstgt, efdtstlt }.
+
+---
+ FSL-SPE-README.txt                       |   37 ++--
+ VEX/priv/guest_ppc_defs.h                |   15 ++
+ VEX/priv/guest_ppc_helpers.c             |   15 ++
+ VEX/priv/guest_ppc_toIR.c                |   76 ++++++
+ memcheck/tests/ppc32/test_spe.c          |  399 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   15 ++
+ regtest-power7-64.default-build.log      |   48 +---
+ regtest-power7-64.log                    |   48 +---
+ 9 files changed, 556 insertions(+), 103 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 02a37f4..a5a979c 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -76,7 +76,8 @@
+  New instructions implemented since last release:
+ 
+  mfspefscr, mtspefscr, efdcmpeq, efdabs, efdadd, efdsub, efdcfs, efdcfsf, efdcfsi,
+- efdcfuf, efdcfui,
++ efdcfuf, efdcfui, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsiz, efdctuf,
++ efdctui, efdctuiz, efddiv, efdmul, efdnabs, efdneg, efdtsteq, efdtstgt, efdtstlt,
+ 
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+@@ -88,26 +89,30 @@
+ 
+  Note: Non SPE instructions are indicated by suffixing them with a '?' sign.
+ 
+- eciwx?, ecowx?, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsidz,
+- efdctsiz, efdctuf, efdctui, efdctuidz, efdctuiz, efddiv, efdmul, efdnabs,
+- efdneg, efdtsteq, efdtstgt, efdtstlt, efsabs, efsadd, efscfd, efscfsf,
+- efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt, efscmplt, efsctsf, efsctsi,
+- efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul, efsnabs, efsneg, efssub,
+- efststeq, efststgt, efststlt, ehpriv?, eqv?, eqv.?, evfsabs, evfsadd,
+- evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt, evfscmplt,
+- evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
++ eciwx?, ecowx?,
++
++ efsabs, efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt,
++ efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
++ efsnabs, efsneg, efssub, efststeq, efststgt, efststlt,
++
++ ehpriv?, eqv?, eqv.?,
++
++ evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
++ evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+  evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+- evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw,
+- evmheusiaaw, evmheusianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
+- evmhossiaaw, evmhossianw, evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia,
+- evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlssiaaw, evmwlssianw,
+- evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
+- evsubfssiaaw, evsubfusiaaw, extsb?, extsb.?, extsh?, extsh.?
++
++ evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
++ evmheusinw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
++ evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia, evmwhssf, evmwhssfa, evmwhumi, evmwhumia,
++ evmwlssiaaw, evmwlssianw, evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa,
++ evmwssfan, evsubfssiaaw, evsubfusiaaw,
++
++ extsb?, extsb.?, extsh?, extsh.?
+ 
+  The following instructions may only be implemented for 64-bit implementations,
+  and are hence out of scope for this porting effort:
+ 
+- efdcfsid, efdcfuid,
++ efdcfsid, efdcfuid, efdctsidz, efdctuidz,
+ 
+  Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
+  ----------------------------------------------------------------------
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index cb79b14..a50ab77 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -309,6 +309,21 @@ SPE_DIRTY_HELPER_DECL_rDrB(efdcfsf);
+ SPE_DIRTY_HELPER_DECL_rDrB(efdcfsi);
+ SPE_DIRTY_HELPER_DECL_rDrB(efdcfuf);
+ SPE_DIRTY_HELPER_DECL_rDrB(efdcfui);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdcmpgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdcmplt);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctsf);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctsi);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctsiz);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctuf);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctui);
++SPE_DIRTY_HELPER_DECL_rDrB(efdctuiz);
++SPE_DIRTY_HELPER_DECL_rDrArB(efddiv);
++SPE_DIRTY_HELPER_DECL_rDrArB(efdmul);
++SPE_DIRTY_HELPER_DECL_rDrA(efdnabs);
++SPE_DIRTY_HELPER_DECL_rDrA(efdneg);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdtsteq);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdtstgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efdtstlt);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index a494653..49233e7 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1536,6 +1536,21 @@ SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf, double, __ev64_u32__)
+ SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi, double, __ev64_s32__)
+ SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf, double, __ev64_u64__)
+ SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui, double, __ev64_u32__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt, double, double)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf, __ev64_s32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi, __ev64_s32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz, __ev64_s32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf, __ev64_u32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctui, __ev64_u32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz, __ev64_u32__, double)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv, double, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul, double, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdneg, double, double)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq, double, double)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt, double, double)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt, double, double)
+ 
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 475a454..2182853 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -15226,6 +15226,31 @@ static Bool dis_spe_fd ( UInt theInstr )
+      // efdabs (Floating-Point Double-Precision Absolute Value, SPEPEM p5-17)
+      PREPARE_DIRTY_HELPER_CALL_rDrA(efdabs);
+   break;
++  case 0x2e5:
++     // efdnabs (Floating-Point Double-Precision Negate Absolute Value, SPEPEM p5-39)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efdnabs);
++  break;
++  case 0x2e6:
++     // efdneg (Floating-Point Double-Precision Negate, SPEPEM p5-40)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efdneg);
++  break;
++  case 0x2e8:
++     // efdmul (Floating-Point Double-Precision Multiply, SPEPEM p5-38)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efdmul);
++  break;
++  case 0x2e9:
++     // efddiv (Floating-Point Double-Precision Divide, SPEPEM p5-37)
++     // NB: The SPEPEM lists the secondary opcode as 0x2e8 - that is incorrect.
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efddiv);
++  break;
++  case 0x2ec:
++     // efdcmpgt (Floating-Point Double-Precision Compare Greater Than, SPEPEM p5-27)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdcmpgt);
++  break;
++  case 0x2ed:
++     // efdcmplt (Floating-Point Double-Precision Compare Less Than, SPEPEM p5-28)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdcmplt);
++  break;
+   case 0x2ee:
+      // efdcmpeq (Floating-Point Double-Precision Compare Equal, SPEPEM p5-26)
+      PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdcmpeq);
+@@ -15250,6 +15275,42 @@ static Bool dis_spe_fd ( UInt theInstr )
+      // efdcfsf (Convert Floating-Point Double-Precision from Signed Fraction, SPEPEM p5-20)
+      PREPARE_DIRTY_HELPER_CALL_rDrB(efdcfsf);
+   break;
++  case 0x2f4:
++     // efdctui (Convert Floating-Point Double-Precision to Unsigned Integer, SPEPEM p5-34)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctui);
++  break;
++  case 0x2f5:
++     // efdctsi (Convert Floating-Point Double-Precision to Signed Integer, SPEPEM p5-30)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctsi);
++  break;
++  case 0x2f6:
++     // efdctuf (Convert Floating-Point Double-Precision to Unsigned Fraction, SPEPEM p5-33)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctuf);
++  break;
++  case 0x2f7:
++     // efdctsf (Convert Floating-Point Double-Precision to Signed Fraction, SPEPEM p5-29)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctsf);
++  break;
++  case 0x2f8:
++     // efdctuiz (Convert Floating-Point Double-Precision to Unsigned Integer with Round toward Zero, SPEPEM p5-36)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctuiz);
++  break;
++  case 0x2fa:
++     // efdctsiz (Convert Floating-Point Double-Precision to Signed Integer with Round toward Zero, SPEPEM p5-32)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efdctsiz);
++  break;
++  case 0x2fc:
++     // efdtstgt (Floating-Point Double-Precision Test Greater Than, SPEPEM p5-43)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdtstgt);
++  break;
++  case 0x2fd:
++     // efdtstlt (Floating-Point Double-Precision Test Less Than, SPEPEM p5-44)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdtstlt);
++  break;
++  case 0x2fe:
++     // efdtsteq (Floating-Point Double-Precision Test Equal, SPEPEM p5-42)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efdtsteq);
++  break;
+   default:
+      return False;
+   }
+@@ -21240,12 +21301,27 @@ DisResult disInstr_PPC_WRK (
+       case 0x2e0: // efdadd
+       case 0x2e1: // efdsub
+       case 0x2e4: // efdabs
++      case 0x2e5: // efdnabs
++      case 0x2e6: // efdneg
++      case 0x2e8: // efdmul
++      case 0x2e9: // efddiv (NB: The SPEPEM lists the secondary opcode as 0x2e8 - that is incorrect).
++      case 0x2ec: // efdcmpgt
++      case 0x2ed: // efdcmplt
+       case 0x2ee: // efdcmpeq
+       case 0x2ef: // efdcfs
+       case 0x2f0: // efdcfui
+       case 0x2f1: // efdcfsi
+       case 0x2f2: // efdcfuf
+       case 0x2f3: // efdcfsf
++      case 0x2f4: // efdctui
++      case 0x2f5: // efdctsi
++      case 0x2f6: // efdctuf
++      case 0x2f7: // efdctsf
++      case 0x2f8: // efdctuiz
++      case 0x2fa: // efdctsiz
++      case 0x2fc: // efdtstgt
++      case 0x2fd: // efdtstlt
++      case 0x2fe: // efdtsteq
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_fd( theInstr )) goto decode_success;
+          goto decode_failure;
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index c31066a..2937cfb 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -16433,6 +16433,384 @@ SPE_DEFN_rDrB(efdcfuid, double, __ev64_u64__, 0, "%.30e\n",
+  { 0.0,   { 0   } }),
+ #endif
+ 
++SPE_DEFN_crfDrArB(efdcmpgt, double, double,
++ { 0x0, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x1, 1.71, 0.0000000000001              },
++ { 0x1, 1.71, -1.71                        },
++ { 0x1, 1.71, -2.3                         },
++ { 0x1, 1.71, -0.0000000000001             },
++ { 0x1, 1.71, 0.0                          },
++ { 0x1, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x1, 2.3, 0.0000000000001               },
++ { 0x1, 2.3, -1.71                         },
++ { 0x1, 2.3, -2.3                          },
++ { 0x1, 2.3, -0.0000000000001              },
++ { 0x1, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x1, 0.0000000000001, -1.71             },
++ { 0x1, 0.0000000000001, -2.3              },
++ { 0x1, 0.0000000000001, -0.0000000000001  },
++ { 0x1, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x1, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x1, -0.0000000000001, -1.71            },
++ { 0x1, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x1,  0.0, -1.71                        },
++ { 0x1,  0.0, -2.3                         },
++ { 0x1,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efdcmplt, double, double,
++ { 0x0, 1.71, 1.71                         },
++ { 0x1, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x1, 0.0000000000001, 1.71              },
++ { 0x1, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x1, -1.71, 1.71                        },
++ { 0x1, -1.71, 2.3                         },
++ { 0x1, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x1, -1.71, -0.0000000000001            },
++ { 0x1, -1.71, 0.0                         },
++ { 0x1, -2.3, 1.71                         },
++ { 0x1, -2.3, 2.3                          },
++ { 0x1, -2.3, 0.0000000000001              },
++ { 0x1, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x1, -2.3, -0.0000000000001             },
++ { 0x1, -2.3, 0.0                          },
++ { 0x1, -0.0000000000001, 1.71             },
++ { 0x1, -0.0000000000001, 2.3              },
++ { 0x1, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x1, -0.0000000000001, 0.0              },
++ { 0x1,  0.0, 1.71                         },
++ { 0x1,  0.0, 2.3                          },
++ { 0x1,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efdctsf, __ev64_s32__, double, 0, "0x%x\n",
++ { { 0x0, 0x0,       },  0.0      },
++ { { 0x0, 0x7fffffff },  1.0      },
++ { { 0x0, 0x40000000 },  0.5      },
++ { { 0x0, 0x20000000 },  0.25     },
++ { { 0x0, 0x10000000 },  0.125    },
++ { { 0x0, 0x8000000  },  0.0625   },
++ { { 0x0, 0x4000000  },  0.03125  },
++ { { 0x0, 0x2000000  },  0.015625 },
++ { { 0x0, 0xc0000000 }, -0.5      },
++ { { 0x0, 0xe0000000 }, -0.25     },
++ { { 0x0, 0xf0000000 }, -0.125    },
++ { { 0x0, 0xf8000000 }, -0.0625   },
++ { { 0x0, 0xfc000000 }, -0.03125  },
++ { { 0x0, 0xfe000000 }, -0.015625 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efdctsi, __ev64_s32__, double, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0, -1   }, -1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0, -3   }, -3.14  },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 },
++ { { 0x0, -121 }, -121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#ifdef SPE64_AVAILABLE
++SPE_DEFN_rDrB(efdctsidz, __ev64_opaque__, double, 0, "%d\n",)
++#endif
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efdctsiz, __ev64_s32__, double, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0, -1   }, -1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0, -3   }, -3.14  },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 },
++ { { 0x0, -121 }, -121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_u32
++SPE_DEFN_rDrB(efdctuf, __ev64_u32__, double, 0, "0x%x\n",
++ { { 0x0, 0x0        },  0.0      },
++ { { 0x0, 0xffffffff },  1.0      },
++ { { 0x0, 0x80000000 },  0.5      },
++ { { 0x0, 0x40000000 },  0.25     },
++ { { 0x0, 0x20000000 },  0.125    },
++ { { 0x0, 0x10000000 },  0.0625   },
++ { { 0x0, 0x8000000  },  0.03125  },
++ { { 0x0, 0x4000000  },  0.015625 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_u32
++SPE_DEFN_rDrB(efdctui, __ev64_u32__, double, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#ifdef SPE64_AVAILABLE
++SPE_DEFN_rDrB(efdctuidz, __ev64_opaque__, double, 0, "%d\n",)
++#endif
++#undef EXTRACTOR
++
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efdctuiz, __ev64_u32__, double, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++SPE_DEFN_rDrArB(efddiv, double, double, double, 0, "%.20f\n",
++ {  2.00000000000000000000,  3.2,  1.6 },
++ { -2.00000000000000000000, -3.2, +1.6 },
++ { -2.00000000000000000000, +3.2, -1.6 },
++ {  2.00000000000000000000, -3.2, -1.6 },
++ {  1.00000000000000000000, -3.2, -3.2 },
++ {  1.00000000000000000000, +1.6, +1.6 },
++ {  1.00000000000000000000, +3.2, +3.2 },
++ { -1.00000000000000000000, -1.6, +1.6 },
++ { -1.00000000000000000000, +1.6, -1.6 })
++
++SPE_DEFN_rDrArB(efdmul, double, double, double, 0, "%.20f\n",
++ {  1.00000000000000000000, 1.0,   1.0 },
++ {  0.00000000000000000000, 0.0,   0.0 },
++ {  0.00000000000000000000, 2.3,   0.0 },
++ { -0.00000000000000000000, 0.0, -10.9 },
++ {  2.39999999999999991118, 1.2,   2.0 },
++ {  1.96999999999999997335, 0.1,  19.7 })
++
++SPE_DEFN_rDrA(efdnabs, double, double, 0, "%.30e\n",
++ { -1.709999999999999964472863211995e+00, -1.71            },
++ { -0.000000000000000000000000000000e+00,  0.0             },
++ { -2.299999999999999822364316059975e+00,  2.3             },
++ { -1.000000000000000030373745563400e-13, -0.0000000000001 })
++
++SPE_DEFN_rDrA(efdneg, double, double, 0, "%.30e\n",
++ { +1.709999999999999964472863211995e+00, -1.71            },
++ { -0.000000000000000000000000000000e+00,  0.0             },
++ { -2.299999999999999822364316059975e+00,  2.3             },
++ { +1.000000000000000030373745563400e-13, -0.0000000000001 })
++
++SPE_DEFN_crfDrArB(efdtsteq, double, double,
++ { 0x1, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x1, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x1, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x1, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x1, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x1, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x1,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efdtstgt, double, double,
++ { 0x0, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x1, 1.71, 0.0000000000001              },
++ { 0x1, 1.71, -1.71                        },
++ { 0x1, 1.71, -2.3                         },
++ { 0x1, 1.71, -0.0000000000001             },
++ { 0x1, 1.71, 0.0                          },
++ { 0x1, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x1, 2.3, 0.0000000000001               },
++ { 0x1, 2.3, -1.71                         },
++ { 0x1, 2.3, -2.3                          },
++ { 0x1, 2.3, -0.0000000000001              },
++ { 0x1, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x1, 0.0000000000001, -1.71             },
++ { 0x1, 0.0000000000001, -2.3              },
++ { 0x1, 0.0000000000001, -0.0000000000001  },
++ { 0x1, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x1, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x1, -0.0000000000001, -1.71            },
++ { 0x1, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x1,  0.0, -1.71                        },
++ { 0x1,  0.0, -2.3                         },
++ { 0x1,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efdtstlt, double, double,
++ { 0x0, 1.71, 1.71                         },
++ { 0x1, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x1, 0.0000000000001, 1.71              },
++ { 0x1, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x1, -1.71, 1.71                        },
++ { 0x1, -1.71, 2.3                         },
++ { 0x1, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x1, -1.71, -0.0000000000001            },
++ { 0x1, -1.71, 0.0                         },
++ { 0x1, -2.3, 1.71                         },
++ { 0x1, -2.3, 2.3                          },
++ { 0x1, -2.3, 0.0000000000001              },
++ { 0x1, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x1, -2.3, -0.0000000000001             },
++ { 0x1, -2.3, 0.0                          },
++ { 0x1, -0.0000000000001, 1.71             },
++ { 0x1, -0.0000000000001, 2.3              },
++ { 0x1, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x1, -0.0000000000001, 0.0              },
++ { 0x1,  0.0, 1.71                         },
++ { 0x1,  0.0, 2.3                          },
++ { 0x1,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -16741,6 +17119,27 @@ test_t spe_isa_spe_fd_test_table = {
+ #ifdef SPE64_AVAILABLE
+     F(efdcfuid_asm),
+ #endif
++    F(efdcmpgt_asm),
++    F(efdcmplt_asm),
++    F(efdctsf_asm),
++    F(efdctsi_asm),
++#ifdef SPE64_AVAILABLE
++    F(efdctsidz_asm),
++#endif
++    F(efdctsiz_asm),
++    F(efdctuf_asm),
++    F(efdctui_asm),
++#ifdef SPE64_AVAILABLE
++    F(efdctuidz_asm),
++#endif
++    F(efdctuiz_asm),
++    F(efddiv_asm),
++    F(efdmul_asm),
++    F(efdnabs_asm),
++    F(efdneg_asm),
++    F(efdtsteq_asm),
++    F(efdtstgt_asm),
++    F(efdtstlt_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index d9c604f..c6f4443 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:16966)
++   by 0x........: main (test_spe.c:17365)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:16966)
++   by 0x........: main (test_spe.c:17365)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:16966)
++   by 0x........: main (test_spe.c:17365)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index efdf0ca..16c1639 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -178,6 +178,21 @@ SPE Regression Tests: PASS
+ .....efdcfsi: PASS
+ .....efdcfuf: PASS
+ .....efdcfui: PASS
++.....efdcmpgt: PASS
++.....efdcmplt: PASS
++.....efdctsf: PASS
++.....efdctsi: PASS
++.....efdctsiz: PASS
++.....efdctuf: PASS
++.....efdctui: PASS
++.....efdctuiz: PASS
++.....efddiv: PASS
++.....efdmul: PASS
++.....efdnabs: PASS
++.....efdneg: PASS
++.....efdtsteq: PASS
++.....efdtstgt: PASS
++.....efdtstlt: PASS
+ ..SPE2PIM Tests: PASS
+ ...Chapter 2: High-Level Language Interface: PASS
+ ...Chapter 5: Programming Interface Examples: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 4799852..824f84a 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,14 +461,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 71 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ Making check in ppc32
+@@ -484,14 +482,12 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ Making check in ppc64
+@@ -504,14 +500,12 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ Making check in linux
+@@ -551,14 +545,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+@@ -605,14 +597,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+@@ -656,14 +646,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+@@ -764,14 +752,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+@@ -1066,14 +1052,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ Making check in ppc32
+@@ -1158,14 +1142,12 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ Making check in ppc64
+@@ -1226,14 +1208,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 78 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ Making check in linux
+@@ -1255,14 +1235,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+@@ -1418,14 +1396,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+@@ -1628,14 +1604,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+@@ -1689,14 +1663,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+@@ -1759,14 +1731,12 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+@@ -1819,14 +1789,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ Making check in perf
+@@ -1863,14 +1831,12 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ Making check in gdbserver_tests
+@@ -1901,14 +1867,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ Making check in auxprogs
+@@ -1980,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 15337 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 27069 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 22225 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:   662 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2109,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  7143 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  6161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  6544 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 19845 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 13416 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 19962 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2529,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  6595 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 31645 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 46aea31..6094e4f 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,14 +461,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 76 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ Making check in ppc32
+@@ -484,14 +482,12 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ Making check in ppc64
+@@ -504,14 +500,12 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ Making check in linux
+@@ -551,14 +545,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+@@ -605,14 +597,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+@@ -656,14 +646,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+@@ -764,14 +752,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+@@ -1066,14 +1052,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ Making check in ppc32
+@@ -1158,14 +1142,12 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ Making check in ppc64
+@@ -1226,14 +1208,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 70 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ Making check in linux
+@@ -1255,14 +1235,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+@@ -1418,14 +1396,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+@@ -1628,14 +1604,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 75 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+@@ -1689,14 +1663,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+@@ -1759,14 +1731,12 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+@@ -1819,14 +1789,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ Making check in perf
+@@ -1863,14 +1831,12 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ Making check in gdbserver_tests
+@@ -1901,14 +1867,12 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ Making check in auxprogs
+@@ -1980,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 18191 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7713 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 18752 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 30105 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 25619 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 15821 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2246,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 22984 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 24155 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2412,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 14488 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 13361 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2531,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 11114 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  3992 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0055-Implement-SPE-Instructions.patch b/recipes-devtools/valgrind/files/0055-Implement-SPE-Instructions.patch
new file mode 100644
index 0000000..f3d9d55
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0055-Implement-SPE-Instructions.patch
@@ -0,0 +1,1083 @@
+From 06b14939d365572c6e1b82ed18183b6773fafb58 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 26 Apr 2013 20:18:28 -0700
+Subject: [PATCH 55/65] Implement SPE Instructions: {
+
+ efsabs, efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt,
+ efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
+ efsnabs, efsneg, efssub, efststeq, efststgt, efststlt
+
+}.
+---
+ FSL-SPE-README.txt                       |    8 +-
+ VEX/priv/guest_ppc_defs.h                |   24 ++
+ VEX/priv/guest_ppc_helpers.c             |   72 +++--
+ VEX/priv/guest_ppc_toIR.c                |  144 ++++++++-
+ memcheck/tests/ppc32/test_spe.c          |  532 ++++++++++++++++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   24 ++
+ regtest-power7-64.default-build.log      |   12 +-
+ regtest-power7-64.log                    |   12 +-
+ 9 files changed, 782 insertions(+), 52 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index a5a979c..ff8ce16 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -79,6 +79,10 @@
+  efdcfuf, efdcfui, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsiz, efdctuf,
+  efdctui, efdctuiz, efddiv, efdmul, efdnabs, efdneg, efdtsteq, efdtstgt, efdtstlt,
+ 
++ efsabs, efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt,
++ efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
++ efsnabs, efsneg, efssub, efststeq, efststgt, efststlt,
++
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+@@ -91,10 +95,6 @@
+ 
+  eciwx?, ecowx?,
+ 
+- efsabs, efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt,
+- efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
+- efsnabs, efsneg, efssub, efststeq, efststgt, efststlt,
+-
+  ehpriv?, eqv?, eqv.?,
+ 
+  evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index a50ab77..1f0828a 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -324,6 +324,30 @@ SPE_DIRTY_HELPER_DECL_rDrA(efdneg);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efdtsteq);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efdtstgt);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efdtstlt);
++SPE_DIRTY_HELPER_DECL_rDrA(efsabs);
++SPE_DIRTY_HELPER_DECL_rDrArB(efsadd);
++SPE_DIRTY_HELPER_DECL_rDrB(efscfd);
++SPE_DIRTY_HELPER_DECL_rDrB(efscfsf);
++SPE_DIRTY_HELPER_DECL_rDrB(efscfsi);
++SPE_DIRTY_HELPER_DECL_rDrB(efscfuf);
++SPE_DIRTY_HELPER_DECL_rDrB(efscfui);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efscmpeq);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efscmpgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efscmplt);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctsf);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctsi);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctsiz);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctuf);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctui);
++SPE_DIRTY_HELPER_DECL_rDrB(efsctuiz);
++SPE_DIRTY_HELPER_DECL_rDrArB(efsdiv);
++SPE_DIRTY_HELPER_DECL_rDrArB(efsmul);
++SPE_DIRTY_HELPER_DECL_rDrA(efsnabs);
++SPE_DIRTY_HELPER_DECL_rDrA(efsneg);
++SPE_DIRTY_HELPER_DECL_rDrArB(efssub);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efststeq);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efststgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(efststlt);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 49233e7..3fd9f3e 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1527,30 +1527,54 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off
+ #define SPE_DIRTY_HELPER_DEFN_rDrA(insn, rD_type, rA_type) \
+         SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rA_type)
+ 
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdabs, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd, double, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub, double, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf, double, __ev64_u32__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi, double, __ev64_s32__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf, double, __ev64_u64__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui, double, __ev64_u32__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt, double, double)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf, __ev64_s32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi, __ev64_s32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz, __ev64_s32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf, __ev64_u32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctui, __ev64_u32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz, __ev64_u32__, double)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv, double, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul, double, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs, double, double)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdneg, double, double)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq, double, double)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt, double, double)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt, double, double)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdabs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctui,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdneg,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsabs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfd,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfui,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpeq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmplt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctui,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsdiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsnabs,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsneg,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efssub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststeq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststlt, __ev64_opaque__, __ev64_opaque__)
+ 
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 2182853..a09e6c3 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -15112,7 +15112,7 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+                             "spe_dirtyhelper_" #insn,         \
+                             &spe_dirtyhelper_##insn,          \
+                             args);                            \
+-     DIP( "efdabs r%d, r%d\n", rD_addr, rA_addr );            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
+      /* declare guest state effects */                        \
+      d->needsBBP = True;                                      \
+      d->nFxState = 2;                                         \
+@@ -15130,27 +15130,126 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+ static Bool dis_spe_fs ( UInt theInstr )
+ {
+   /* EVX-Form */
+-  UChar opc1    = evxOpcode( theInstr );
+-  UInt  opc2    = evxXO( theInstr );
+-  UChar rD_addr = evxRD( theInstr );
+-  UChar rA_addr = evxRA( theInstr );
+-  UChar rB_addr = evxRB( theInstr );
+-  UChar uimm    = evxRB( theInstr );
+-  Char  simm    = evxRA( theInstr );
++  UChar opc1     = evxOpcode( theInstr );
++  UInt  opc2     = evxXO( theInstr );
++  UChar CR_field = evxBF( theInstr );
++  UChar rD_addr  = evxRD( theInstr );
++  UChar rA_addr  = evxRA( theInstr );
++  UChar rB_addr  = evxRB( theInstr );
++  UChar uimm     = evxRB( theInstr );
++  Char  simm     = evxRA( theInstr );
+ 
+   UInt ACC_off = speACCRegOffset( );
+   UInt rD_off  = speGuestRegOffset( rD_addr );
+   UInt rA_off  = speGuestRegOffset( rA_addr );
+   UInt rB_off  = speGuestRegOffset( rB_addr );
++  UInt CRf_off;
+ 
+   IRDirty* d;
+   IRExpr** args;
++  IRTemp   val = newTemp(Ity_I32);
+ 
+   if (opc1 != 0x4) {
+-     vex_printf( "dis_spe_fs (ppc)(opc1 != 0x4)\n" );
++     vex_printf( "dis_spe_fd (ppc)(opc1 != 0x4)\n" );
+      return False;
+   }
+   switch (opc2) {
++  case 0x2c0:
++     // efsadd (Floating-Point Add, SPEPEM p5-46)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efsadd);
++  break;
++  case 0x2c1:
++     // efssub (Floating-Point Subtract, SPEPEM p5-64)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efssub);
++  break;
++  case 0x2c4:
++     // efsabs (Floating-Point Absolute Value, SPEPEM p5-45)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efsabs);
++  break;
++  case 0x2c5:
++     // efsnabs (Floating-Point Negate Absolute Value, SPEPEM p5-62)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efsnabs);
++  break;
++  case 0x2c6:
++     // efsneg (Floating-Point Negate, SPEPEM p5-63)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(efsneg);
++  break;
++  case 0x2c8:
++     // efsmul (Floating-Point Multiply, SPEPEM p5-61)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efsmul);
++  break;
++  case 0x2c9:
++     // efsdiv (Floating-Point Divide, SPEPEM p5-60)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(efsdiv);
++  break;
++  case 0x2cc:
++     // efscmpgt (Floating-Point Compare Greater Than, SPEPEM p5-52)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efscmpgt);
++  break;
++  case 0x2cd:
++     // efscmplt (Floating-Point Compare Less Than, SPEPEM p5-53)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efscmplt);
++  break;
++  case 0x2ce:
++     // efscmpeq (Floating-Point Compare Equal, SPEPEM p5-51)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efscmpeq);
++  break;
++  case 0x2cf:
++     // efscfd (Floating-Point Convert from Double-Precision, SPEPEM p5-?)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efscfd);
++  break;
++  case 0x2d0:
++     // efscfui (Convert Floating-Point from Unsigned Integer, SPEPEM p5-50)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efscfui);
++  break;
++  case 0x2d1:
++      // efscfsi (Convert Floating-Point from Signed Integer, SPEPEM p5-48)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efscfsi);
++  break;
++  case 0x2d2:
++     // efscfuf (Convert Floating-Point from Unsigned Fraction, SPEPEM p5-49)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efscfuf);
++  break;
++  case 0x2d3:
++     // efscfsf (Convert Floating-Point from Signed Fraction, SPEPEM p5-47)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efscfsf);
++  break;
++  case 0x2d4:
++     // efsctui (Convert Floating-Point to Unsigned Integer, SPEPEM p5-58)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctui);
++  break;
++  case 0x2d5:
++     // efsctsi (Convert Floating-Point to Signed Integer, SPEPEM p5-55)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctsi);
++  break;
++  case 0x2d6:
++     // efsctuf (Convert Floating-Point to Unsigned Fraction, SPEPEM p5-57)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctuf);
++  break;
++  case 0x2d7:
++     // efsctsf (Convert Floating-Point to Signed Fraction, SPEPEM p5-54)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctsf);
++  break;
++  case 0x2d8:
++     // efsctuiz (Convert Floating-Point to Unsigned Integer with Round toward Zero, SPEPEM p5-59)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctuiz);
++  break;
++  case 0x2da:
++     // efsctsiz (Convert Floating-Point to Signed Integer with Round toward Zero, SPEPEM p5-56)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(efsctsiz);
++  break;
++  case 0x2dc:
++     // efststgt (Floating-Point Test Greater Than, SPEPEM p5-66)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efststgt);
++  break;
++  case 0x2dd:
++     // efststlt (Floating-Point Test Less Than, SPEPEM p5-67)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efststlt);
++  break;
++  case 0x2de:
++     // efststeq (Floating-Point Test Equal, SPEPEM p5-65)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(efststeq);
++  break;
+   default:
+      return False;
+   }
+@@ -21298,6 +21397,33 @@ DisResult disInstr_PPC_WRK (
+ #ifdef __SPE__
+       opc2 = IFIELD(theInstr, 0, 11);
+       switch (opc2) {
++      case 0x2c0: // efsadd
++      case 0x2c1: // efssub
++      case 0x2c4: // efsabs
++      case 0x2c5: // efsnabs
++      case 0x2c6: // efsneg
++      case 0x2c8: // efsmul
++      case 0x2c9: // efsdiv
++      case 0x2cc: // efscmpgt
++      case 0x2cd: // efscmplt
++      case 0x2ce: // efscmpeq
++      case 0x2cf: // efscfs
++      case 0x2d0: // efscfui
++      case 0x2d1: // efscfsi
++      case 0x2d2: // efscfuf
++      case 0x2d3: // efscfsf
++      case 0x2d4: // efsctui
++      case 0x2d5: // efsctsi
++      case 0x2d6: // efsctuf
++      case 0x2d7: // efsctsf
++      case 0x2d8: // efsctuiz
++      case 0x2da: // efsctsiz
++      case 0x2dc: // efststgt
++      case 0x2dd: // efststlt
++      case 0x2de: // efststeq
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_fs( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x2e0: // efdadd
+       case 0x2e1: // efdsub
+       case 0x2e4: // efdabs
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 2937cfb..6227996 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -16811,6 +16811,514 @@ SPE_DEFN_crfDrArB(efdtstlt, double, double,
+  { 0x0,  0.0, -0.0000000000001             },
+  { 0x0,  0.0, 0.0                          })
+ 
++SPE_DEFN_rDrA(efsabs, float, float, 0, "%.30e\n",
++ { 1.71,            -1.71            },
++ { 0.0,              0.0             },
++ { 2.3,              2.3             },
++ { 0.0000000000001, -0.0000000000001 })
++
++SPE_DEFN_rDrArB(efsadd, float, float, float, 0, "%.20f\n",
++ { -2.00918507575988769531,    -0.01020304049999999976,    -1.99898212000100006236,    },
++ { 0.61199986934661865234,     -1.71799999999999997158,     2.33000000000000007105,    },
++ { 5.69600009918212890625,     -0.00200000000000000004,     5.69800000000000039790,    },
++ { 0.00399994850158691406,      2.30399999999999982592,     -2.29999999999999982236,   },
++ { 3.65899991989135742188,     -0.01899999999999999953,     3.67799999999999993605,    },
++ { -2125.99023437500000000000, -92.31222999999999956344,   -2033.67812221000008321425, },
++ { 0.42381691932678222656,      3.14304000000000005599,    -2.71922299999999994569,    },
++ { 31266.31835937500000000000,  31245.31899999999950523488, 21.00009999999999976694,   })
++
++// Note: The SPEPEM mentions efscfd, but does not explicitly describe it.
++SPE_DEFN_rDrB(efscfd, float, double, 0, "%.30e\n",
++ { 0.000000000000000000000000000000e+00,   0.000000000000000000000000000000e+00 },
++ { 1.000000000000000000000000000000e+00,   1.000000000000000000000000000000e+00 },
++ { 1.199999973177909851074218750000e-01,   1.199999973177909851074218750000e-01 },
++ { 9.999999776482582092285156250000e-03,   9.999999776482582092285156250000e-03 },
++ { 1.200000000000000000000000000000e+01,   1.200000000000000000000000000000e+01 },
++ { 1.000000000000000000000000000000e+02,   1.000000000000000000000000000000e+02 },
++ { 2.360000000000000000000000000000e+02,   2.360000000000000000000000000000e+02 },
++ { -1.000000000000000000000000000000e+00, -1.000000000000000000000000000000e+00 })
++
++SPE_DEFN_rDrB(efscfsf, float, __ev64_u32__, 0, "%.30e\n",
++ { -2.500000000000000000000000000000e-01, { 0xe0000000, 0xe0000000 } }, // -(1/2^2)
++ { -6.250000000000000000000000000000e-02, { 0xf8000000, 0xf8000000 } }, // -(1/4^2)
++ { -1.562500000000000000000000000000e-02, { 0xfe000000, 0xfe000000 } }, // -(1/8^2)
++ { -3.906250000000000000000000000000e-03, { 0xff800000, 0xff800000 } }, // -(1/16^2)
++ { -1.220703125000000000000000000000e-03, { 0xffd80000, 0xffd80000 } }, // -(1/32^2)
++ { -2.441406250000000000000000000000e-04, { 0xfff80000, 0xfff80000 } }, // -(1/64^2)
++ { -6.103515625000000000000000000000e-05, { 0xfffe0000, 0xfffe0000 } }, // -(1/128^2)
++ { -1.525878906250000000000000000000e-05, { 0xffff8000, 0xffff8000 } }, // -(1/256^2)
++ { -4.768371582031250000000000000000e-06, { 0xffffd800, 0xffffd800 } }, // -(1/512^2)
++ { -9.536743164062500000000000000000e-07, { 0xfffff800, 0xfffff800 } }, // -(1/1024^2)
++ { -2.384185791015625000000000000000e-07, { 0xfffffe00, 0xfffffe00 } }, // -(1/2048^2)
++ { -5.960464477539062500000000000000e-08, { 0xffffff80, 0xffffff80 } }, // -(1/4096^2)
++ { -1.862645149230957031250000000000e-08, { 0xffffffd8, 0xffffffd8 } }, // -(1/8192^2)
++ { -3.725290298461914062500000000000e-09, { 0xfffffff8, 0xfffffff8 } }, // -(1/16284^2)
++ { -1.396983861923217773437500000000e-08, { 0xffffffe2, 0xffffffe2 } }) // -(1/32768^2)
++
++SPE_DEFN_rDrB(efscfsi, float, __ev64_s32__, 0, "%.30e\n",
++ {  34.0 , { -1,   34  } },
++ { -179.0, {  2,  -179 } },
++ { -91.0,  { -11, -91  } },
++ {  1.0,   {  0,   1   } },
++ {  46.0,  {  32,  46  } },
++ {  0.0,   {  0,   0   } })
++
++SPE_DEFN_rDrB(efscfuf, float, __ev64_u64__, 0, "%.30e\n",
++ { 2.500000000000000000000000000000e-01, powers_of_half[0]  },
++ { 1.250000000000000000000000000000e-01, powers_of_half[1]  },
++ { 6.250000000000000000000000000000e-02, powers_of_half[2]  },
++ { 3.125000000000000000000000000000e-02, powers_of_half[3]  },
++ { 1.562500000000000000000000000000e-02, powers_of_half[4]  },
++ { 7.812500000000000000000000000000e-03, powers_of_half[5]  },
++ { 3.906250000000000000000000000000e-03, powers_of_half[6]  },
++ { 1.953125000000000000000000000000e-03, powers_of_half[7]  },
++ { 9.765625000000000000000000000000e-04, powers_of_half[8]  },
++ { 4.882812500000000000000000000000e-04, powers_of_half[9]  },
++ { 2.441406250000000000000000000000e-04, powers_of_half[10] },
++ { 1.220703125000000000000000000000e-04, powers_of_half[11] },
++ { 6.103515625000000000000000000000e-05, powers_of_half[12] },
++ { 3.051757812500000000000000000000e-05, powers_of_half[13] },
++ { 1.525878906250000000000000000000e-05, powers_of_half[14] })
++
++SPE_DEFN_rDrB(efscfui, float, __ev64_u32__, 0, "%.30e\n",
++ { 34.0,  { 1,  34  } },
++ { 179.0, { 2,  179 } },
++ { 91.0,  { 11, 91  } },
++ { 1.0,   { 0,  1   } },
++ { 46.0,  { 32, 46  } },
++ { 0.0,   { 0,  0   } })
++
++SPE_DEFN_crfDrArB(efscmpeq, float, float,
++ { 0x1, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x1, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x1, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x1, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x1, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x1, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x1,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efscmpgt, float, float,
++ { 0x0, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x1, 1.71, 0.0000000000001              },
++ { 0x1, 1.71, -1.71                        },
++ { 0x1, 1.71, -2.3                         },
++ { 0x1, 1.71, -0.0000000000001             },
++ { 0x1, 1.71, 0.0                          },
++ { 0x1, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x1, 2.3, 0.0000000000001               },
++ { 0x1, 2.3, -1.71                         },
++ { 0x1, 2.3, -2.3                          },
++ { 0x1, 2.3, -0.0000000000001              },
++ { 0x1, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x1, 0.0000000000001, -1.71             },
++ { 0x1, 0.0000000000001, -2.3              },
++ { 0x1, 0.0000000000001, -0.0000000000001  },
++ { 0x1, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x1, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x1, -0.0000000000001, -1.71            },
++ { 0x1, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x1,  0.0, -1.71                        },
++ { 0x1,  0.0, -2.3                         },
++ { 0x1,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efscmplt, float, float,
++ { 0x0, 1.71, 1.71                         },
++ { 0x1, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x1, 0.0000000000001, 1.71              },
++ { 0x1, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x1, -1.71, 1.71                        },
++ { 0x1, -1.71, 2.3                         },
++ { 0x1, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x1, -1.71, -0.0000000000001            },
++ { 0x1, -1.71, 0.0                         },
++ { 0x1, -2.3, 1.71                         },
++ { 0x1, -2.3, 2.3                          },
++ { 0x1, -2.3, 0.0000000000001              },
++ { 0x1, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x1, -2.3, -0.0000000000001             },
++ { 0x1, -2.3, 0.0                          },
++ { 0x1, -0.0000000000001, 1.71             },
++ { 0x1, -0.0000000000001, 2.3              },
++ { 0x1, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x1, -0.0000000000001, 0.0              },
++ { 0x1,  0.0, 1.71                         },
++ { 0x1,  0.0, 2.3                          },
++ { 0x1,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efsctsf, __ev64_s32__, float, 0, "0x%x\n",
++ { { 0x0, 0x0,       },  0.0      },
++ { { 0x0, 0x7fffffff },  1.0      },
++ { { 0x0, 0x40000000 },  0.5      },
++ { { 0x0, 0x20000000 },  0.25     },
++ { { 0x0, 0x10000000 },  0.125    },
++ { { 0x0, 0x8000000  },  0.0625   },
++ { { 0x0, 0x4000000  },  0.03125  },
++ { { 0x0, 0x2000000  },  0.015625 },
++ { { 0x0, 0xc0000000 }, -0.5      },
++ { { 0x0, 0xe0000000 }, -0.25     },
++ { { 0x0, 0xf0000000 }, -0.125    },
++ { { 0x0, 0xf8000000 }, -0.0625   },
++ { { 0x0, 0xfc000000 }, -0.03125  },
++ { { 0x0, 0xfe000000 }, -0.015625 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efsctsi, __ev64_s32__, float, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0, -1   }, -1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0, -3   }, -3.14  },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 },
++ { { 0x0, -121 }, -121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efsctsiz, __ev64_s32__, float, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0, -1   }, -1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0, -3   }, -3.14  },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 },
++ { { 0x0, -121 }, -121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_u32
++SPE_DEFN_rDrB(efsctuf, __ev64_u32__, float, 0, "0x%x\n",
++ { { 0x0, 0x0        },  0.0      },
++ { { 0x0, 0xffffffff },  1.0      },
++ { { 0x0, 0x80000000 },  0.5      },
++ { { 0x0, 0x40000000 },  0.25     },
++ { { 0x0, 0x20000000 },  0.125    },
++ { { 0x0, 0x10000000 },  0.0625   },
++ { { 0x0, 0x8000000  },  0.03125  },
++ { { 0x0, 0x4000000  },  0.015625 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_u32
++SPE_DEFN_rDrB(efsctui, __ev64_u32__, float, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_get_lower_s32
++SPE_DEFN_rDrB(efsctuiz, __ev64_u32__, float, 0, "%d\n",
++ { { 0x0,  0   },  0.0   },
++ { { 0x0,  1   },  1.0   },
++ { { 0x0,  2   },  2.1   },
++ { { 0x0,  3   }, +3.14  },
++ { { 0x0,  121 },  121.0 })
++#undef EXTRACTOR
++#define EXTRACTOR
++
++SPE_DEFN_rDrArB(efsdiv, float, float, float, 0, "%.20f\n",
++ {  2.00000000000000000000,  3.2,  1.6 },
++ { -2.00000000000000000000, -3.2, +1.6 },
++ { -2.00000000000000000000, +3.2, -1.6 },
++ {  2.00000000000000000000, -3.2, -1.6 },
++ {  1.00000000000000000000, -3.2, -3.2 },
++ {  1.00000000000000000000, +1.6, +1.6 },
++ {  1.00000000000000000000, +3.2, +3.2 },
++ { -1.00000000000000000000, -1.6, +1.6 },
++ { -1.00000000000000000000, +1.6, -1.6 })
++
++SPE_DEFN_rDrArB(efsmul, float, float, float, 0, "%.20f\n",
++ {  1.00000000000000000000, 1.0,   1.0 },
++ {  0.00000000000000000000, 0.0,   0.0 },
++ {  0.00000000000000000000, 2.3,   0.0 },
++ { -0.00000000000000000000, 0.0, -10.9 },
++ {  2.40000009536743164062, 1.2,   2.0 },
++ {  1.97000014781951904297, 0.1,  19.7 })
++
++SPE_DEFN_rDrA(efsnabs, float, float, 0, "%.30e\n",
++ { -1.709999999999999964472863211995e+00, -1.71            },
++ { -0.000000000000000000000000000000e+00,  0.0             },
++ { -2.299999999999999822364316059975e+00,  2.3             },
++ { -1.000000000000000030373745563400e-13, -0.0000000000001 })
++
++SPE_DEFN_rDrA(efsneg, float, float, 0, "%.30e\n",
++ { +1.709999999999999964472863211995e+00, -1.71            },
++ { -0.000000000000000000000000000000e+00,  0.0             },
++ { -2.299999999999999822364316059975e+00,  2.3             },
++ { +1.000000000000000030373745563400e-13, -0.0000000000001 })
++
++SPE_DEFN_rDrArB(efssub, float, float, float, 0, "%.20f\n",
++ { 1.98877906799316406250,     -0.01020304049999999976,     -1.99898212000100006236,    },
++ { -4.04799985885620117188,    -1.71799999999999997158,      2.33000000000000007105,    },
++ { -5.69999980926513671875,    -0.00200000000000000004,      5.69800000000000039790,    },
++ { 4.60400009155273437500,      2.30399999999999982592,     -2.29999999999999982236,    },
++ { -3.69700002670288085938,    -0.01899999999999999953,      3.67799999999999993605,    },
++ { 1941.36584472656250000000,  -92.31222999999999956344,    -2033.67812221000008321425, },
++ { 5.86226272583007812500,      3.14304000000000005599,     -2.71922299999999994569,    },
++ { 31224.31835937500000000000,  31245.31899999999950523488,  21.00009999999999976694,   })
++
++SPE_DEFN_crfDrArB(efststeq, float, float,
++ { 0x1, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x1, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x1, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x1, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x1, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x1, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x1,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efststgt, float, float,
++ { 0x0, 1.71, 1.71                         },
++ { 0x0, 1.71, 2.3                          },
++ { 0x1, 1.71, 0.0000000000001              },
++ { 0x1, 1.71, -1.71                        },
++ { 0x1, 1.71, -2.3                         },
++ { 0x1, 1.71, -0.0000000000001             },
++ { 0x1, 1.71, 0.0                          },
++ { 0x1, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x1, 2.3, 0.0000000000001               },
++ { 0x1, 2.3, -1.71                         },
++ { 0x1, 2.3, -2.3                          },
++ { 0x1, 2.3, -0.0000000000001              },
++ { 0x1, 2.3, 0.0                           },
++ { 0x0, 0.0000000000001, 1.71              },
++ { 0x0, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x1, 0.0000000000001, -1.71             },
++ { 0x1, 0.0000000000001, -2.3              },
++ { 0x1, 0.0000000000001, -0.0000000000001  },
++ { 0x1, 0.0000000000001, 0.0               },
++ { 0x0, -1.71, 1.71                        },
++ { 0x0, -1.71, 2.3                         },
++ { 0x0, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x1, -1.71, -2.3                        },
++ { 0x0, -1.71, -0.0000000000001            },
++ { 0x0, -1.71, 0.0                         },
++ { 0x0, -2.3, 1.71                         },
++ { 0x0, -2.3, 2.3                          },
++ { 0x0, -2.3, 0.0000000000001              },
++ { 0x0, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x0, -2.3, -0.0000000000001             },
++ { 0x0, -2.3, 0.0                          },
++ { 0x0, -0.0000000000001, 1.71             },
++ { 0x0, -0.0000000000001, 2.3              },
++ { 0x0, -0.0000000000001, 0.0000000000001  },
++ { 0x1, -0.0000000000001, -1.71            },
++ { 0x1, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x0, -0.0000000000001, 0.0              },
++ { 0x0,  0.0, 1.71                         },
++ { 0x0,  0.0, 2.3                          },
++ { 0x0,  0.0, 0.0000000000001              },
++ { 0x1,  0.0, -1.71                        },
++ { 0x1,  0.0, -2.3                         },
++ { 0x1,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
++SPE_DEFN_crfDrArB(efststlt, float, float,
++ { 0x0, 1.71, 1.71                         },
++ { 0x1, 1.71, 2.3                          },
++ { 0x0, 1.71, 0.0000000000001              },
++ { 0x0, 1.71, -1.71                        },
++ { 0x0, 1.71, -2.3                         },
++ { 0x0, 1.71, -0.0000000000001             },
++ { 0x0, 1.71, 0.0                          },
++ { 0x0, 2.3, 1.71                          },
++ { 0x0, 2.3, 2.3                           },
++ { 0x0, 2.3, 0.0000000000001               },
++ { 0x0, 2.3, -1.71                         },
++ { 0x0, 2.3, -2.3                          },
++ { 0x0, 2.3, -0.0000000000001              },
++ { 0x0, 2.3, 0.0                           },
++ { 0x1, 0.0000000000001, 1.71              },
++ { 0x1, 0.0000000000001, 2.3               },
++ { 0x0, 0.0000000000001, 0.0000000000001   },
++ { 0x0, 0.0000000000001, -1.71             },
++ { 0x0, 0.0000000000001, -2.3              },
++ { 0x0, 0.0000000000001, -0.0000000000001  },
++ { 0x0, 0.0000000000001, 0.0               },
++ { 0x1, -1.71, 1.71                        },
++ { 0x1, -1.71, 2.3                         },
++ { 0x1, -1.71, 0.0000000000001             },
++ { 0x0, -1.71, -1.71                       },
++ { 0x0, -1.71, -2.3                        },
++ { 0x1, -1.71, -0.0000000000001            },
++ { 0x1, -1.71, 0.0                         },
++ { 0x1, -2.3, 1.71                         },
++ { 0x1, -2.3, 2.3                          },
++ { 0x1, -2.3, 0.0000000000001              },
++ { 0x1, -2.3, -1.71                        },
++ { 0x0, -2.3, -2.3                         },
++ { 0x1, -2.3, -0.0000000000001             },
++ { 0x1, -2.3, 0.0                          },
++ { 0x1, -0.0000000000001, 1.71             },
++ { 0x1, -0.0000000000001, 2.3              },
++ { 0x1, -0.0000000000001, 0.0000000000001  },
++ { 0x0, -0.0000000000001, -1.71            },
++ { 0x0, -0.0000000000001, -2.3             },
++ { 0x0, -0.0000000000001, -0.0000000000001 },
++ { 0x1, -0.0000000000001, 0.0              },
++ { 0x1,  0.0, 1.71                         },
++ { 0x1,  0.0, 2.3                          },
++ { 0x1,  0.0, 0.0000000000001              },
++ { 0x0,  0.0, -1.71                        },
++ { 0x0,  0.0, -2.3                         },
++ { 0x0,  0.0, -0.0000000000001             },
++ { 0x0,  0.0, 0.0                          })
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -17086,6 +17594,30 @@ test_t spe_isa_spe_fs_test_table = {
+   .type = table,
+   .description = "SPE ISA Single Precision Scalar Floating Point Unit Tests",
+   .table = {
++    F(efsabs_asm),
++    F(efsadd_asm),
++    F(efscfd_asm),
++    F(efscfsf_asm),
++    F(efscfsi_asm),
++    F(efscfuf_asm),
++    F(efscfui_asm),
++    F(efscmpeq_asm),
++    F(efscmpgt_asm),
++    F(efscmplt_asm),
++    F(efsctsf_asm),
++    F(efsctsi_asm),
++    F(efsctsiz_asm),
++    F(efsctuf_asm),
++    F(efsctui_asm),
++    F(efsctuiz_asm),
++    F(efsdiv_asm),
++    F(efsmul_asm),
++    F(efsnabs_asm),
++    F(efsneg_asm),
++    F(efssub_asm),
++    F(efststeq_asm),
++    F(efststgt_asm),
++    F(efststlt_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index c6f4443..03348a5 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17365)
++   by 0x........: main (test_spe.c:17897)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17365)
++   by 0x........: main (test_spe.c:17897)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17365)
++   by 0x........: main (test_spe.c:17897)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 16c1639..9346d0d 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -167,6 +167,30 @@ SPE Regression Tests: PASS
+ ....evmhogumian: PASS
+ ...SPE ISA Floating Point Unit Tests: PASS
+ ....SPE ISA Single Precision Scalar Floating Point Unit Tests: PASS
++.....efsabs: PASS
++.....efsadd: PASS
++.....efscfd: PASS
++.....efscfsf: PASS
++.....efscfsi: PASS
++.....efscfuf: PASS
++.....efscfui: PASS
++.....efscmpeq: PASS
++.....efscmpgt: PASS
++.....efscmplt: PASS
++.....efsctsf: PASS
++.....efsctsi: PASS
++.....efsctsiz: PASS
++.....efsctuf: PASS
++.....efsctui: PASS
++.....efsctuiz: PASS
++.....efsdiv: PASS
++.....efsmul: PASS
++.....efsnabs: PASS
++.....efsneg: PASS
++.....efssub: PASS
++.....efststeq: PASS
++.....efststgt: PASS
++.....efststlt: PASS
+ ....SPE ISA Single Precision Vector Floating Point Unit Tests: PASS
+ ....SPE ISA Double Precision Scalar Floating Point Unit Tests: PASS
+ .....efdcmpeq: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 824f84a..60cb2c6 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 27069 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  2384 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:   662 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  2942 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2073,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  6161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  7630 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 19845 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 12161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 19962 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 29607 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 31645 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  2621 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 6094e4f..fec1ee8 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7713 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  6479 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 30105 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  7038 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2074,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 15821 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 11735 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 24155 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 16264 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 13361 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  1369 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  3992 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  6732 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0056-Implement-SPE-Instructions.patch b/recipes-devtools/valgrind/files/0056-Implement-SPE-Instructions.patch
new file mode 100644
index 0000000..009875f
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0056-Implement-SPE-Instructions.patch
@@ -0,0 +1,920 @@
+From f314220639a4ef08a14d36fcb61daead3dfa8c98 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 3 May 2013 09:24:13 -0700
+Subject: [PATCH 56/65] Implement SPE Instructions: {
+
+ evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
+ evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+ evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt
+
+}.
+---
+ FSL-SPE-README.txt                       |    8 +-
+ VEX/priv/guest_ppc_defs.h                |   23 +++
+ VEX/priv/guest_ppc_helpers.c             |  127 +++++++++++-------
+ VEX/priv/guest_ppc_toIR.c                |  215 +++++++++++++++++++++++++-----
+ memcheck/tests/ppc32/test_spe.c          |  178 ++++++++++++++++++++++++-
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   23 +++
+ regtest-power7-64.default-build.log      |   12 +-
+ regtest-power7-64.log                    |   12 +-
+ 9 files changed, 500 insertions(+), 104 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index ff8ce16..e0fa131 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -83,6 +83,10 @@
+  efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
+  efsnabs, efsneg, efssub, efststeq, efststgt, efststlt,
+ 
++ evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
++ evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
++ evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
++
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+@@ -97,10 +101,6 @@
+ 
+  ehpriv?, eqv?, eqv.?,
+ 
+- evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
+- evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+- evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+-
+  evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
+  evmheusinw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
+  evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia, evmwhssf, evmwhssfa, evmwhumi, evmwhumia,
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 1f0828a..872a51b 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -348,6 +348,29 @@ SPE_DIRTY_HELPER_DECL_rDrArB(efssub);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efststeq);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efststgt);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efststlt);
++SPE_DIRTY_HELPER_DECL_rDrA(evfsabs);
++SPE_DIRTY_HELPER_DECL_rDrArB(evfsadd);
++SPE_DIRTY_HELPER_DECL_rDrB(evfscfsf);
++SPE_DIRTY_HELPER_DECL_rDrB(evfscfsi);
++SPE_DIRTY_HELPER_DECL_rDrB(evfscfuf);
++SPE_DIRTY_HELPER_DECL_rDrB(evfscfui);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfscmpeq);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfscmpgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfscmplt);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctsf);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctsi);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctsiz);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctuf);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctui);
++SPE_DIRTY_HELPER_DECL_rDrB(evfsctuiz);
++SPE_DIRTY_HELPER_DECL_rDrArB(evfsdiv);
++SPE_DIRTY_HELPER_DECL_rDrArB(evfsmul);
++SPE_DIRTY_HELPER_DECL_rDrA(evfsnabs);
++SPE_DIRTY_HELPER_DECL_rDrA(evfsneg);
++SPE_DIRTY_HELPER_DECL_rDrArB(evfssub);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfststeq);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfststgt);
++SPE_DIRTY_HELPER_DECL_crfDrArB(evfststlt);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 3fd9f3e..3f59466 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1429,6 +1429,9 @@ void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
+   return;
+ }
+ 
++/* From CR7, extract and return just that one bit holding the result. */
++#define EXTRACT_CMP_RES(cr) ((((cr) & 0xf) >> 2) & 0x1)
++
+ /* CALLED FROM GENERATED CODE */
+ /* DIRTY HELPER (reads guest state, writes guest state) */
+ #ifdef __SPE__
+@@ -1452,8 +1455,7 @@ UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off
+   /* Get hard reg CR into the variable CR: */                                     \
+   asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                   \
+                                                                                   \
+-  /* From CR7, extract and return just that one bit holding the result. */        \
+-  return ((CR & 0xf) >> 2) & 0x1;                                                 \
++  return EXTRACT_CMP_RES(CR);                                                     \
+ }
+ #else
+ #define SPE_DIRTY_HELPER_DEFN_crfDrArB(insn, rA_type, rB_type)                    \
+@@ -1527,54 +1529,79 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off
+ #define SPE_DIRTY_HELPER_DEFN_rDrA(insn, rD_type, rA_type) \
+         SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rA_type)
+ 
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdabs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctui,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdneg,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsabs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfd,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfui,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpeq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmplt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctui,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctuiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsdiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsnabs,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsneg,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efssub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststeq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststlt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdabs,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctui,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdneg,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsabs,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsadd,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfd,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsi,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfuf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfui,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpeq,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpgt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmplt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsi,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsiz,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuf,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctui,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuiz,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsdiv,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsmul,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsnabs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsneg,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efssub,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststeq,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststgt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststlt,  __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsabs,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfui,      __ev64_opaque__, __ev64_opaque__)
++#undef EXTRACT_CMP_RES
++#define EXTRACT_CMP_RES(cr) ((cr) & 0xf)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpeq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmplt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsi,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuf,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctui,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuiz,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsdiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsnabs,      __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsneg,       __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfssub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststeq, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststgt, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststlt, __ev64_opaque__, __ev64_opaque__)
+ 
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index a09e6c3..a384e15 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -15058,30 +15058,29 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */ \
+      stmt( IRStmt_Dirty(d) );
+ 
+-#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                        \
+-     args = mkIRExprVec_2 ( mkU32( rA_off ),                            \
+-                            mkU32( rB_off ) );                          \
+-     d = unsafeIRDirty_1_N (val,                                        \
+-                            0 /* regparms */,                           \
+-                            "spe_dirtyhelper_" #insn,                   \
+-                            &spe_dirtyhelper_##insn,                    \
+-                            args);                                      \
+-     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr );      \
+-     /* declare guest state effects */                                  \
+-     d->needsBBP = True;                                                \
+-     d->nFxState = 2;                                                   \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));                        \
+-     d->fxState[0].fx     = Ifx_Read;                                   \
+-     d->fxState[0].offset = rA_off;                                     \
+-     d->fxState[0].size   = sizeof(ULong);                              \
+-     d->fxState[1].fx     = Ifx_Read;                                   \
+-     d->fxState[1].offset = rB_off;                                     \
+-     d->fxState[1].size   = sizeof(ULong);                              \
+-                                                                        \
+-     /* execute the dirty call, side-effecting guest state */           \
+-     stmt( IRStmt_Dirty(d) );                                           \
+-     /* Update the CR in the guest state with the returned bit-value */ \
+-     putCRbit ( CR_field * 4 + 1, mkexpr ( val ) );
++#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                   \
++     args = mkIRExprVec_2 ( mkU32( rA_off ),                       \
++                            mkU32( rB_off ) );                     \
++     d = unsafeIRDirty_1_N (val,                                   \
++                            0 /* regparms */,                      \
++                            "spe_dirtyhelper_" #insn,              \
++                            &spe_dirtyhelper_##insn,               \
++                            args);                                 \
++     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr ); \
++     /* declare guest state effects */                             \
++     d->needsBBP = True;                                           \
++     d->nFxState = 2;                                              \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                   \
++     d->fxState[0].fx     = Ifx_Read;                              \
++     d->fxState[0].offset = rA_off;                                \
++     d->fxState[0].size   = sizeof(ULong);                         \
++     d->fxState[1].fx     = Ifx_Read;                              \
++     d->fxState[1].offset = rB_off;                                \
++     d->fxState[1].size   = sizeof(ULong);                         \
++                                                                   \
++     /* execute the dirty call, side-effecting guest state */      \
++     stmt( IRStmt_Dirty(d) );                                      \
++     UPDATE_CR(val);
+ 
+ #define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
+      args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
+@@ -15127,6 +15126,9 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */ \
+      stmt( IRStmt_Dirty(d) );
+ 
++#undef UPDATE_CR
++/* Update the CR in the guest state with the returned bit-value */
++#define UPDATE_CR(val) putCRbit ( CR_field * 4 + 1, mkexpr ( val ) );
+ static Bool dis_spe_fs ( UInt theInstr )
+ {
+   /* EVX-Form */
+@@ -15150,7 +15152,7 @@ static Bool dis_spe_fs ( UInt theInstr )
+   IRTemp   val = newTemp(Ity_I32);
+ 
+   if (opc1 != 0x4) {
+-     vex_printf( "dis_spe_fd (ppc)(opc1 != 0x4)\n" );
++     vex_printf( "dis_spe_fs (ppc)(opc1 != 0x4)\n" );
+      return False;
+   }
+   switch (opc2) {
+@@ -15256,36 +15258,158 @@ static Bool dis_spe_fs ( UInt theInstr )
+   return True;
+ }
+ 
++#undef UPDATE_CR
++/* Update the CR in the guest state */
++#define UPDATE_CR(val)                                      \
++putCRbit ( CR_field * 4 + 3, binop ( Iop_And32,             \
++                                     binop( Iop_Shr32,      \
++                                            mkexpr ( val ), \
++                                            mkU8 ( 0x0 ) ), \
++                                     mkU32 ( 0x1 ) ) );     \
++putCRbit ( CR_field * 4 + 2, binop ( Iop_And32,             \
++                                     binop( Iop_Shr32,      \
++                                            mkexpr ( val ), \
++                                            mkU8 ( 0x1 ) ), \
++                                     mkU32 ( 0x1 ) ) );     \
++putCRbit ( CR_field * 4 + 1, binop ( Iop_And32,             \
++                                     binop( Iop_Shr32,      \
++                                            mkexpr ( val ), \
++                                            mkU8 ( 0x2 ) ), \
++                                     mkU32 ( 0x1 ) ) );     \
++putCRbit ( CR_field * 4 + 0, binop ( Iop_And32,             \
++                                     binop( Iop_Shr32,      \
++                                            mkexpr ( val ), \
++                                            mkU8 ( 0x3 ) ), \
++                                     mkU32 ( 0x1 ) ) );
++
+ static Bool dis_spe_fv ( UInt theInstr )
+ {
+   /* EVX-Form */
+-  UChar opc1    = evxOpcode( theInstr );
+-  UInt  opc2    = evxXO( theInstr );
+-  UChar rD_addr = evxRD( theInstr );
+-  UChar rA_addr = evxRA( theInstr );
+-  UChar rB_addr = evxRB( theInstr );
+-  UChar uimm    = evxRB( theInstr );
+-  Char  simm    = evxRA( theInstr );
++  UChar opc1     = evxOpcode( theInstr );
++  UInt  opc2     = evxXO( theInstr );
++  UChar CR_field = evxBF( theInstr );
++  UChar rD_addr  = evxRD( theInstr );
++  UChar rA_addr  = evxRA( theInstr );
++  UChar rB_addr  = evxRB( theInstr );
++  UChar uimm     = evxRB( theInstr );
++  Char  simm     = evxRA( theInstr );
+ 
+   UInt ACC_off = speACCRegOffset( );
+   UInt rD_off  = speGuestRegOffset( rD_addr );
+   UInt rA_off  = speGuestRegOffset( rA_addr );
+   UInt rB_off  = speGuestRegOffset( rB_addr );
++  UInt CRf_off;
+ 
+   IRDirty* d;
+   IRExpr** args;
++  IRTemp   val = newTemp(Ity_I32);
+ 
+   if (opc1 != 0x4) {
+      vex_printf( "dis_spe_fv (ppc)(opc1 != 0x4)\n" );
+      return False;
+   }
+   switch (opc2) {
++  case 0x280:
++     // evfsadd (Vector Floating-Point Single-Precision Add, SPEPEM p5-90)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evfsadd);
++  break;
++  case 0x281:
++     // evfssub (Vector Floating-Point Single-Precision Subtract, SPEPEM p5-108)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evfssub);
++  break;
++  case 0x284:
++     // evfsabs (Vector Floating-Point Single-Precision Absolute Value, SPEPEM p5-89)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(evfsabs);
++  break;
++  case 0x285:
++     // evfsnabs (Vector Floating-Point Single-Precision Negative Absolute Value, SPEPEM p5-106)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(evfsnabs);
++  break;
++  case 0x286:
++     // evfsneg (Vector Floating-Point Single-Precision Negate, SPEPEM p5-107)
++     PREPARE_DIRTY_HELPER_CALL_rDrA(evfsneg);
++  break;
++  case 0x288:
++     // evfsmul (Vector Floating-Point Single-Precision Multiply, SPEPEM p5-105)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evfsmul);
++  break;
++  case 0x289:
++     // evfsdiv (Vector Floating-Point Single-Precision Divide, SPEPEM p5-104)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evfsdiv);
++  break;
++  case 0x28c:
++     // evfscmpgt (Vector Floating-Point Single-Precision Compare Greater Than, SPEPEM p5-96)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfscmpgt);
++  break;
++  case 0x28d:
++     // evfscmplt (Vector Floating-Point Single-Precision Compare Less Than, SPEPEM p5-97)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfscmplt);
++  break;
++  case 0x28e:
++     // evfscmpeq (Vector Floating-Point Single-Precision Compare Equal, SPEPEM p5-95)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfscmpeq);
++  break;
++  case 0x290:
++     // evfscfui (Vector Convert Floating-Point Single-Precision from Unsigned Integer, SPEPEM p5-94)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfscfui);
++  break;
++  case 0x291:
++      // evfscfsi (Vector Convert Floating-Point Single-Precision from Signed Integer, SPEPEM p5-92)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfscfsi);
++  break;
++  case 0x292:
++     // evfscfuf (Vector Convert Floating-Point Single-Precision from Unsigned Fraction, SPEPEM p5-93)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfscfuf);
++  break;
++  case 0x293:
++     // evfscfsf (Vector Convert Floating-Point Single-Precision from Signed Fraction, SPEPEM p5-91)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfscfsf);
++  break;
++  case 0x294:
++     // evfsctui (Vector Convert Floating-Point Single-Precision to Unsigned Integer, SPEPEM p5-102)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctui);
++  break;
++  case 0x295:
++     // evfsctsi (Vector Convert Floating-Point Single-Precision to Signed Integer, SPEPEM p5-99)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctsi);
++  break;
++  case 0x296:
++     // evfsctuf (Vector Convert Floating-Point Single-Precision to Unsigned Fraction, SPEPEM p5-101)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctuf);
++  break;
++  case 0x297:
++     // evfsctsf (Vector Convert Floating-Point Single-Precision to Signed Fraction, SPEPEM p5-98)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctsf);
++  break;
++  case 0x298:
++     // evfsctuiz (Vector Convert Floating-Point Single-Precision to Unsigned Integer with Round toward Zero, SPEPEM p5-103)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctuiz);
++  break;
++  case 0x29a:
++     // evfsctsiz (Vector Convert Floating-Point Single-Precision to Signed Integer with Round toward Zero, SPEPEM p5-100)
++     PREPARE_DIRTY_HELPER_CALL_rDrB(evfsctsiz);
++  break;
++  case 0x29c:
++     // evfststgt (Vector Floating-Point Single-Precision Test Greater Than, SPEPEM p5-110)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfststgt);
++  break;
++  case 0x29d:
++     // evfststlt (Vector Floating-Point Single-Precision Test Less Than, SPEPEM p5-111)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfststlt);
++  break;
++  case 0x29e:
++     // evfststeq (Vector Floating-Point Single-Precision Test Equal, SPEPEM p5-109)
++     PREPARE_DIRTY_HELPER_CALL_crfDrArB(evfststeq);
++  break;
+   default:
+      return False;
+   }
+   return True;
+ }
+ 
++#undef UPDATE_CR
++/* Update the CR in the guest state with the returned bit-value */
++#define UPDATE_CR(val) putCRbit ( CR_field * 4 + 1, mkexpr ( val ) );
+ static Bool dis_spe_fd ( UInt theInstr )
+ {
+   /* EVX-Form */
+@@ -15415,6 +15539,7 @@ static Bool dis_spe_fd ( UInt theInstr )
+   }
+   return True;
+ }
++#undef UPDATE_CR
+ 
+ /*------------------------------------------------------------*/
+ /*--- AltiVec Instruction Translation                      ---*/
+@@ -21397,6 +21522,32 @@ DisResult disInstr_PPC_WRK (
+ #ifdef __SPE__
+       opc2 = IFIELD(theInstr, 0, 11);
+       switch (opc2) {
++      case 0x280: // evfsadd
++      case 0x281: // evfssub
++      case 0x284: // evfsabs
++      case 0x285: // evfsnabs
++      case 0x286: // evfsneg
++      case 0x288: // evfsmul
++      case 0x289: // evfsdiv
++      case 0x28c: // evfscmpgt
++      case 0x28d: // evfscmplt
++      case 0x28e: // evfscmpeq
++      case 0x290: // evfscfui
++      case 0x291: // evfscfsi
++      case 0x292: // evfscfuf
++      case 0x293: // evfscfsf
++      case 0x294: // evfsctui
++      case 0x295: // evfsctsi
++      case 0x296: // evfsctuf
++      case 0x297: // evfsctsf
++      case 0x298: // evfsctuiz
++      case 0x29a: // evfsctsiz
++      case 0x29c: // evfststgt
++      case 0x29d: // evfststlt
++      case 0x29e: // evfststeq
++         if (!allow_SPE) goto decode_noSPE;
++         if (dis_spe_fv( theInstr )) goto decode_success;
++         goto decode_failure;
+       case 0x2c0: // efsadd
+       case 0x2c1: // efssub
+       case 0x2c4: // efsabs
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 6227996..fe4c44e 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -16157,6 +16157,7 @@ int evmhogumian_asm(void)
+ TEST_SPE_DECL(evmhogumian_asm, "evmhogumian");
+ 
+ #define EXTRACTOR
++#define FSCHECK(result_val, test_val) (EXTRACTOR(result_val) == EXTRACTOR(test_val))
+ 
+ #define SPE_DEFN_DEFAULT(insn) \
+ int insn##_asm(void)           \
+@@ -16230,9 +16231,9 @@ int insn##_asm(void)
+     regB = tval[i].bval;                                                                               \
+     asm volatile (#insn " %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));       \
+     if (generate_baseline)                                                                             \
+-      printf (baseline_format, regD);                                                                  \
++      printf (baseline_format, EXTRACTOR(regD));                                                       \
+     else                                                                                               \
+-      VERIFY(EXTRACTOR(regD) == EXTRACTOR(tval[i].dval), "i = %d\n", i);                               \
++      VERIFY(FSCHECK(regD, tval[i].dval), "i = %d\n", i);                                              \
+   }                                                                                                    \
+   return failures;                                                                                     \
+ }                                                                                                      \
+@@ -16262,7 +16263,7 @@ int insn##_asm(void)
+     if (generate_baseline)                                                                  \
+       printf (baseline_format, EXTRACTOR(regD));                                            \
+     else                                                                                    \
+-      VERIFY(EXTRACTOR(regD) == EXTRACTOR(tval[i].dval), "i = %d\n", i);                    \
++      VERIFY(FSCHECK(regD, tval[i].dval), "i = %d\n", i);                                   \
+   }                                                                                         \
+   return failures;                                                                          \
+ }                                                                                           \
+@@ -17319,6 +17320,154 @@ SPE_DEFN_crfDrArB(efststlt, float, float,
+  { 0x0,  0.0, -0.0000000000001             },
+  { 0x0,  0.0, 0.0                          })
+ 
++#undef EXTRACTOR
++#undef FSCHECK
++#define UEXTRACTOR(v) __ev_get_upper_fs(v)
++#define LEXTRACTOR(v) __ev_get_lower_fs(v)
++#define EXTRACTOR(v) UEXTRACTOR(v), LEXTRACTOR(v)
++#define FSCHECK(result_val, test_val) \
++ ((UEXTRACTOR(result_val) == UEXTRACTOR(test_val)) && \
++  (LEXTRACTOR(result_val) == LEXTRACTOR(test_val)))
++#define EVFS_FORMAT "{ %.30e, %.30e }\n"
++
++SPE_DEFN_rDrA(evfsabs, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 2.299999952316284179687500000000e+00, 1.700000092387199401855468750000e-02 }, {  2.3,              0.017    } },
++ { { 9.999999824516700441812133703934e-14, 2.172999954223632812500000000000e+01 }, { -0.0000000000001, -21.73    } })
++
++SPE_DEFN_rDrArB(evfsadd, __ev64_fs__, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 3.719000101089477539062500000000e+00, -1.131879997253417968750000000000e+01 }, { 1.71, -12.43 }, { 2.009,    1.1112 }, },
++ { { 1.199290990829467773437500000000e+00,  1.409000015258789062500000000000e+01 }, { -0.8,  11.09 }, { 1.999291, 3.0    }, })
++
++SPE_DEFN_rDrB(evfscfsf, __ev64_fs__, __ev64_u32__, 0, EVFS_FORMAT,
++ { { -2.500000000000000000000000000000e-01, -1.525878906250000000000000000000e-05 }, { 0xe0000000, 0xffff8000 } },
++ { { -6.250000000000000000000000000000e-02, -1.396983861923217773437500000000e-08 }, { 0xf8000000, 0xffffffe2 } })
++
++SPE_DEFN_rDrB(evfscfsi, __ev64_fs__, __ev64_s32__, 0, EVFS_FORMAT,
++ { { -1.0,  34.0  }, { -1,   34  } },
++ { {  2.0, -179.0 }, {  2,  -179 } })
++
++SPE_DEFN_rDrB(evfscfuf, __ev64_fs__, __ev64_u32__, 0, EVFS_FORMAT,
++ { { 2.500000000000000000000000000000e-01, 1.250000000000000000000000000000e-01 }, { 0x40000000, 0x20000000 } },
++ { { 6.250000000000000000000000000000e-02, 3.125000000000000000000000000000e-02 }, { 0x10000000, 0x08000000 } })
++
++SPE_DEFN_rDrB(evfscfui, __ev64_fs__, __ev64_u32__, 0, EVFS_FORMAT,
++ { { 1.0, 34.0  }, { 1,  34  } },
++ { { 2.0, 179.0 }, { 2,  179 } })
++
++#undef SPE_CMP
++#define SPE_CMP(insn, CR_field, cmp, regA, regB)                                                     \
++{                                                                                                    \
++  unsigned int CR;                                                                                   \
++  int field;                                                                                         \
++                                                                                                     \
++  field = CR_field;                                                                                  \
++  asm volatile (#insn " " #CR_field ", %[a], %[b]" : : [a] "r" (regA), [b] "r" (regB));              \
++  asm volatile ("mfcr %[cr]" : [cr] "=r" (CR));                                                      \
++  VERIFY(((EXTRACT_CR_FIELD(CR, field))) == cmp, "i = %d, field = %d, cmp = 0x%x\n", i, field, cmp); \
++}
++
++SPE_DEFN_crfDrArB(evfscmpeq, __ev64_fs__, __ev64_fs__,
++ { 0xf, { -4.86, 1.71 }, { -4.86,    1.71 } }, // ch = 1, cl = 1
++ { 0x6, { 11.99, -1.0 }, {  0.0,    -1.0  } }, // ch = 0, cl = 1
++ { 0xa, { 11.99, -1.0 }, {  11.99,  +1.0  } }, // ch = 1, cl = 0
++ { 0x0, { 11.99, -1.0 }, {  17.36,  +5.2  } }) // ch = 0, cl = 0
++
++SPE_DEFN_crfDrArB(evfscmpgt, __ev64_fs__, __ev64_fs__,
++ { 0xf, { +4.86, 1.71 }, { +1.29,    0.04 } }, // ch = 1, cl = 1
++ { 0x6, { 11.99, -1.0 }, {  100.1,  -9.7  } }, // ch = 0, cl = 1
++ { 0xa, { 11.99, -1.0 }, {  1.17,   +1.0  } }, // ch = 1, cl = 0
++ { 0x0, { 11.99, -1.0 }, {  17.36,  +5.2  } }) // ch = 0, cl = 0
++
++SPE_DEFN_crfDrArB(evfscmplt, __ev64_fs__, __ev64_fs__,
++ { 0xf, { +1.29,    0.04 },  { +4.86, 1.71 }, }, // ch = 1, cl = 1
++ { 0x6, {  100.1,  -9.7  },  { 11.99, -1.0 }, }, // ch = 0, cl = 1
++ { 0xa, {  1.17,   +1.0  },  { 11.99, -1.0 }, }, // ch = 1, cl = 0
++ { 0x0, {  17.36,  +5.2  },  { 11.99, -1.0 }, }) // ch = 0, cl = 0
++
++#undef EVFS_FORMAT
++#define EVFS_FORMAT "{ 0x%x, 0x%x }\n"
++
++#undef UEXTRACTOR
++#undef LEXTRACTOR
++#define UEXTRACTOR(v) __ev_get_upper_u32(v)
++#define LEXTRACTOR(v) __ev_get_lower_u32(v)
++SPE_DEFN_rDrB(evfsctsf, __ev64_u32__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 0x40000000, 0x7fffffff },  { 0.5,   1.0  }, },
++ { { 0x10000000, 0x20000000 },  { 0.125, 0.25 }, })
++
++#undef UEXTRACTOR
++#undef LEXTRACTOR
++#define UEXTRACTOR(v) __ev_get_upper_s32(v)
++#define LEXTRACTOR(v) __ev_get_lower_s32(v)
++SPE_DEFN_rDrB(evfsctsi, __ev64_s32__, __ev64_fs__, 0,  EVFS_FORMAT,
++ { { -1,  1   }, { -1.19, 1.0   } },
++ { { 0x7, -3  }, { 7.39, -3.14  } })
++
++SPE_DEFN_rDrB(evfsctsiz, __ev64_s32__, __ev64_fs__, 0,  EVFS_FORMAT,
++ { { -1,  1   }, { -1.19, 1.0   } },
++ { { 0x7, -3  }, { 7.39, -3.14  } })
++
++#undef UEXTRACTOR
++#undef LEXTRACTOR
++#define UEXTRACTOR(v) __ev_get_upper_u32(v)
++#define LEXTRACTOR(v) __ev_get_lower_u32(v)
++SPE_DEFN_rDrB(evfsctuf, __ev64_u32__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 0x80000000, 0xffffffff }, { 0.5,     1.0  } },
++ { { 0x8000000,  0x40000000 }, { 0.03125, 0.25 } })
++
++SPE_DEFN_rDrB(evfsctui, __ev64_u32__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 0, 2 }, { 0.5,     1.9  } },
++ { { 5, 7 }, { 5.03125, 7.25 } })
++
++SPE_DEFN_rDrB(evfsctuiz, __ev64_u32__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 0, 1 }, { 0.5,     1.9  } },
++ { { 5, 7 }, { 5.03125, 7.25 } })
++
++#undef UEXTRACTOR
++#undef LEXTRACTOR
++#define UEXTRACTOR(v) __ev_get_upper_fs(v)
++#define LEXTRACTOR(v) __ev_get_lower_fs(v)
++
++#undef EVFS_FORMAT
++#define EVFS_FORMAT "{ %.30e, %.30e }\n"
++
++SPE_DEFN_rDrArB(evfsdiv, __ev64_fs__, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 2.0, -2.0 }, { 3.2, -3.2 }, { 1.6, 1.6 } },
++ { { 3.0, -4.0 }, { 7.5, -1.2 }, { 2.5, 0.3 } })
++
++SPE_DEFN_rDrArB(evfsmul, __ev64_fs__, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { 1.792000007629394531250000000000e+01, -2.912000083923339843750000000000e+01 }, { 3.2, -3.2 }, { 5.6, 9.1 } },
++ { { 1.875000000000000000000000000000e+01, -3.600000143051147460937500000000e-01 }, { 7.5, -1.2 }, { 2.5, 0.3 } })
++
++SPE_DEFN_rDrA(evfsnabs, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { -2.299999952316284179687500000000e+00, -1.700000092387199401855468750000e-02 }, {  2.3,              0.017    } },
++ { { -9.999999824516700441812133703934e-14, -2.172999954223632812500000000000e+01 }, { -0.0000000000001, -21.73    } })
++
++SPE_DEFN_rDrA(evfsneg, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { { +1.709999999999999964472863211995e+00, -0.000000000000000000000000000000e+00 }, { -1.71, 0.0 } },
++ { { -2.299999999999999822364316059975e+00, -0.000000000000000000000000000000e+00 }, {  2.3 -0.0000000000001 } })
++
++SPE_DEFN_rDrArB(evfssub, __ev64_fs__, __ev64_fs__, __ev64_fs__, 0, EVFS_FORMAT,
++ { {  1.98877906799316406250,  -4.04799985885620117188 }, { -0.01020304049999999976, -1.71799999999999997158 },  { -1.99898212000100006236,  2.33000000000000007105 } })
++
++SPE_DEFN_crfDrArB(evfststeq, __ev64_fs__, __ev64_fs__,
++ { 0xf, { -4.86, 1.71 }, { -4.86,    1.71 } }, // ch = 1, cl = 1
++ { 0x6, { 11.99, -1.0 }, {  0.0,    -1.0  } }, // ch = 0, cl = 1
++ { 0xa, { 11.99, -1.0 }, {  11.99,  +1.0  } }, // ch = 1, cl = 0
++ { 0x0, { 11.99, -1.0 }, {  17.36,  +5.2  } }) // ch = 0, cl = 0
++
++SPE_DEFN_crfDrArB(evfststgt, __ev64_fs__, __ev64_fs__,
++ { 0xf, { +4.86, 1.71 }, { +1.29,    0.04 } }, // ch = 1, cl = 1
++ { 0x6, { 11.99, -1.0 }, {  100.1,  -9.7  } }, // ch = 0, cl = 1
++ { 0xa, { 11.99, -1.0 }, {  1.17,   +1.0  } }, // ch = 1, cl = 0
++ { 0x0, { 11.99, -1.0 }, {  17.36,  +5.2  } }) // ch = 0, cl = 0
++
++SPE_DEFN_crfDrArB(evfststlt, __ev64_fs__, __ev64_fs__,
++ { 0xf, { +1.29,    0.04 },  { +4.86, 1.71 }, }, // ch = 1, cl = 1
++ { 0x6, {  100.1,  -9.7  },  { 11.99, -1.0 }, }, // ch = 0, cl = 1
++ { 0xa, {  1.17,   +1.0  },  { 11.99, -1.0 }, }, // ch = 1, cl = 0
++ { 0x0, {  17.36,  +5.2  },  { 11.99, -1.0 }, }) // ch = 0, cl = 0
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -17627,6 +17776,29 @@ test_t spe_isa_spe_fv_test_table = {
+   .type = table,
+   .description = "SPE ISA Single Precision Vector Floating Point Unit Tests",
+   .table = {
++    F(evfsabs_asm),
++    F(evfsadd_asm),
++    F(evfscfsf_asm),
++    F(evfscfsi_asm),
++    F(evfscfuf_asm),
++    F(evfscfui_asm),
++    F(evfscmpeq_asm),
++    F(evfscmpgt_asm),
++    F(evfscmplt_asm),
++    F(evfsctsf_asm),
++    F(evfsctsi_asm),
++    F(evfsctsiz_asm),
++    F(evfsctuf_asm),
++    F(evfsctui_asm),
++    F(evfsctuiz_asm),
++    F(evfsdiv_asm),
++    F(evfsmul_asm),
++    F(evfsnabs_asm),
++    F(evfsneg_asm),
++    F(evfssub_asm),
++    F(evfststeq_asm),
++    F(evfststgt_asm),
++    F(evfststlt_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 03348a5..1d6a25a 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17897)
++   by 0x........: main (test_spe.c:18069)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17897)
++   by 0x........: main (test_spe.c:18069)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:17897)
++   by 0x........: main (test_spe.c:18069)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 9346d0d..297054d 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -192,6 +192,29 @@ SPE Regression Tests: PASS
+ .....efststgt: PASS
+ .....efststlt: PASS
+ ....SPE ISA Single Precision Vector Floating Point Unit Tests: PASS
++.....evfsabs: PASS
++.....evfsadd: PASS
++.....evfscfsf: PASS
++.....evfscfsi: PASS
++.....evfscfuf: PASS
++.....evfscfui: PASS
++.....evfscmpeq: PASS
++.....evfscmpgt: PASS
++.....evfscmplt: PASS
++.....evfsctsf: PASS
++.....evfsctsi: PASS
++.....evfsctsiz: PASS
++.....evfsctuf: PASS
++.....evfsctui: PASS
++.....evfsctuiz: PASS
++.....evfsdiv: PASS
++.....evfsmul: PASS
++.....evfsnabs: PASS
++.....evfsneg: PASS
++.....evfssub: PASS
++.....evfststeq: PASS
++.....evfststgt: PASS
++.....evfststlt: PASS
+ ....SPE ISA Double Precision Scalar Floating Point Unit Tests: PASS
+ .....efdcmpeq: PASS
+ .....efdabs: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 60cb2c6..0fb7950 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  2384 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  3557 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  2942 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 20083 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2073,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  7630 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 13339 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 12161 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 27178 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 29607 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  4470 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  2621 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21326 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index fec1ee8..dd258df 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  6479 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 28743 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  7038 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  3288 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2074,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 11735 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 12610 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 16264 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 21221 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  1369 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24399 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  6732 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 18931 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0057-Implement-SPE-Instructions.patch b/recipes-devtools/valgrind/files/0057-Implement-SPE-Instructions.patch
new file mode 100644
index 0000000..5f1badd
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0057-Implement-SPE-Instructions.patch
@@ -0,0 +1,3331 @@
+From fe3e34507ffed7da6d8ccf1e9d189c9afcc075d7 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 10 May 2013 12:51:21 -0700
+Subject: [PATCH 57/65] Implement SPE Instructions: {
+
+ evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
+ evmheusianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
+ evmhousiaaw, evmhousianw, evmwhssf, evmwhssfa, evmwlssiaaw, evmwlssianw, evmwlusiaaw,
+ evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
+
+ evsubfssiaaw, evsubfusiaaw,
+
+ brinc
+
+}.
+
+Fix typos for instructions: { evmwhsmi, evmwhsmia, evmwhumi, evmwhumia } in FSL-SPE-README.txt
+---
+ FSL-SPE-README.txt                       |   23 +-
+ VEX/priv/guest_ppc_defs.h                |   35 +
+ VEX/priv/guest_ppc_helpers.c             |  115 ++
+ VEX/priv/guest_ppc_toIR.c                |  412 +++++--
+ memcheck/tests/ppc32/test_spe.c          | 2108 +++++++++++++++++++++++++++++-
+ memcheck/tests/ppc32/test_spe.h          |  106 ++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |   31 +-
+ regtest-power7-64.default-build.log      |   12 +-
+ regtest-power7-64.log                    |   12 +-
+ 10 files changed, 2734 insertions(+), 126 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index e0fa131..2cf77a8 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -62,7 +62,7 @@
+  evmheumia, evmheumiaaw, evmheumianw, evmhosmi, evmhosmia, evmhosmiaaw,
+  evmhosmianw, evmhoumi, evmhoumia, evmhoumiaaw, evmhoumianw, evmwlumi,
+  evmwlumia, evmwlumiaaw, evmwlumianw, evmwsmi, evmwsmia, evmwsmiaa, evmwsmian,
+- evmwumi, evmwumia, evmwumiaa, evmwumian, evmwhsm, evmwhsma, evmwhum, evmwhuma,
++ evmwumi, evmwumia, evmwumiaa, evmwumian, evmwhsmi, evmwhsmia, evmwhumi, evmwhumia,
+  evmwlsmiaaw, evmwlsmianw, evmwsmfan, evmwsmfaa, evmwsmf, evmwsmfa, evmwhsmf,
+  evmwhsmfa, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhesmf, evmhesmfa,
+  evmhesmfaaw, evmhesmfanw
+@@ -87,6 +87,13 @@
+  evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+  evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+ 
++ evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
++ evmheusianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
++ evmhousiaaw, evmhousianw, evmwhssf, evmwhssfa, evmwlssiaaw, evmwlssianw, evmwlusiaaw,
++ evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan, evsubfssiaaw, evsubfusiaaw,
++
++ brinc
++
+  Note: Synthetic instructions appear prefixed with a leading underscore in the
+        above list. All synthetic instructions are tested as working under
+        Valgrind even though, strictly speaking, such an instruction is not
+@@ -97,22 +104,14 @@
+ 
+  Note: Non SPE instructions are indicated by suffixing them with a '?' sign.
+ 
+- eciwx?, ecowx?,
+-
+- ehpriv?, eqv?, eqv.?,
+-
+- evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
+- evmheusinw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
+- evmhousiaaw, evmhousianw, evmwhsmi, evmwhsmia, evmwhssf, evmwhssfa, evmwhumi, evmwhumia,
+- evmwlssiaaw, evmwlssianw, evmwlusiaaw, evmwlusianw, evmwssf, evmwssfa, evmwssfaa,
+- evmwssfan, evsubfssiaaw, evsubfusiaaw,
++ eciwx?, ecowx?, ehpriv?, eqv?, eqv.?, extsb?, extsb.?, extsh?, extsh.?
+ 
+- extsb?, extsb.?, extsh?, extsh.?
++ evaddssiaaw, evaddusiaaw, evdivws, evdivwu, evmwhusiaaw, evmwhusianw,
+ 
+  The following instructions may only be implemented for 64-bit implementations,
+  and are hence out of scope for this porting effort:
+ 
+- efdcfsid, efdcfuid, efdctsidz, efdctuidz,
++ efdcfsid, efdcfuid, efdctsidz, efdctuidz.
+ 
+  Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
+  ----------------------------------------------------------------------
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 872a51b..96734c6 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -300,6 +300,12 @@ extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt
+ #define SPE_DIRTY_HELPER_DECL_rDrB(insn) \
+ extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off )
+ 
++#define SPE_DIRTY_HELPER_DECL_ACCrDrArB(insn) \
++extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off, UInt rB_off);
++
++#define SPE_DIRTY_HELPER_DECL_ACCrDrA(insn) \
++extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off);
++
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efdcmpeq);
+ SPE_DIRTY_HELPER_DECL_rDrA(efdabs);
+ SPE_DIRTY_HELPER_DECL_rDrArB(efdadd);
+@@ -371,6 +377,35 @@ SPE_DIRTY_HELPER_DECL_rDrArB(evfssub);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(evfststeq);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(evfststgt);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(evfststlt);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmhessf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhessfa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhessfaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhessfanw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhessiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhessianw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmheusiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmheusianw);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmhossf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhossfa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhossfaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhossfanw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhossiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhossianw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhousiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhousianw);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmwhssf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwhssfa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwlssiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwlssianw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwlusiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwlusianw);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmwssf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwssfa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwssfaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwssfan);
++SPE_DIRTY_HELPER_DECL_ACCrDrA(evsubfusiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrA(evsubfssiaaw);
++SPE_DIRTY_HELPER_DECL_rDrArB(brinc);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 3f59466..de207c1 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1603,6 +1603,121 @@ SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststeq, __ev64_opaque__, __ev64_opaque__)
+ SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststgt, __ev64_opaque__, __ev64_opaque__)
+ SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststlt, __ev64_opaque__, __ev64_opaque__)
+ 
++#ifdef __SPE__
++#define SPE_DIRTY_HELPER_DEFN_ACCrDrArB(insn, rD_type, rA_type, rB_type, reads_acc, writes_acc)             \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off, UInt rB_off) \
++{                                                                                                           \
++  register rA_type rA  asm ("29");                                                                          \
++  register rB_type rB  asm ("28");                                                                          \
++  register rD_type rD  asm ("27");                                                                          \
++  register rD_type ACC asm ("26");                                                                          \
++                                                                                                            \
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));                                           \
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                                        \
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                                        \
++  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                                        \
++                                                                                                            \
++  /* Read ACC, rA, rB from the Guest State: */                                                              \
++  ACC = __ev_create_u64 (*((ULong *) ((UChar *) gst + ACC_off)));                                           \
++  rA  = __ev_create_u64 (*((ULong *) ((UChar *) gst + rA_off)));                                            \
++  rB  = __ev_create_u64 (*((ULong *) ((UChar *) gst + rB_off)));                                            \
++                                                                                                            \
++  if (reads_acc) {                                                                                          \
++    /* Initialize the ACC: */                                                                               \
++    asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));                                  \
++  }                                                                                                         \
++                                                                                                            \
++  /* Perform the operation: */                                                                              \
++  asm volatile (#insn " %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));                    \
++                                                                                                            \
++  /* Write rD to the Guest State: */                                                                        \
++  *((ULong *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);                                            \
++                                                                                                            \
++  if (writes_acc) {                                                                                         \
++    ACC = rD;                                                                                               \
++    /* Write ACC to the Guest State: */                                                                     \
++    *((ULong *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);                                        \
++  }                                                                                                         \
++  return;                                                                                                   \
++}
++#else
++#define SPE_DIRTY_HELPER_DEFN_ACCrDrArB(insn, rD_type, rA_type, rB_type, reads_acc, writes_acc)             \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off, UInt rB_off) \
++{ return; }
++#endif // __SPE__
++
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhessf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhossf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwhssf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwhssfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwssf,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfa,    __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfaa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfan,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++
++#ifdef __SPE__
++#define SPE_DIRTY_HELPER_DEFN_ACCrDrA(insn, rD_type, rA_type, reads_acc, writes_acc)           \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off) \
++{                                                                                              \
++  register rA_type rA  asm ("29");                                                             \
++  register rD_type rD  asm ("28");                                                             \
++  register rD_type ACC asm ("27");                                                             \
++                                                                                               \
++  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));                              \
++  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                           \
++  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));                           \
++                                                                                               \
++  /* Read ACC, rA, rB from the Guest State: */                                                 \
++  ACC = __ev_create_u64 (*((ULong *) ((UChar *) gst + ACC_off)));                              \
++  rA  = __ev_create_u64 (*((ULong *) ((UChar *) gst + rA_off)));                               \
++                                                                                               \
++  if (reads_acc) {                                                                             \
++    /* Initialize the ACC: */                                                                  \
++    asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));                     \
++  }                                                                                            \
++                                                                                               \
++  /* Perform the operation: */                                                                 \
++  asm volatile (#insn " %[t], %[a]" : [t] "=r" (rD) : [a] "r" (rA));                           \
++                                                                                               \
++  /* Write rD to the Guest State: */                                                           \
++  *((ULong *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);                               \
++                                                                                               \
++  if (writes_acc) {                                                                            \
++    ACC = rD;                                                                                  \
++    /* Write ACC to the Guest State: */                                                        \
++    *((ULong *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);                           \
++  }                                                                                            \
++  return;                                                                                      \
++}
++#else
++#define SPE_DIRTY_HELPER_DEFN_ACCrDrA(insn, rD_type, rA_type, reads_acc, writes_acc)           \
++void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off) \
++{ return; }
++#endif // __SPE__
++
++SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfssiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfusiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
++
++SPE_DIRTY_HELPER_DEFN_rDrArB(brinc, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+ /*----------------------------------------------*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index a384e15..2b111a7 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -12396,6 +12396,32 @@ static IRExpr* spe_round_word ( IRExpr* src )
+                 mkU32 ( 0xFFFF0000 ) );
+ }
+ 
++#define PREPARE_DIRTY_HELPER_CALL_rDrArB(insn)                   \
++     args = mkIRExprVec_3 ( mkU32( rD_off ),                     \
++                            mkU32( rA_off ),                     \
++                            mkU32( rB_off ) );                   \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                    \
++                            "spe_dirtyhelper_" #insn,            \
++                            &spe_dirtyhelper_##insn,             \
++                            args);                               \
++     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr ); \
++     /* declare guest state effects */                           \
++     d->needsBBP = True;                                         \
++     d->nFxState = 3;                                            \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                 \
++     d->fxState[0].fx     = Ifx_Write;                           \
++     d->fxState[0].offset = rD_off;                              \
++     d->fxState[0].size   = sizeof(ULong);                       \
++     d->fxState[1].fx     = Ifx_Read;                            \
++     d->fxState[1].offset = rA_off;                              \
++     d->fxState[1].size   = sizeof(ULong);                       \
++     d->fxState[2].fx     = Ifx_Read;                            \
++     d->fxState[2].offset = rB_off;                              \
++     d->fxState[2].size   = sizeof(ULong);                       \
++                                                                 \
++     /* execute the dirty call, side-effecting guest state */    \
++     stmt( IRStmt_Dirty(d) );
++
+ static Bool dis_spe_bitwise ( UInt theInstr )
+ {
+    /* EVX-Form */
+@@ -12420,12 +12446,25 @@ static Bool dis_spe_bitwise ( UInt theInstr )
+ 
+    IRTemp rD = newTemp( Ity_I64 );
+ 
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++
++  IRDirty* d;
++  IRExpr** args;
++
+    if (opc1 != 0x4) {
+       vex_printf( "dis_spe_bitwise(ppc)(opc1 != 0x4)\n" );
+       return False;
+    }
+    switch (opc2) {
+ 
++   case 0x20f:
++     // brinc (Bit Reversed Increment, SPEPEM p5-16)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(brinc);
++     return True;
++
+    case 0x208:
+    case 0x209:
+    case 0x20a:
+@@ -13184,6 +13223,32 @@ static Bool dis_spe_initialize_ACC ( UInt theInstr )
+   return True;
+ }
+ 
++#define PREPARE_DIRTY_HELPER_CALL_ACCrDrA(insn, ACC_IREffect) \
++     args = mkIRExprVec_3 ( mkU32( ACC_off ),                 \
++                            mkU32( rD_off ),                  \
++                            mkU32( rA_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 3;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = ACC_IREffect;                     \
++     d->fxState[0].offset = ACC_off;                          \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Write;                        \
++     d->fxState[1].offset = rD_off;                           \
++     d->fxState[1].size   = 2 * sizeof(UInt);                 \
++     d->fxState[2].fx     = Ifx_Read;                         \
++     d->fxState[2].offset = rA_off;                           \
++     d->fxState[2].size   = 2 * sizeof(UInt);                 \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
+ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+ {
+   /* EVX-Form */
+@@ -13208,6 +13273,14 @@ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+   IRTemp rDU   = newTemp( Ity_I32 );
+   IRTemp rDL   = newTemp( Ity_I32 );
+ 
++  UInt ACC_off = speACCRegOffset( );
++  UInt rD_off  = speGuestRegOffset( rD_addr );
++  UInt rA_off  = speGuestRegOffset( rA_addr );
++  UInt rB_off  = speGuestRegOffset( rB_addr );
++
++  IRDirty* d;
++  IRExpr** args;
++
+   IRTemp rD = newTemp( Ity_I64 );
+ 
+   if (opc1 != 0x4) {
+@@ -13215,6 +13288,14 @@ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+      return False;
+   }
+   switch (opc2) {
++  case 0x4c2:
++     // evsubfusiaaw (Vector Subtract Unsigned, Saturate, Integer to Accumulator Word, SPEPEM p5-245)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evsubfusiaaw, Ifx_Modify);
++     return True;
++  case 0x4c3:
++     // evsubfssiaaw (Vector Subtract Signed, Saturate, Integer to Accumulator Word, SPEPEM p5-243)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evsubfssiaaw, Ifx_Modify);
++     return True;
+   case 0x4c8:
+      // evaddumiaaw (Vector Add Unsigned, Modulo, Integer to Accumulator Word, SPEPEM p5-72)
+      DIP( "evaddumiaaw r%d, r%d\n", rD_addr, rA_addr );
+@@ -14204,7 +14285,105 @@ static Bool dis_spe_ACC_based_multiply_insns ( UInt theInstr )
+   return True;
+ }
+ 
+-static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
++#define PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(insn, ACC_IREffect) \
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),                   \
++                            mkU32( rD_off ),                    \
++                            mkU32( rA_off ),                    \
++                            mkU32( rB_off ) );                  \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                   \
++                            "spe_dirtyhelper_" #insn,           \
++                            &spe_dirtyhelper_##insn,            \
++                            args);                              \
++     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );     \
++     /* declare guest state effects */                          \
++     d->needsBBP = True;                                        \
++     d->nFxState = 4;                                           \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                \
++     d->fxState[0].fx     = ACC_IREffect;                       \
++     d->fxState[0].offset = ACC_off;                            \
++     d->fxState[0].size   = sizeof(ULong);                      \
++     d->fxState[1].fx     = Ifx_Write;                          \
++     d->fxState[1].offset = rD_off;                             \
++     d->fxState[1].size   = 2 * sizeof(UInt);                   \
++     d->fxState[2].fx     = Ifx_Read;                           \
++     d->fxState[2].offset = rA_off;                             \
++     d->fxState[2].size   = 2 * sizeof(UInt);                   \
++     d->fxState[3].fx     = Ifx_Read;                           \
++     d->fxState[3].offset = rB_off;                             \
++     d->fxState[3].size   = 2 * sizeof(UInt);                   \
++                                                                \
++     /* execute the dirty call, side-effecting guest state */   \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                   \
++     args = mkIRExprVec_2 ( mkU32( rA_off ),                       \
++                            mkU32( rB_off ) );                     \
++     d = unsafeIRDirty_1_N (val,                                   \
++                            0 /* regparms */,                      \
++                            "spe_dirtyhelper_" #insn,              \
++                            &spe_dirtyhelper_##insn,               \
++                            args);                                 \
++     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr ); \
++     /* declare guest state effects */                             \
++     d->needsBBP = True;                                           \
++     d->nFxState = 2;                                              \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                   \
++     d->fxState[0].fx     = Ifx_Read;                              \
++     d->fxState[0].offset = rA_off;                                \
++     d->fxState[0].size   = sizeof(ULong);                         \
++     d->fxState[1].fx     = Ifx_Read;                              \
++     d->fxState[1].offset = rB_off;                                \
++     d->fxState[1].size   = sizeof(ULong);                         \
++                                                                   \
++     /* execute the dirty call, side-effecting guest state */      \
++     stmt( IRStmt_Dirty(d) );                                      \
++     UPDATE_CR(val);
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rB_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rB_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rB_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrA(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rA_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rA_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+ {
+   /* EVX-Form */
+   UChar opc1    = evxOpcode( theInstr );
+@@ -14224,10 +14403,18 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+   IRExpr** args;
+ 
+   if (opc1 != 0x4) {
+-     vex_printf( "dis_spe_ACC_based_fractional_multiply_insns (ppc)(opc1 != 0x4)\n" );
++     vex_printf( "dis_spe_ACC_based_multiply_insns_via_dirty_helpers (ppc)(opc1 != 0x4)\n" );
+      return False;
+   }
+   switch (opc2) {
++  case 0x423:
++     // evmhessfa (Vector Multiply Half Words, Even, Signed, Saturate, Fractional (to Accumulator), SPEPEM p5-150)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhessfa, Ifx_Write);
++     break;
++  case 0x427:
++     // evmhossfa (Vector Multiply Half Words, Odd, Signed, Saturate, Fractional (to Accumulator), SPEPEM p5-150)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhossfa, Ifx_Write);
++     break;
+   case 0x42b:
+      // evmhesmfa (Vector Multiply Half Words, Even, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14290,6 +14477,14 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x403:
++     // evmhessf (Vector Multiply Half Words, Even, Signed, Saturate, Fractional, SPEPEM p5-150)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmhessf);
++     break;
++  case 0x407:
++     // evmhossf (Vector Multiply Half Words, Odd, Signed, Saturate, Fractional, SPEPEM p5-172)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmhossf);
++     break;
+   case 0x40b:
+      // evmhesmf (Vector Multiply Half Words, Even, Signed, Modulo, Fractional, SPEPEM p5-166)
+      args = mkIRExprVec_3 ( mkU32( rD_off ),
+@@ -14344,6 +14539,10 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x447:
++     // evmwhssf (Vector Multiply Word High Signed, Saturate, Fractional, SPEPEM p5-186)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmwhssf);
++     break;
+   case 0x44f:
+      // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
+      args = mkIRExprVec_3 ( mkU32( rD_off ),
+@@ -14371,6 +14570,14 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x453:
++     // evmwssf (Vector Multiply Word Signed, Saturate, Fractional, SPEPEM p5-205)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmwssf);
++     break;
++  case 0x467:
++     // evmwhssfa (Vector Multiply Word High Signed, Saturate, Fractional (to Accumulator), SPEPEM p5-186)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwhssfa, Ifx_Write);
++     break;
+   case 0x46f:
+      // evmwhsmfa (Vector Multiply Word High Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-184)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14429,6 +14636,10 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x473:
++     // evmwssfa (Vector Multiply Word Signed, Saturate, Fractional (to Accumulator), SPEPEM p5-205)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwssfa, Ifx_Write);
++     break;
+   case 0x47b:
+      // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-199)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14460,6 +14671,42 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x500:
++     // evmheusiaaw (Vector Multiply Half Words, Even, Unsigned, Saturate, Integer and Accumulate into Words, SPEPEM p5-158)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmheusiaaw, Ifx_Modify);
++     break;
++  case 0x501:
++     // evmhessiaaw (Vector Multiply Half Words, Even, Signed, Saturate, Integer and Accumulate into Words, SPEPEM p5-153)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhessiaaw, Ifx_Modify);
++     break;
++  case 0x503:
++     // evmhessfaaw (Vector Multiply Half Words, Even, Signed, Saturate, Fractional and Accumulate into Words, SPEPEM p5-151)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhessfaaw, Ifx_Modify);
++     break;
++  case 0x504:
++     // evmhousiaaw (Vector Multiply Half Words, Odd, Unsigned, Saturate, Integer and Accumulate into Words, SPEPEM p5-181)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhousiaaw, Ifx_Modify);
++     break;
++  case 0x505:
++     // evmhossiaaw (Vector Multiply Half Words, Odd, Signed, Saturate, Integer and Accumulate into Words, SPEPEM p5-176)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhossiaaw, Ifx_Modify);
++     break;
++  case 0x507:
++     // evmhossfaaw (Vector Multiply Half Words, Odd, Signed, Saturate, Fractional and Accumulate into Words, SPEPEM p5-174)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhossfaaw, Ifx_Modify);
++     break;
++  case 0x580:
++     // evmheusianw (Vector Multiply Half Words, Even, Unsigned, Saturate, Integer and Accumulate Negative into Words, SPEPEM p5-159)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmheusianw, Ifx_Modify);
++     break;
++  case 0x581:
++     // evmhessianw (Vector Multiply Half Words, Even, Signed, Saturate, Integer and Accumulate Negative into Words, SPEPEM p5-154)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhessianw, Ifx_Modify);
++     break;
++  case 0x583:
++     // evmhessfanw (Vector Multiply Half Words, Even, Signed, Saturate, Fractional and Accumulate Negative into Words, SPEPEM p5-152)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhessfanw, Ifx_Modify);
++     break;
+   case 0x50b:
+      // evmhesmfaaw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate into Words, SPEPEM p5-167)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14778,6 +15025,10 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x553:
++     // evmwssfaa (Vector Multiply Word Signed, Saturate, Fractional and Accumulate, SPEPEM p5-206)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwssfaa, Ifx_Modify);
++     break;
+   case 0x55b:
+      // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14809,6 +15060,18 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x584:
++     // evmhousianw (Vector Multiply Half Words, Odd, Unsigned, Saturate, Integer and Accumulate Negative into Words, SPEPEM p5-182)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhousianw, Ifx_Modify);
++     break;
++  case 0x585:
++     // evmhossianw (Vector Multiply Half Words, Odd, Signed, Saturate, Integer and Accumulate Negative into Words, SPEPEM p5-177)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhossianw, Ifx_Modify);
++     break;
++  case 0x587:
++     // evmhossfanw (Vector Multiply Half Words, Odd, Signed, Saturate, Fractional and Accumulate Negative into Words, SPEPEM p5-175)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhossfanw, Ifx_Modify);
++     break;
+   case 0x58b:
+      // evmhesmfanw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate Negative into Words, SPEPEM p5-168)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14871,6 +15134,10 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x5d3:
++     // evmwssfan (Vector Multiply Word Signed, Saturate, Fractional and Accumulate Negative, SPEPEM p5-207)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwssfan, Ifx_Modify);
++     break;
+   case 0x5db:
+      // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -14995,6 +15262,14 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x540:
++     // evmwlusiaaw (Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate in Words, SPEPEM p5-197)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwlusiaaw, Ifx_Modify);
++     break;
++  case 0x541:
++     // evmwlssiaaw (Vector Multiply Word Low Signed, Saturate, Integer and Accumulate in Words, SPEPEM p5-191)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwlssiaaw, Ifx_Modify);
++     break;
+   case 0x5af:
+      // evmhogsmfan (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-161)
+      args = mkIRExprVec_4 ( mkU32( ACC_off ),
+@@ -15026,106 +15301,20 @@ static Bool dis_spe_ACC_based_fractional_multiply_insns ( UInt theInstr )
+      /* execute the dirty call, side-effecting guest state */
+      stmt( IRStmt_Dirty(d) );
+      break;
++  case 0x5c0:
++     // evmwlusianw (Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate Negative in Words, SPEPEM p5-198)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwlusianw, Ifx_Modify);
++     break;
++  case 0x5c1:
++     // evmwlssianw (Vector Multiply Word Low Signed, Saturate, Integer and Accumulate Negative in Words, SPEPEM p5-193)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwlssianw, Ifx_Modify);
++     break;
+   default:
+      return False;
+   }
+   return True;
+ }
+ 
+-#define PREPARE_DIRTY_HELPER_CALL_rDrArB(insn)                \
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),                  \
+-                            mkU32( rA_off ),                  \
+-                            mkU32( rB_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr, rB_addr );   \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 3;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = Ifx_Write;                        \
+-     d->fxState[0].offset = rD_off;                           \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Read;                         \
+-     d->fxState[1].offset = rA_off;                           \
+-     d->fxState[1].size   = sizeof(ULong);                    \
+-     d->fxState[2].fx     = Ifx_Read;                         \
+-     d->fxState[2].offset = rB_off;                           \
+-     d->fxState[2].size   = sizeof(ULong);                    \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+-#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                   \
+-     args = mkIRExprVec_2 ( mkU32( rA_off ),                       \
+-                            mkU32( rB_off ) );                     \
+-     d = unsafeIRDirty_1_N (val,                                   \
+-                            0 /* regparms */,                      \
+-                            "spe_dirtyhelper_" #insn,              \
+-                            &spe_dirtyhelper_##insn,               \
+-                            args);                                 \
+-     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr ); \
+-     /* declare guest state effects */                             \
+-     d->needsBBP = True;                                           \
+-     d->nFxState = 2;                                              \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));                   \
+-     d->fxState[0].fx     = Ifx_Read;                              \
+-     d->fxState[0].offset = rA_off;                                \
+-     d->fxState[0].size   = sizeof(ULong);                         \
+-     d->fxState[1].fx     = Ifx_Read;                              \
+-     d->fxState[1].offset = rB_off;                                \
+-     d->fxState[1].size   = sizeof(ULong);                         \
+-                                                                   \
+-     /* execute the dirty call, side-effecting guest state */      \
+-     stmt( IRStmt_Dirty(d) );                                      \
+-     UPDATE_CR(val);
+-
+-#define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
+-     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
+-                            mkU32( rB_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rB_addr );            \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 2;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = Ifx_Write;                        \
+-     d->fxState[0].offset = rD_off;                           \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Read;                         \
+-     d->fxState[1].offset = rB_off;                           \
+-     d->fxState[1].size   = sizeof(ULong);                    \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+-#define PREPARE_DIRTY_HELPER_CALL_rDrA(insn)                  \
+-     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
+-                            mkU32( rA_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 2;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = Ifx_Write;                        \
+-     d->fxState[0].offset = rD_off;                           \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Read;                         \
+-     d->fxState[1].offset = rA_off;                           \
+-     d->fxState[1].size   = sizeof(ULong);                    \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+ #undef UPDATE_CR
+ /* Update the CR in the guest state with the returned bit-value */
+ #define UPDATE_CR(val) putCRbit ( CR_field * 4 + 1, mkexpr ( val ) );
+@@ -21665,6 +21854,7 @@ DisResult disInstr_PPC_WRK (
+       case 0x20c: // evrndw
+       case 0x20d: // evcntlzw
+       case 0x20e: // evcntlsw
++      case 0x20f: // brinc
+       case 0x211: // evand
+       case 0x212: // evandc
+       case 0x216: // evxor
+@@ -21734,14 +21924,31 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_ACC_based_multiply_insns( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x403: // evmhessf
++      case 0x407: // evmhossf
+       case 0x40b: // evmhesmf
+       case 0x40f: // evmhosmf
++      case 0x423: // evmhessfa
++      case 0x427: // evmhossfa
+       case 0x42b: // evmhesmfa
+       case 0x42f: // evmhosmfa
++      case 0x447: // evmwhssf
+       case 0x44f: // evmwhsmf
++      case 0x453: // evmwssf
++      case 0x467: // evmwhssfa
+       case 0x46f: // evmwhsmfa
+       case 0x45b: // evmwsmf
++      case 0x473: // evmwssfa
+       case 0x47b: // evmwsmfa
++      case 0x500: // evmheusiaaw
++      case 0x501: // evmhessiaaw
++      case 0x503: // evmhessfaaw
++      case 0x504: // evmhousiaaw
++      case 0x505: // evmhossiaaw
++      case 0x507: // evmhossfaaw
++      case 0x580: // evmheusianw
++      case 0x581: // evmhessianw
++      case 0x583: // evmhessfanw
+       case 0x50b: // evmhesmfaaw
+       case 0x50f: // evmhosmfaaw
+       case 0x528: // evmhegumiaa
+@@ -21750,8 +21957,14 @@ DisResult disInstr_PPC_WRK (
+       case 0x52c: // evmhogumiaa
+       case 0x52d: // evmhogsmiaa
+       case 0x52f: // evmhogsmfaa
++      case 0x540: // evmwlusiaaw
++      case 0x541: // evmwlssiaaw
++      case 0x587: // evmhossfanw
++      case 0x584: // evmhousianw
++      case 0x585: // evmhossianw
+       case 0x58b: // evmhesmfanw
+       case 0x58f: // evmhosmfanw
++      case 0x553: // evmwssfaa
+       case 0x55b: // evmwsmfaa
+       case 0x5a8: // evmhegumian
+       case 0x5a9: // evmhegsmian
+@@ -21759,14 +21972,19 @@ DisResult disInstr_PPC_WRK (
+       case 0x5ac: // evmhogumian
+       case 0x5ad: // evmhogsmian
+       case 0x5af: // evmhogsmfan
++      case 0x5c0: // evmwlusianw
++      case 0x5c1: // evmwlssianw
++      case 0x5d3: // evmwssfan
+       case 0x5db: // evmwsmfan
+          if (!allow_SPE) goto decode_noSPE;
+-         if (dis_spe_ACC_based_fractional_multiply_insns( theInstr )) goto decode_success;
++         if (dis_spe_ACC_based_multiply_insns_via_dirty_helpers( theInstr )) goto decode_success;
+          goto decode_failure;
+       case 0x4c4: // evmra
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_initialize_ACC( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x4c2: // evsubfusiaaw
++      case 0x4c3: // evsubfssiaaw
+       case 0x4c8: // evaddumiaaw
+       case 0x4c9: // evaddsmiaaw
+       case 0x4ca: // evsubfumiaaw
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index fe4c44e..ca0b05c 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -17468,6 +17468,2083 @@ SPE_DEFN_crfDrArB(evfststlt, __ev64_fs__, __ev64_fs__,
+  { 0xa, {  1.17,   +1.0  },  { 11.99, -1.0 }, }, // ch = 1, cl = 0
+  { 0x0, {  17.36,  +5.2  },  { 11.99, -1.0 }, }) // ch = 0, cl = 0
+ 
++#define rA_type_ZERO
++#define rD_type_ZERO
++
++#define evmrDrArB_BASELINE_DUMPER(rD_type, rD) \
++ printf ("  (" #rD_type ") { 0x%x, 0x%x },\n", __ev_get_u32 (rD, 0), __ev_get_u32 (rD, 1));
++
++#define evmrDrArB_VERIFY(insn, rD)                                                    \
++ VERIFY(__ev_get_u32 (rD, 0) == __ev_get_u32 (insn##_baseline[i], 0), "i = %d\n", i); \
++ VERIFY(__ev_get_u32 (rD, 1) == __ev_get_u32 (insn##_baseline[i], 1), "i = %d\n", i);
++
++#ifdef __SPE__
++#define evmrDrArB(insn, rD_type, rA_type, rB_type, rAvals, rBvals, generate_baseline, verify_acc_written) \
++int insn##_asm(void)                                                                                      \
++{                                                                                                         \
++  int failures = 0;                                                                                       \
++                                                                                                          \
++  register rD_type regD asm ("30");                                                                       \
++  register rA_type regA asm ("29");                                                                       \
++  register rB_type regB asm ("28");                                                                       \
++  int32_t  i;                                                                                             \
++                                                                                                          \
++  /* Initialize the ACC. */                                                                               \
++  regA = rA_type_ZERO;                                                                                    \
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));                                   \
++  VERIFY(__ev_convert_u64 (regD) == 0x0);                                                                 \
++                                                                                                          \
++  for (i = 0; i < NELTS(rAvals); i++) {                                                                   \
++                                                                                                          \
++    regA = rAvals[i];                                                                                     \
++    regB = rBvals[i];                                                                                     \
++                                                                                                          \
++    asm volatile (#insn " %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));          \
++    if (generate_baseline) {                                                                              \
++      evmrDrArB_BASELINE_DUMPER(rD_type, regD);                                                           \
++    } else {                                                                                              \
++      evmrDrArB_VERIFY(insn, regD);                                                                       \
++      if (verify_acc_written) {                                                                           \
++        /* Verify that the instruction wrote into the ACC: */                                             \
++        regD = rD_type_ZERO;                                                                              \
++        asm volatile ("evaddumiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regD));                       \
++        evmrDrArB_VERIFY(insn, regD);                                                                     \
++      }                                                                                                   \
++    }                                                                                                     \
++  }                                                                                                       \
++  return failures;                                                                                        \
++}                                                                                                         \
++TEST_SPE_DECL(insn##_asm, #insn);
++#else
++#define evmrDrArB(insn, rD_type, rA_type, rB_type, rAvals, rBvals, generate_baseline, verify_acc_written) \
++int insn##_asm(void)                                                                                      \
++{                                                                                                         \
++  int failures = 0;                                                                                       \
++  return failures;                                                                                        \
++}                                                                                                         \
++TEST_SPE_DECL(insn##_asm, #insn);
++#endif /* __SPE__ */
++
++#ifdef __SPE__
++__ev64_u32__ evmhessf_baseline[] = {
++
++  (__ev64_u32__) { 0x99ddf5c, 0xc14cd51a },
++  (__ev64_u32__) { 0x30ccd794, 0x1c339202 },
++  (__ev64_u32__) { 0x6615d464, 0xcbb7af10 },
++  (__ev64_u32__) { 0xfc8aff34, 0xf41f410 },
++  (__ev64_u32__) { 0x6f36c00, 0xde3eb540 },
++  (__ev64_u32__) { 0xf84bba8e, 0xe3d2a7f0 },
++  (__ev64_u32__) { 0x17609616, 0x33de011c },
++  (__ev64_u32__) { 0xf1452770, 0xc59f8c78 },
++  (__ev64_u32__) { 0xae453988, 0xe4287500 },
++  (__ev64_u32__) { 0x1898dec8, 0x22b2f70 },
++  (__ev64_u32__) { 0x38306c8, 0xb7bf7280 },
++  (__ev64_u32__) { 0xf12c955c, 0xe8e5f398 },
++  (__ev64_u32__) { 0xc7ed93dc, 0x152e7f6c },
++  (__ev64_u32__) { 0x34d6823c, 0xedd59090 },
++  (__ev64_u32__) { 0xd8a50b02, 0xee509478 },
++  (__ev64_u32__) { 0x1f14e580, 0xfb3f0e2 },
++  (__ev64_u32__) { 0xe6cf9ede, 0xcab459a },
++  (__ev64_u32__) { 0xf94dc254, 0xfdc14028 },
++  (__ev64_u32__) { 0xfb100c80, 0xe6348a20 },
++  (__ev64_u32__) { 0xf7d3f110, 0xb500dada },
++  (__ev64_u32__) { 0x28eee440, 0xe3d750ac },
++  (__ev64_u32__) { 0x2c0bf140, 0xd0007550 },
++  (__ev64_u32__) { 0xf285ff1a, 0xfea28ec },
++  (__ev64_u32__) { 0xcf221722, 0x119af240 },
++  (__ev64_u32__) { 0xee6d0e5a, 0xfa9cbb9e },
++  (__ev64_u32__) { 0xc4f18e20, 0xf1c87c0 },
++  (__ev64_u32__) { 0xa8f2fe1e, 0xb970296 },
++  (__ev64_u32__) { 0xee770350, 0xa8fab898 },
++  (__ev64_u32__) { 0xfa6f9ed0, 0x5b01730 },
++  (__ev64_u32__) { 0x3af36368, 0xffdfdb36 },
++  (__ev64_u32__) { 0xe7f55138, 0xbda7c9e0 },
++  (__ev64_u32__) { 0xf4bfd1f6, 0xf82c0570 },
++  (__ev64_u32__) { 0xdbe9100, 0x11972dcc },
++  (__ev64_u32__) { 0xe324fef4, 0xe1effd68 },
++  (__ev64_u32__) { 0x24cda5cc, 0x1fc4d006 },
++  (__ev64_u32__) { 0x1a2fe090, 0xfcda914c },
++  (__ev64_u32__) { 0xd9858318, 0x25aa8ad2 },
++  (__ev64_u32__) { 0xbddfb6ec, 0xc0769468 },
++  (__ev64_u32__) { 0x291470ec, 0x43d0a138 },
++  (__ev64_u32__) { 0x411dea44, 0xfd753a14 },
++  (__ev64_u32__) { 0x3aaaf150, 0xcf97b6fc },
++  (__ev64_u32__) { 0x57ea4fda, 0x59807dc0 },
++  (__ev64_u32__) { 0xe452bf10, 0x138a8eee },
++  (__ev64_u32__) { 0x3a8d9ab2, 0xf55b8964 },
++  (__ev64_u32__) { 0x967948, 0x26c79d8a },
++  (__ev64_u32__) { 0xb871e270, 0xfe09d574 },
++  (__ev64_u32__) { 0x450a3d96, 0xf5948686 },
++  (__ev64_u32__) { 0xdc8a9164, 0xc037bd22 },
++  (__ev64_u32__) { 0xe79241a0, 0x27f5a1fc },
++  (__ev64_u32__) { 0x641960c, 0xaac5790 },
++  (__ev64_u32__) { 0xfb377dd6, 0xf2de462e },
++  (__ev64_u32__) { 0xca672846, 0x5195f820 },
++  (__ev64_u32__) { 0x27d9090, 0xf26a7426 },
++  (__ev64_u32__) { 0x70e4c50, 0x293d62e8 },
++  (__ev64_u32__) { 0xef1abd66, 0xc5988008 },
++  (__ev64_u32__) { 0x1ac49e04, 0xf09ca91e },
++  (__ev64_u32__) { 0xe10013f6, 0xa97eae1c },
++  (__ev64_u32__) { 0x13365b28, 0xc8066ee0 },
++  (__ev64_u32__) { 0xffaf5c80, 0x284c125a },
++  (__ev64_u32__) { 0x252668e2, 0x1dd5b888 },
++  (__ev64_u32__) { 0xe4c51498, 0xd9e0741a },
++  (__ev64_u32__) { 0xdec651e0, 0x2fc687c8 },
++  (__ev64_u32__) { 0xebbd5b20, 0xdc51a4b0 },
++  (__ev64_u32__) { 0x9f2db04, 0xfe424d5a },
++  (__ev64_u32__) { 0x47c04930, 0xfa052aac },
++  (__ev64_u32__) { 0x15ca6d64, 0x1e1ae398 },
++  (__ev64_u32__) { 0xdf8948ea, 0x4ba51e0a },
++  (__ev64_u32__) { 0x33e93112, 0xfc3befb4 },
++  (__ev64_u32__) { 0xe2bbaaa8, 0xffe017f0 },
++  (__ev64_u32__) { 0xa83af9a, 0x34fa3a0 },
++  (__ev64_u32__) { 0xc1ebdb98, 0xe05e06f2 },
++  (__ev64_u32__) { 0xfd2e0b74, 0x69b177b2 },
++  (__ev64_u32__) { 0x138616aa, 0x1ab28d0 },
++  (__ev64_u32__) { 0xabbbe08, 0xd87511d4 },
++  (__ev64_u32__) { 0x63d92660, 0x1014c880 },
++  (__ev64_u32__) { 0x12675978, 0xf10e7932 },
++  (__ev64_u32__) { 0xffe92330, 0x1dd8780 },
++  (__ev64_u32__) { 0xdbff66f6, 0xe825ce10 },
++  (__ev64_u32__) { 0x8d009058, 0x17475d5c },
++  (__ev64_u32__) { 0xe487b8e, 0x36c320f4 },
++  (__ev64_u32__) { 0xf6a3abc0, 0x975801bc },
++  (__ev64_u32__) { 0xeddd7470, 0x8162f98 },
++  (__ev64_u32__) { 0x1199e646, 0x144d3fe0 },
++  (__ev64_u32__) { 0x2f224440, 0xcf629f48 },
++  (__ev64_u32__) { 0x47610b4, 0x20822358 },
++  (__ev64_u32__) { 0xfe62f0d6, 0x4754c8dc },
++  (__ev64_u32__) { 0xb70533c, 0x30390e40 },
++  (__ev64_u32__) { 0xb3d3e8c0, 0x3dc9e6f0 },
++  (__ev64_u32__) { 0xff89cabe, 0xc6992c38 },
++  (__ev64_u32__) { 0xe93ec6e0, 0x693aa84 },
++  (__ev64_u32__) { 0xf39bca42, 0x1dc18b8c },
++  (__ev64_u32__) { 0xe4d17424, 0x10212a70 },
++  (__ev64_u32__) { 0x1b57aba0, 0x42423ee8 },
++  (__ev64_u32__) { 0x761dbe8, 0xd6cf108 },
++  (__ev64_u32__) { 0x406023f0, 0x54176cb4 },
++  (__ev64_u32__) { 0xb361be82, 0xe74597aa },
++  (__ev64_u32__) { 0xc6f75290, 0x9dd08fe0 },
++  (__ev64_u32__) { 0x648456, 0xe99395e0 },
++  (__ev64_u32__) { 0xbb9b6844, 0x30b9d2e2 },
++  (__ev64_u32__) { 0xec2fc678, 0xf4d88e78 },
++  (__ev64_u32__) { 0x2d1a8c0, 0xe54ccd10 },
++  (__ev64_u32__) { 0xc3d8de08, 0xd7a39616 },
++  (__ev64_u32__) { 0x20698950, 0x1269c05a },
++  (__ev64_u32__) { 0xfe557850, 0xf4417810 },
++  (__ev64_u32__) { 0x48e0d996, 0xe8c37f00 },
++  (__ev64_u32__) { 0x396f4ce0, 0xdf944028 },
++  (__ev64_u32__) { 0x2a496770, 0x1d0e8120 },
++  (__ev64_u32__) { 0xeff4ffb2, 0xc4c56f4e },
++  (__ev64_u32__) { 0x51ff2e8, 0x2a19f26 },
++  (__ev64_u32__) { 0x4d932680, 0x2b039bd0 },
++  (__ev64_u32__) { 0xc45770ec, 0x15b4e6e8 },
++  (__ev64_u32__) { 0xfef16f4, 0xfaaf8ed0 },
++  (__ev64_u32__) { 0x657e0dac, 0x33d028ee },
++  (__ev64_u32__) { 0x4c856cf8, 0x2f017850 },
++  (__ev64_u32__) { 0x22558370, 0x10b1b75e },
++  (__ev64_u32__) { 0xf16eadd8, 0xf7404a54 },
++  (__ev64_u32__) { 0x789c0d0, 0x9f334c8 },
++  (__ev64_u32__) { 0xd5e92282, 0xc4923c },
++  (__ev64_u32__) { 0xe50191b0, 0xe6cfb710 },
++  (__ev64_u32__) { 0xfd7df5ae, 0xf860fb30 },
++  (__ev64_u32__) { 0xfc896000, 0xe3fc8250 },
++  (__ev64_u32__) { 0xb139cbda, 0x1832ab58 },
++  (__ev64_u32__) { 0xf8e1149e, 0x1ac926dc },
++  (__ev64_u32__) { 0x14e3ff32, 0xfa4ed0b0 },
++  (__ev64_u32__) { 0x17438bb0, 0xab37b5b6 },
++  (__ev64_u32__) { 0x3af34b26, 0x66ebf92c },
++  (__ev64_u32__) { 0xfbee0a90, 0xf0287110 },
++  (__ev64_u32__) { 0x58c36320, 0x637ad6f4 },
++  (__ev64_u32__) { 0xf6d2c124, 0x9bcb790 },
++  (__ev64_u32__) { 0x5da701c4, 0x351bc24c },
++  (__ev64_u32__) { 0xb2ca2b50, 0x6d08c18 },
++  (__ev64_u32__) { 0x336ba574, 0x5ccd2a0 },
++  (__ev64_u32__) { 0x30ce78, 0xf84b994 },
++  (__ev64_u32__) { 0x91a689d8, 0xfecdb488 },
++  (__ev64_u32__) { 0xfd531b2a, 0xf617806a },
++  (__ev64_u32__) { 0x113acd24, 0x75b307c },
++  (__ev64_u32__) { 0x124ac5b6, 0xb1019188 },
++  (__ev64_u32__) { 0x449c5860, 0xccfa7d40 },
++  (__ev64_u32__) { 0xec534ce0, 0x914f574 },
++  (__ev64_u32__) { 0xcd10c7c, 0xe7a9ecfe },
++  (__ev64_u32__) { 0x5e03f8, 0xe906c12c },
++  (__ev64_u32__) { 0xc99c8e72, 0xd96c9ce },
++  (__ev64_u32__) { 0x44413a4, 0x91f3cf4 },
++  (__ev64_u32__) { 0xd673f3e8, 0xfe695188 },
++  (__ev64_u32__) { 0xff139f4e, 0x4b8a13b0 },
++  (__ev64_u32__) { 0xe447e4c0, 0xf12e2a00 },
++  (__ev64_u32__) { 0xf1bde20, 0x24460e20 },
++  (__ev64_u32__) { 0xd9e240d0, 0xd28f3792 },
++  (__ev64_u32__) { 0x24a31434, 0xffa3d220 },
++  (__ev64_u32__) { 0x2be17b8, 0xe11bd068 },
++  (__ev64_u32__) { 0x591db1c0, 0x3e985540 },
++  (__ev64_u32__) { 0xd4f09fb6, 0xe4a1f7f8 },
++  (__ev64_u32__) { 0xfec993c6, 0xfbec70f8 },
++  (__ev64_u32__) { 0x410b71fc, 0xfb2af9b6 },
++  (__ev64_u32__) { 0xab164a0, 0xd70bd7ce },
++  (__ev64_u32__) { 0xfd0915ea, 0xe0c8d360 },
++  (__ev64_u32__) { 0xe4d33744, 0x244cab48 },
++  (__ev64_u32__) { 0xeb3a7a18, 0xe4671cf6 },
++  (__ev64_u32__) { 0x23a848e6, 0xee2fc6ac },
++  (__ev64_u32__) { 0xa173e2e0, 0xa18ea0e4 },
++  (__ev64_u32__) { 0x1b6884c, 0xf0982d1a },
++  (__ev64_u32__) { 0xa5837b4, 0xe7794120 },
++  (__ev64_u32__) { 0xf21af0ba, 0x1aa69576 },
++  (__ev64_u32__) { 0xfb1a6660, 0x4c0af23e },
++  (__ev64_u32__) { 0xff623f3c, 0xc5b2dde0 },
++  (__ev64_u32__) { 0xf6482cd8, 0xf5dd6b50 },
++  (__ev64_u32__) { 0x7035410, 0xa9b707d8 },
++  (__ev64_u32__) { 0x4685e524, 0x3ac4fcce },
++  (__ev64_u32__) { 0x1fc1434, 0x3c81db30 },
++  (__ev64_u32__) { 0x2f14e3e0, 0xc87c7b3c },
++  (__ev64_u32__) { 0xeecf6664, 0xc48ebf60 },
++  (__ev64_u32__) { 0x384cfb4, 0x2c06b87e },
++  (__ev64_u32__) { 0x4ba7580, 0xb50e03c },
++  (__ev64_u32__) { 0x3a5db544, 0xd33248 },
++  (__ev64_u32__) { 0xd0f14d24, 0xf9aec538 },
++  (__ev64_u32__) { 0xebd3521c, 0xef3aa068 },
++  (__ev64_u32__) { 0x3cd57866, 0x5252eb50 },
++  (__ev64_u32__) { 0xe13a8b08, 0xec363cce },
++  (__ev64_u32__) { 0x2e0f4fa0, 0x9023540 },
++  (__ev64_u32__) { 0xe49f10ae, 0xb77c4a00 },
++  (__ev64_u32__) { 0x16188b10, 0x12f4bd12 },
++  (__ev64_u32__) { 0xef95ebae, 0xdf33c0c0 },
++  (__ev64_u32__) { 0x10d58ee, 0x137f86dc },
++  (__ev64_u32__) { 0xca2eb07e, 0xd91e5ed2 },
++  (__ev64_u32__) { 0xe01b425c, 0x18a3f20 },
++  (__ev64_u32__) { 0x2515b3e4, 0xfa9c9d66 },
++  (__ev64_u32__) { 0xfeba6c02, 0xd97d2af8 },
++  (__ev64_u32__) { 0xb7ab8764, 0xf5fd2196 },
++  (__ev64_u32__) { 0xc5ffd0e, 0xd94e80d0 },
++  (__ev64_u32__) { 0xc5f7b90, 0x89bbf80 },
++  (__ev64_u32__) { 0x3b4c2f0, 0x6f7dd150 },
++  (__ev64_u32__) { 0x2933c418, 0xfbead7c },
++  (__ev64_u32__) { 0x25e3a768, 0xec4d274a },
++  (__ev64_u32__) { 0xff5d1840, 0xfad392cc },
++  (__ev64_u32__) { 0x4beb06ea, 0x193ea3bc },
++  (__ev64_u32__) { 0x109fdda6, 0xd1144c1a },
++  (__ev64_u32__) { 0xf63f82ac, 0xc7757c00 },
++  (__ev64_u32__) { 0xc3284b1a, 0x260b0a78 },
++  (__ev64_u32__) { 0x8eec7c70, 0xf1144722 },
++  (__ev64_u32__) { 0xdfdd2512, 0x2d07506c },
++  (__ev64_u32__) { 0x5083920, 0x413c0cdc },
++  (__ev64_u32__) { 0x50e6c212, 0x13035ac8 },
++  (__ev64_u32__) { 0xf31b400, 0xf8663b3c },
++  (__ev64_u32__) { 0x1f4ba200, 0xd4e74a80 },
++  (__ev64_u32__) { 0x8d60ae78, 0xb228b5f4 },
++  (__ev64_u32__) { 0xfe5dd898, 0x19a02bd0 },
++  (__ev64_u32__) { 0xc8b34980, 0x2395e3f0 },
++  (__ev64_u32__) { 0x13007860, 0x3ea35558 },
++  (__ev64_u32__) { 0x1ef4df46, 0xb730960 },
++  (__ev64_u32__) { 0x7015e594, 0x1507f8be },
++  (__ev64_u32__) { 0xfeead094, 0x1b6aae8 },
++  (__ev64_u32__) { 0xdfc35c18, 0x3df0e206 },
++  (__ev64_u32__) { 0x3a1ceda2, 0xfefe8dd0 },
++  (__ev64_u32__) { 0x1703880, 0xe46c7016 },
++  (__ev64_u32__) { 0x17c21fb6, 0xf829c1b0 },
++  (__ev64_u32__) { 0x7763bff4, 0xefaac9f0 },
++  (__ev64_u32__) { 0xae0474d4, 0xfe87808e },
++  (__ev64_u32__) { 0x3bfe38, 0xe6fb27c4 },
++  (__ev64_u32__) { 0xe1674c20, 0xfc40aff0 },
++  (__ev64_u32__) { 0x537dd454, 0x50708340 },
++  (__ev64_u32__) { 0x3406f840, 0x101973a4 },
++  (__ev64_u32__) { 0xe1d07b2, 0xa4735f84 },
++  (__ev64_u32__) { 0xf5695480, 0xf8f823a2 },
++  (__ev64_u32__) { 0xb8e4da5e, 0xece884d0 },
++  (__ev64_u32__) { 0xd158c3c, 0x50365ee8 },
++  (__ev64_u32__) { 0x21ca15f2, 0xf1fae956 },
++  (__ev64_u32__) { 0xc7d5120, 0xffe61000 },
++  (__ev64_u32__) { 0xea729608, 0x4ee8b7bc },
++  (__ev64_u32__) { 0x34940548, 0xaab39dc },
++  (__ev64_u32__) { 0x1171476, 0xb1a5d924 },
++  (__ev64_u32__) { 0x32ac8170, 0xdb5e50a6 },
++  (__ev64_u32__) { 0xf604b328, 0xe0c44b22 },
++  (__ev64_u32__) { 0x257d4810, 0x9a5ab5d2 },
++  (__ev64_u32__) { 0xf7a0cb40, 0xf7188d9c },
++  (__ev64_u32__) { 0xce852dd0, 0xf8b34328 },
++  (__ev64_u32__) { 0xb92d566e, 0xd1d9e9ce },
++  (__ev64_u32__) { 0xfe1b11cc, 0xe8ebe780 },
++  (__ev64_u32__) { 0x10664a8, 0x18db1044 },
++  (__ev64_u32__) { 0xfa3968ba, 0x6fe6cc },
++  (__ev64_u32__) { 0xd1a715d8, 0xfeb850f8 },
++  (__ev64_u32__) { 0x22e8a888, 0xdef4eb4 },
++  (__ev64_u32__) { 0x79ec3e0, 0xb8d6316a },
++  (__ev64_u32__) { 0x3ec8308, 0x8fa553e },
++  (__ev64_u32__) { 0xf0b4d5b8, 0xfc0f286a },
++  (__ev64_u32__) { 0x3d3a2c56, 0x181a32a4 },
++  (__ev64_u32__) { 0xeb88afe6, 0xdd5e1e20 },
++  (__ev64_u32__) { 0x625d195a, 0xe12802f4 },
++  (__ev64_u32__) { 0xae98abbe, 0xd3ae1b4 },
++  (__ev64_u32__) { 0xdc92f1d8, 0xc74ca604 },
++  (__ev64_u32__) { 0xea207a96, 0xf337bd18 },
++  (__ev64_u32__) { 0x6de5728, 0xff143620 },
++  (__ev64_u32__) { 0x518a9bac, 0xfd7ffbe4 },
++  (__ev64_u32__) { 0xfad6066a, 0xe942432c },
++  (__ev64_u32__) { 0x128d1a70, 0x212f9532 },
++  (__ev64_u32__) { 0xed3c7fa8, 0xfd18e400 },
++  (__ev64_u32__) { 0xb4cbb010, 0xbbeca620 },
++
++};
++#endif // __SPE__
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++evmrDrArB(evmhessf, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16, rB4u16, 0, 0)
++
++#ifdef __SPE__
++__ev64_u32__ *evmhessfa_baseline = evmhessf_baseline;
++#endif // __SPE__
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++evmrDrArB(evmhessfa, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16, rB4u16, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evmhessfaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x99ddf5c, 0xc14cd51a },
++  (__ev64_u32__) { 0x3a6ab6f0, 0xdd80671c },
++  (__ev64_u32__) { 0x7fffffff, 0xa938162c },
++  (__ev64_u32__) { 0x7c8aff33, 0xb87a0a3c },
++  (__ev64_u32__) { 0x7fffffff, 0x96b8bf7c },
++  (__ev64_u32__) { 0x784bba8d, 0x80000000 },
++  (__ev64_u32__) { 0x7fffffff, 0xb3de011c },
++  (__ev64_u32__) { 0x7145276f, 0x80000000 },
++  (__ev64_u32__) { 0x1f8a60f7, 0x80000000 },
++  (__ev64_u32__) { 0x38233fbf, 0x822b2f70 },
++  (__ev64_u32__) { 0x3ba64687, 0x80000000 },
++  (__ev64_u32__) { 0x2cd2dbe3, 0x80000000 },
++  (__ev64_u32__) { 0xf4c06fbf, 0x952e7f6c },
++  (__ev64_u32__) { 0x2996f1fb, 0x83040ffc },
++  (__ev64_u32__) { 0x23bfcfd, 0x80000000 },
++  (__ev64_u32__) { 0x2150e27d, 0x8fb3f0e2 },
++  (__ev64_u32__) { 0x820815b, 0x9c5f367c },
++  (__ev64_u32__) { 0x16e43af, 0x9a2076a4 },
++  (__ev64_u32__) { 0xfc7e502f, 0x805500c4 },
++  (__ev64_u32__) { 0xf452413f, 0x80000000 },
++  (__ev64_u32__) { 0x1d41257f, 0x80000000 },
++  (__ev64_u32__) { 0x494d16bf, 0x80000000 },
++  (__ev64_u32__) { 0x3bd315d9, 0x8fea28ec },
++  (__ev64_u32__) { 0xaf52cfb, 0xa1851b2c },
++  (__ev64_u32__) { 0xf9623b55, 0x9c21d6ca },
++  (__ev64_u32__) { 0xbe53c975, 0xab3e5e8a },
++  (__ev64_u32__) { 0x80000000, 0xb6d56120 },
++  (__ev64_u32__) { 0x80000000, 0x80000000 },
++  (__ev64_u32__) { 0x80000000, 0x85b01730 },
++  (__ev64_u32__) { 0xbaf36368, 0x858ff266 },
++  (__ev64_u32__) { 0xa2e8b4a0, 0x80000000 },
++  (__ev64_u32__) { 0x97a88696, 0x80000000 },
++  (__ev64_u32__) { 0xa5671796, 0x91972dcc },
++  (__ev64_u32__) { 0x888c168a, 0x80000000 },
++  (__ev64_u32__) { 0xad59bc56, 0x9fc4d006 },
++  (__ev64_u32__) { 0xc7899ce6, 0x9c9f6152 },
++  (__ev64_u32__) { 0xa10f1ffe, 0xc249ec24 },
++  (__ev64_u32__) { 0x80000000, 0x82c0808c },
++  (__ev64_u32__) { 0xa91470ec, 0xc69121c4 },
++  (__ev64_u32__) { 0xea325b30, 0xc4065bd8 },
++  (__ev64_u32__) { 0x24dd4c80, 0x939e12d4 },
++  (__ev64_u32__) { 0x7cc79c5a, 0xed1e9094 },
++  (__ev64_u32__) { 0x611a5b6a, 0xa91f82 },
++  (__ev64_u32__) { 0x7fffffff, 0xf604a8e6 },
++  (__ev64_u32__) { 0x7fffffff, 0x1ccc4670 },
++  (__ev64_u32__) { 0x3871e26f, 0x1ad61be4 },
++  (__ev64_u32__) { 0x7d7c2005, 0x106aa26a },
++  (__ev64_u32__) { 0x5a06b169, 0xd0a25f8c },
++  (__ev64_u32__) { 0x4198f309, 0xf8980188 },
++  (__ev64_u32__) { 0x47da8915, 0x3445918 },
++  (__ev64_u32__) { 0x431206eb, 0xf6229f46 },
++  (__ev64_u32__) { 0xd792f31, 0x47b89766 },
++  (__ev64_u32__) { 0xff6bfc1, 0x3a230b8c },
++  (__ev64_u32__) { 0x17050c11, 0x63606e74 },
++  (__ev64_u32__) { 0x61fc977, 0x28f8ee7c },
++  (__ev64_u32__) { 0x20e4677b, 0x1995979a },
++  (__ev64_u32__) { 0x1e47b71, 0xc31445b6 },
++  (__ev64_u32__) { 0x151ad699, 0x8b1ab496 },
++  (__ev64_u32__) { 0x14ca3319, 0xb366c6f0 },
++  (__ev64_u32__) { 0x39f09bfb, 0xd13c7f78 },
++  (__ev64_u32__) { 0x1eb5b093, 0xab1cf392 },
++  (__ev64_u32__) { 0xfd7c0273, 0xdae37b5a },
++  (__ev64_u32__) { 0xe9395d93, 0xb735200a },
++  (__ev64_u32__) { 0xf32c3897, 0xb5776d64 },
++  (__ev64_u32__) { 0x3aec81c7, 0xaf7c9810 },
++  (__ev64_u32__) { 0x50b6ef2b, 0xcd977ba8 },
++  (__ev64_u32__) { 0x30403815, 0x193c99b2 },
++  (__ev64_u32__) { 0x64296927, 0x15788966 },
++  (__ev64_u32__) { 0x46e513cf, 0x1558a156 },
++  (__ev64_u32__) { 0x5168c369, 0x18a844f6 },
++  (__ev64_u32__) { 0x13549f01, 0xf9064be8 },
++  (__ev64_u32__) { 0x1082aa75, 0x62b7c39a },
++  (__ev64_u32__) { 0x2408c11f, 0x6462ec6a },
++  (__ev64_u32__) { 0x2ec47f27, 0x3cd7fe3e },
++  (__ev64_u32__) { 0x7fffffff, 0x4cecc6be },
++  (__ev64_u32__) { 0x7fffffff, 0x3dfb3ff0 },
++  (__ev64_u32__) { 0x7fe9232f, 0x3fd8c770 },
++  (__ev64_u32__) { 0x5be88a25, 0x27fe9580 },
++  (__ev64_u32__) { 0xe8e91a7d, 0x3f45f2dc },
++  (__ev64_u32__) { 0xf731960b, 0x760913d0 },
++  (__ev64_u32__) { 0xedd541cb, 0xd61158c },
++  (__ev64_u32__) { 0xdbb2b63b, 0x15774524 },
++  (__ev64_u32__) { 0xed4c9c81, 0x29c48504 },
++  (__ev64_u32__) { 0x1c6ee0c1, 0xf927244c },
++  (__ev64_u32__) { 0x20e4f175, 0x19a947a4 },
++  (__ev64_u32__) { 0x1f47e24b, 0x60fe1080 },
++  (__ev64_u32__) { 0x2ab83587, 0x7fffffff },
++  (__ev64_u32__) { 0xde8c1e47, 0x7fffffff },
++  (__ev64_u32__) { 0xde15e905, 0x46992c37 },
++  (__ev64_u32__) { 0xc754afe5, 0x4d2cd6bb },
++  (__ev64_u32__) { 0xbaf07a27, 0x6aee6247 },
++  (__ev64_u32__) { 0x9fc1ee4b, 0x7b0f8cb7 },
++  (__ev64_u32__) { 0xbb1999eb, 0x7fffffff },
++  (__ev64_u32__) { 0xc27b75d3, 0x7fffffff },
++  (__ev64_u32__) { 0x2db99c3, 0x7fffffff },
++  (__ev64_u32__) { 0xb63d5845, 0x674597a9 },
++  (__ev64_u32__) { 0x80000000, 0x5162789 },
++  (__ev64_u32__) { 0x80648456, 0xeea9bd69 },
++  (__ev64_u32__) { 0x80000000, 0x1f63904b },
++  (__ev64_u32__) { 0x80000000, 0x143c1ec3 },
++  (__ev64_u32__) { 0x82d1a8c0, 0xf988ebd3 },
++  (__ev64_u32__) { 0x80000000, 0xd12c81e9 },
++  (__ev64_u32__) { 0xa0698950, 0xe3964243 },
++  (__ev64_u32__) { 0x9ebf01a0, 0xd7d7ba53 },
++  (__ev64_u32__) { 0xe79fdb36, 0xc09b3953 },
++  (__ev64_u32__) { 0x210f2816, 0xa02f797b },
++  (__ev64_u32__) { 0x4b588f86, 0xbd3dfa9b },
++  (__ev64_u32__) { 0x3b4d8f38, 0x820369e9 },
++  (__ev64_u32__) { 0x406d8220, 0x84a5090f },
++  (__ev64_u32__) { 0x7fffffff, 0xafa8a4df },
++  (__ev64_u32__) { 0x445770eb, 0xc55d8bc7 },
++  (__ev64_u32__) { 0x544687df, 0xc00d1a97 },
++  (__ev64_u32__) { 0x7fffffff, 0xf3dd4385 },
++  (__ev64_u32__) { 0x7fffffff, 0x22debbd5 },
++  (__ev64_u32__) { 0x7fffffff, 0x33907333 },
++  (__ev64_u32__) { 0x716eadd7, 0x2ad0bd87 },
++  (__ev64_u32__) { 0x78f86ea7, 0x34c3f24f },
++  (__ev64_u32__) { 0x4ee19129, 0x3588848b },
++  (__ev64_u32__) { 0x33e322d9, 0x1c583b9b },
++  (__ev64_u32__) { 0x31611887, 0x14b936cb },
++  (__ev64_u32__) { 0x2dea7887, 0xf8b5b91b },
++  (__ev64_u32__) { 0xdf244461, 0x10e86473 },
++  (__ev64_u32__) { 0xd80558ff, 0x2bb18b4f },
++  (__ev64_u32__) { 0xece95831, 0x26005bff },
++  (__ev64_u32__) { 0x42ce3e1, 0xd13811b5 },
++  (__ev64_u32__) { 0x3f202f07, 0x38240ae1 },
++  (__ev64_u32__) { 0x3b0e3997, 0x284c7bf1 },
++  (__ev64_u32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_u32__) { 0x76d2c123, 0x7fffffff },
++  (__ev64_u32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_u32__) { 0x32ca2b4f, 0x7fffffff },
++  (__ev64_u32__) { 0x6635d0c3, 0x7fffffff },
++  (__ev64_u32__) { 0x66669f3b, 0x7fffffff },
++  (__ev64_u32__) { 0xf80d2913, 0x7ecdb487 },
++  (__ev64_u32__) { 0xf560443d, 0x74e534f1 },
++  (__ev64_u32__) { 0x69b1161, 0x7c40656d },
++  (__ev64_u32__) { 0x18e5d717, 0x2d41f6f5 },
++  (__ev64_u32__) { 0x5d822f77, 0xfa3c7435 },
++  (__ev64_u32__) { 0x49d57c57, 0x35169a9 },
++  (__ev64_u32__) { 0x56a688d3, 0xeafb56a7 },
++  (__ev64_u32__) { 0x57048ccb, 0xd40217d3 },
++  (__ev64_u32__) { 0x20a11b3d, 0xe198e1a1 },
++  (__ev64_u32__) { 0x24e52ee1, 0xeab81e95 },
++  (__ev64_u32__) { 0xfb5922c9, 0xe921701d },
++  (__ev64_u32__) { 0xfa6cc217, 0x34ab83cd },
++  (__ev64_u32__) { 0xdeb4a6d7, 0x25d9adcd },
++  (__ev64_u32__) { 0xedd084f7, 0x4a1fbbed },
++  (__ev64_u32__) { 0xc7b2c5c7, 0x1caef37f },
++  (__ev64_u32__) { 0xec55d9fb, 0x1c52c59f },
++  (__ev64_u32__) { 0xef13f1b3, 0xfd6e9607 },
++  (__ev64_u32__) { 0x4831a373, 0x3c06eb47 },
++  (__ev64_u32__) { 0x1d224329, 0x20a8e33f },
++  (__ev64_u32__) { 0x1bebd6ef, 0x1c955437 },
++  (__ev64_u32__) { 0x5cf748eb, 0x17c04ded },
++  (__ev64_u32__) { 0x67a8ad8b, 0xeecc25bb },
++  (__ev64_u32__) { 0x64b1c375, 0xcf94f91b },
++  (__ev64_u32__) { 0x4984fab9, 0xf3e1a463 },
++  (__ev64_u32__) { 0x34bf74d1, 0xd848c159 },
++  (__ev64_u32__) { 0x5867bdb7, 0xc6788805 },
++  (__ev64_u32__) { 0xf9dba097, 0x80000000 },
++  (__ev64_u32__) { 0xfb9228e3, 0x80000000 },
++  (__ev64_u32__) { 0x5ea6097, 0x80000000 },
++  (__ev64_u32__) { 0xf8055151, 0x9aa69576 },
++  (__ev64_u32__) { 0xf31fb7b1, 0xe6b187b4 },
++  (__ev64_u32__) { 0xf281f6ed, 0xac646594 },
++  (__ev64_u32__) { 0xe8ca23c5, 0xa241d0e4 },
++  (__ev64_u32__) { 0xefcd77d5, 0x80000000 },
++  (__ev64_u32__) { 0x36535cf9, 0xbac4fcce },
++  (__ev64_u32__) { 0x384f712d, 0xf746d7fe },
++  (__ev64_u32__) { 0x6764550d, 0xbfc3533a },
++  (__ev64_u32__) { 0x5633bb71, 0x8452129a },
++  (__ev64_u32__) { 0x59b88b25, 0xb058cb18 },
++  (__ev64_u32__) { 0x5e7300a5, 0xbba9ab54 },
++  (__ev64_u32__) { 0x7fffffff, 0xbc7cdd9c },
++  (__ev64_u32__) { 0x50f14d23, 0xb62ba2d4 },
++  (__ev64_u32__) { 0x3cc49f3f, 0xa566433c },
++  (__ev64_u32__) { 0x799a17a5, 0xf7b92e8c },
++  (__ev64_u32__) { 0x5ad4a2ad, 0xe3ef6b5a },
++  (__ev64_u32__) { 0x7fffffff, 0xecf1a09a },
++  (__ev64_u32__) { 0x649f10ad, 0xa46dea9a },
++  (__ev64_u32__) { 0x7ab79bbd, 0xb762a7ac },
++  (__ev64_u32__) { 0x6a4d876b, 0x9696686c },
++  (__ev64_u32__) { 0x6b5ae059, 0xaa15ef48 },
++  (__ev64_u32__) { 0x358990d7, 0x83344e1a },
++  (__ev64_u32__) { 0x15a4d333, 0x84be8d3a },
++  (__ev64_u32__) { 0x3aba8717, 0x80000000 },
++  (__ev64_u32__) { 0x3974f319, 0x80000000 },
++  (__ev64_u32__) { 0xf1207a7d, 0x80000000 },
++  (__ev64_u32__) { 0xfd80778b, 0x80000000 },
++  (__ev64_u32__) { 0x9dff31b, 0x889bbf80 },
++  (__ev64_u32__) { 0xd94b60b, 0xf81990d0 },
++  (__ev64_u32__) { 0x36c87a23, 0x7d83e4c },
++  (__ev64_u32__) { 0x5cac218b, 0xf4256596 },
++  (__ev64_u32__) { 0x5c0939cb, 0xeef8f862 },
++  (__ev64_u32__) { 0x7fffffff, 0x8379c1e },
++  (__ev64_u32__) { 0x7fffffff, 0xd94be838 },
++  (__ev64_u32__) { 0x763f82ab, 0xa0c16438 },
++  (__ev64_u32__) { 0x3967cdc5, 0xc6cc6eb0 },
++  (__ev64_u32__) { 0xc8544a35, 0xb7e0b5d2 },
++  (__ev64_u32__) { 0xa8316f47, 0xe4e8063e },
++  (__ev64_u32__) { 0xad39a867, 0x2624131a },
++  (__ev64_u32__) { 0xfe206a79, 0x39276de2 },
++  (__ev64_u32__) { 0xd521e79, 0x318da91e },
++  (__ev64_u32__) { 0x2c9dc079, 0x674f39e },
++  (__ev64_u32__) { 0xb9fe6ef1, 0xb89da992 },
++  (__ev64_u32__) { 0xb85c4789, 0xd23dd562 },
++  (__ev64_u32__) { 0x810f9109, 0xf5d3b952 },
++  (__ev64_u32__) { 0x94100969, 0x34770eaa },
++  (__ev64_u32__) { 0xb304e8af, 0x3fea180a },
++  (__ev64_u32__) { 0x231ace43, 0x54f210c8 },
++  (__ev64_u32__) { 0x22059ed7, 0x56a8bbb0 },
++  (__ev64_u32__) { 0x1c8faef, 0x7fffffff },
++  (__ev64_u32__) { 0x3be5e891, 0x7efe8dcf },
++  (__ev64_u32__) { 0x3d562111, 0x636afde5 },
++  (__ev64_u32__) { 0x551840c7, 0x5b94bf95 },
++  (__ev64_u32__) { 0x7fffffff, 0x4b3f8985 },
++  (__ev64_u32__) { 0x2e0474d3, 0x49c70a13 },
++  (__ev64_u32__) { 0x2e40730b, 0x30c231d7 },
++  (__ev64_u32__) { 0xfa7bf2b, 0x2d02e1c7 },
++  (__ev64_u32__) { 0x6325937f, 0x7d736507 },
++  (__ev64_u32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_u32__) { 0x7fffffff, 0x24735f83 },
++  (__ev64_u32__) { 0x7569547f, 0x1d6b8325 },
++  (__ev64_u32__) { 0x2e4e2edd, 0xa5407f5 },
++  (__ev64_u32__) { 0x3b63bb19, 0x5a8a66dd },
++  (__ev64_u32__) { 0x5d2dd10b, 0x4c855033 },
++  (__ev64_u32__) { 0x69ab222b, 0x4c6b6033 },
++  (__ev64_u32__) { 0x541db833, 0x7fffffff },
++  (__ev64_u32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_u32__) { 0x7fffffff, 0x31a5d923 },
++  (__ev64_u32__) { 0x7fffffff, 0xd0429c9 },
++  (__ev64_u32__) { 0x7604b327, 0xedc874eb },
++  (__ev64_u32__) { 0x7fffffff, 0x88232abd },
++  (__ev64_u32__) { 0x77a0cb3f, 0x80000000 },
++  (__ev64_u32__) { 0x4625f90f, 0x80000000 },
++  (__ev64_u32__) { 0xff534f7d, 0x80000000 },
++  (__ev64_u32__) { 0xfd6e6149, 0x80000000 },
++  (__ev64_u32__) { 0xfe74c5f1, 0x98db1044 },
++  (__ev64_u32__) { 0xf8ae2eab, 0x994af710 },
++  (__ev64_u32__) { 0xca554483, 0x98034808 },
++  (__ev64_u32__) { 0xed3ded0b, 0xa5f296bc },
++  (__ev64_u32__) { 0xf4dcb0eb, 0x80000000 },
++  (__ev64_u32__) { 0xf8c933f3, 0x88fa553e },
++  (__ev64_u32__) { 0xe97e09ab, 0x85097da8 },
++  (__ev64_u32__) { 0x26b83601, 0x9d23b04c },
++  (__ev64_u32__) { 0x1240e5e7, 0x80000000 },
++  (__ev64_u32__) { 0x749dff41, 0x80000000 },
++  (__ev64_u32__) { 0x2336aaff, 0x8d3ae1b4 },
++  (__ev64_u32__) { 0xffc99cd7, 0x80000000 },
++  (__ev64_u32__) { 0xe9ea176d, 0x80000000 },
++  (__ev64_u32__) { 0xf0c86e95, 0x80000000 },
++  (__ev64_u32__) { 0x42530a41, 0x80000000 },
++  (__ev64_u32__) { 0x3d2910ab, 0x80000000 },
++  (__ev64_u32__) { 0x4fb62b1b, 0xa12f9532 },
++  (__ev64_u32__) { 0x3cf2aac3, 0x9e487932 },
++  (__ev64_u32__) { 0xf1be5ad3, 0x80000000 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhessfaaw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16, rB4u16, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmhessfanw_baseline[] = {
++
++  (__ev64_u32__) { 0xf66220a4, 0x3eb32ae6 },
++  (__ev64_u32__) { 0xc5954910, 0x227f98e4 },
++  (__ev64_u32__) { 0x80000000, 0x56c7e9d4 },
++  (__ev64_u32__) { 0x837500cc, 0x4785f5c4 },
++  (__ev64_u32__) { 0x80000000, 0x69474084 },
++  (__ev64_u32__) { 0x87b44572, 0x7fffffff },
++  (__ev64_u32__) { 0x80000000, 0x4c21fee3 },
++  (__ev64_u32__) { 0x8ebad890, 0x7fffffff },
++  (__ev64_u32__) { 0xe0759f08, 0x7fffffff },
++  (__ev64_u32__) { 0xc7dcc040, 0x7dd4d08f },
++  (__ev64_u32__) { 0xc459b978, 0x7fffffff },
++  (__ev64_u32__) { 0xd32d241c, 0x7fffffff },
++  (__ev64_u32__) { 0xb3f9040, 0x6ad18093 },
++  (__ev64_u32__) { 0xd6690e04, 0x7cfbf003 },
++  (__ev64_u32__) { 0xfdc40302, 0x7fffffff },
++  (__ev64_u32__) { 0xdeaf1d82, 0x704c0f1d },
++  (__ev64_u32__) { 0xf7df7ea4, 0x63a0c983 },
++  (__ev64_u32__) { 0xfe91bc50, 0x65df895b },
++  (__ev64_u32__) { 0x381afd0, 0x7faaff3b },
++  (__ev64_u32__) { 0xbadbec0, 0x7fffffff },
++  (__ev64_u32__) { 0xe2beda80, 0x7fffffff },
++  (__ev64_u32__) { 0xb6b2e940, 0x7fffffff },
++  (__ev64_u32__) { 0xc42cea26, 0x7015d713 },
++  (__ev64_u32__) { 0xf50ad304, 0x5e7ae4d3 },
++  (__ev64_u32__) { 0x69dc4aa, 0x63de2935 },
++  (__ev64_u32__) { 0x41ac368a, 0x54c1a175 },
++  (__ev64_u32__) { 0x7fffffff, 0x492a9edf },
++  (__ev64_u32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_u32__) { 0x7fffffff, 0x7a4fe8cf },
++  (__ev64_u32__) { 0x450c9c97, 0x7a700d99 },
++  (__ev64_u32__) { 0x5d174b5f, 0x7fffffff },
++  (__ev64_u32__) { 0x68577969, 0x7fffffff },
++  (__ev64_u32__) { 0x5a98e869, 0x6e68d233 },
++  (__ev64_u32__) { 0x7773e975, 0x7fffffff },
++  (__ev64_u32__) { 0x52a643a9, 0x603b2ff9 },
++  (__ev64_u32__) { 0x38766319, 0x63609ead },
++  (__ev64_u32__) { 0x5ef0e001, 0x3db613db },
++  (__ev64_u32__) { 0x7fffffff, 0x7d3f7f73 },
++  (__ev64_u32__) { 0x56eb8f13, 0x396ede3b },
++  (__ev64_u32__) { 0x15cda4cf, 0x3bf9a427 },
++  (__ev64_u32__) { 0xdb22b37f, 0x6c61ed2b },
++  (__ev64_u32__) { 0x833863a5, 0x12e16f6b },
++  (__ev64_u32__) { 0x9ee5a495, 0xff56e07d },
++  (__ev64_u32__) { 0x80000000, 0x9fb5719 },
++  (__ev64_u32__) { 0x80000000, 0xe333b98f },
++  (__ev64_u32__) { 0xc78e1d90, 0xe529e41b },
++  (__ev64_u32__) { 0x8283dffa, 0xef955d95 },
++  (__ev64_u32__) { 0xa5f94e96, 0x2f5da073 },
++  (__ev64_u32__) { 0xbe670cf6, 0x767fe77 },
++  (__ev64_u32__) { 0xb82576ea, 0xfcbba6e7 },
++  (__ev64_u32__) { 0xbcedf914, 0x9dd60b9 },
++  (__ev64_u32__) { 0xf286d0ce, 0xb8476899 },
++  (__ev64_u32__) { 0xf009403e, 0xc5dcf473 },
++  (__ev64_u32__) { 0xe8faf3ee, 0x9c9f918b },
++  (__ev64_u32__) { 0xf9e03688, 0xd7071183 },
++  (__ev64_u32__) { 0xdf1b9884, 0xe66a6865 },
++  (__ev64_u32__) { 0xfe1b848e, 0x3cebba49 },
++  (__ev64_u32__) { 0xeae52966, 0x74e54b69 },
++  (__ev64_u32__) { 0xeb35cce6, 0x4c99390f },
++  (__ev64_u32__) { 0xc60f6404, 0x2ec38087 },
++  (__ev64_u32__) { 0xe14a4f6c, 0x54e30c6d },
++  (__ev64_u32__) { 0x283fd8c, 0x251c84a5 },
++  (__ev64_u32__) { 0x16c6a26c, 0x48cadff5 },
++  (__ev64_u32__) { 0xcd3c768, 0x4a88929b },
++  (__ev64_u32__) { 0xc5137e38, 0x508367ef },
++  (__ev64_u32__) { 0xaf4910d4, 0x32688457 },
++  (__ev64_u32__) { 0xcfbfc7ea, 0xe6c3664d },
++  (__ev64_u32__) { 0x9bd696d8, 0xea877699 },
++  (__ev64_u32__) { 0xb91aec30, 0xeaa75ea9 },
++  (__ev64_u32__) { 0xae973c96, 0xe757bb09 },
++  (__ev64_u32__) { 0xecab60fe, 0x6f9b417 },
++  (__ev64_u32__) { 0xef7d558a, 0x9d483c65 },
++  (__ev64_u32__) { 0xdbf73ee0, 0x9b9d1395 },
++  (__ev64_u32__) { 0xd13b80d8, 0xc32801c1 },
++  (__ev64_u32__) { 0x80000000, 0xb3133941 },
++  (__ev64_u32__) { 0x80000000, 0xc204c00f },
++  (__ev64_u32__) { 0x8016dcd0, 0xc027388f },
++  (__ev64_u32__) { 0xa41775da, 0xd8016a7f },
++  (__ev64_u32__) { 0x1716e582, 0xc0ba0d23 },
++  (__ev64_u32__) { 0x8ce69f4, 0x89f6ec2f },
++  (__ev64_u32__) { 0x122abe34, 0xf29eea73 },
++  (__ev64_u32__) { 0x244d49c4, 0xea88badb },
++  (__ev64_u32__) { 0x12b3637e, 0xd63b7afb },
++  (__ev64_u32__) { 0xe3911f3e, 0x6d8dbb3 },
++  (__ev64_u32__) { 0xdf1b0e8a, 0xe656b85b },
++  (__ev64_u32__) { 0xe0b81db4, 0x9f01ef7f },
++  (__ev64_u32__) { 0xd547ca78, 0x80000000 },
++  (__ev64_u32__) { 0x2173e1b8, 0x80000000 },
++  (__ev64_u32__) { 0x21ea16fa, 0xb966d3c8 },
++  (__ev64_u32__) { 0x38ab501a, 0xb2d32944 },
++  (__ev64_u32__) { 0x450f85d8, 0x95119db8 },
++  (__ev64_u32__) { 0x603e11b4, 0x84f07348 },
++  (__ev64_u32__) { 0x44e66614, 0x80000000 },
++  (__ev64_u32__) { 0x3d848a2c, 0x80000000 },
++  (__ev64_u32__) { 0xfd24663c, 0x80000000 },
++  (__ev64_u32__) { 0x49c2a7ba, 0x98ba6856 },
++  (__ev64_u32__) { 0x7fffffff, 0xfae9d876 },
++  (__ev64_u32__) { 0x7f9b7ba9, 0x11564296 },
++  (__ev64_u32__) { 0x7fffffff, 0xe09c6fb4 },
++  (__ev64_u32__) { 0x7fffffff, 0xebc3e13c },
++  (__ev64_u32__) { 0x7d2e573f, 0x677142c },
++  (__ev64_u32__) { 0x7fffffff, 0x2ed37e16 },
++  (__ev64_u32__) { 0x5f9676af, 0x1c69bdbc },
++  (__ev64_u32__) { 0x6140fe5f, 0x282845ac },
++  (__ev64_u32__) { 0x186024c9, 0x3f64c6ac },
++  (__ev64_u32__) { 0xdef0d7e9, 0x5fd08684 },
++  (__ev64_u32__) { 0xb4a77079, 0x42c20564 },
++  (__ev64_u32__) { 0xc4b270c7, 0x7dfc9616 },
++  (__ev64_u32__) { 0xbf927ddf, 0x7b5af6f0 },
++  (__ev64_u32__) { 0x80000000, 0x50575b20 },
++  (__ev64_u32__) { 0xbba88f14, 0x3aa27438 },
++  (__ev64_u32__) { 0xabb97820, 0x3ff2e568 },
++  (__ev64_u32__) { 0x80000000, 0xc22bc7a },
++  (__ev64_u32__) { 0x80000000, 0xdd21442a },
++  (__ev64_u32__) { 0x80000000, 0xcc6f8ccc },
++  (__ev64_u32__) { 0x8e915228, 0xd52f4278 },
++  (__ev64_u32__) { 0x87079158, 0xcb3c0db0 },
++  (__ev64_u32__) { 0xb11e6ed6, 0xca777b74 },
++  (__ev64_u32__) { 0xcc1cdd26, 0xe3a7c464 },
++  (__ev64_u32__) { 0xce9ee778, 0xeb46c934 },
++  (__ev64_u32__) { 0xd2158778, 0x74a46e4 },
++  (__ev64_u32__) { 0x20dbbb9e, 0xef179b8c },
++  (__ev64_u32__) { 0x27faa700, 0xd44e74b0 },
++  (__ev64_u32__) { 0x1316a7ce, 0xd9ffa400 },
++  (__ev64_u32__) { 0xfbd31c1e, 0x2ec7ee4a },
++  (__ev64_u32__) { 0xc0dfd0f8, 0xc7dbf51e },
++  (__ev64_u32__) { 0xc4f1c668, 0xd7b3840e },
++  (__ev64_u32__) { 0x80000000, 0x80000000 },
++  (__ev64_u32__) { 0x892d3edc, 0x80000000 },
++  (__ev64_u32__) { 0x80000000, 0x80000000 },
++  (__ev64_u32__) { 0xcd35d4b0, 0x80000000 },
++  (__ev64_u32__) { 0x99ca2f3c, 0x80000000 },
++  (__ev64_u32__) { 0x999960c4, 0x80000000 },
++  (__ev64_u32__) { 0x7f2d6ec, 0x81324b78 },
++  (__ev64_u32__) { 0xa9fbbc2, 0x8b1acb0e },
++  (__ev64_u32__) { 0xf964ee9e, 0x83bf9a92 },
++  (__ev64_u32__) { 0xe71a28e8, 0xd2be090a },
++  (__ev64_u32__) { 0xa27dd088, 0x5c38bca },
++  (__ev64_u32__) { 0xb62a83a8, 0xfcae9656 },
++  (__ev64_u32__) { 0xa959772c, 0x1504a958 },
++  (__ev64_u32__) { 0xa8fb7334, 0x2bfde82c },
++  (__ev64_u32__) { 0xdf5ee4c2, 0x1e671e5e },
++  (__ev64_u32__) { 0xdb1ad11e, 0x1547e16a },
++  (__ev64_u32__) { 0x4a6dd36, 0x16de8fe2 },
++  (__ev64_u32__) { 0x5933de8, 0xcb547c32 },
++  (__ev64_u32__) { 0x214b5928, 0xda265232 },
++  (__ev64_u32__) { 0x122f7b08, 0xb5e04412 },
++  (__ev64_u32__) { 0x384d3a38, 0xe3510c80 },
++  (__ev64_u32__) { 0x13aa2604, 0xe3ad3a60 },
++  (__ev64_u32__) { 0x10ec0e4c, 0x29169f8 },
++  (__ev64_u32__) { 0xb7ce5c8c, 0xc3f914b8 },
++  (__ev64_u32__) { 0xe2ddbcd6, 0xdf571cc0 },
++  (__ev64_u32__) { 0xe4142910, 0xe36aabc8 },
++  (__ev64_u32__) { 0xa308b714, 0xe83fb212 },
++  (__ev64_u32__) { 0x98575274, 0x1133da44 },
++  (__ev64_u32__) { 0x9b4e3c8a, 0x306b06e4 },
++  (__ev64_u32__) { 0xb67b0546, 0xc1e5b9c },
++  (__ev64_u32__) { 0xcb408b2e, 0x27b73ea6 },
++  (__ev64_u32__) { 0xa7984248, 0x398777fa },
++  (__ev64_u32__) { 0x6245f68, 0x7fffffff },
++  (__ev64_u32__) { 0x46dd71c, 0x7fffffff },
++  (__ev64_u32__) { 0xfa159f68, 0x7fffffff },
++  (__ev64_u32__) { 0x7faaeae, 0x65596a89 },
++  (__ev64_u32__) { 0xce0484e, 0x194e784b },
++  (__ev64_u32__) { 0xd7e0912, 0x539b9a6b },
++  (__ev64_u32__) { 0x1735dc3a, 0x5dbe2f1b },
++  (__ev64_u32__) { 0x1032882a, 0x7fffffff },
++  (__ev64_u32__) { 0xc9aca306, 0x453b0331 },
++  (__ev64_u32__) { 0xc7b08ed2, 0x8b92801 },
++  (__ev64_u32__) { 0x989baaf2, 0x403cacc5 },
++  (__ev64_u32__) { 0xa9cc448e, 0x7baded65 },
++  (__ev64_u32__) { 0xa64774da, 0x4fa734e7 },
++  (__ev64_u32__) { 0xa18cff5a, 0x445654ab },
++  (__ev64_u32__) { 0x80000000, 0x43832263 },
++  (__ev64_u32__) { 0xaf0eb2dc, 0x49d45d2b },
++  (__ev64_u32__) { 0xc33b60c0, 0x5a99bcc3 },
++  (__ev64_u32__) { 0x8665e85a, 0x846d173 },
++  (__ev64_u32__) { 0xa52b5d52, 0x1c1094a5 },
++  (__ev64_u32__) { 0x80000000, 0x130e5f65 },
++  (__ev64_u32__) { 0x9b60ef52, 0x5b921565 },
++  (__ev64_u32__) { 0x85486442, 0x489d5853 },
++  (__ev64_u32__) { 0x95b27894, 0x69699793 },
++  (__ev64_u32__) { 0x94a51fa6, 0x55ea10b7 },
++  (__ev64_u32__) { 0xca766f28, 0x7ccbb1e5 },
++  (__ev64_u32__) { 0xea5b2ccc, 0x7b4172c5 },
++  (__ev64_u32__) { 0xc54578e8, 0x7fffffff },
++  (__ev64_u32__) { 0xc68b0ce6, 0x7fffffff },
++  (__ev64_u32__) { 0xedf8582, 0x7fffffff },
++  (__ev64_u32__) { 0x27f8874, 0x7fffffff },
++  (__ev64_u32__) { 0xf6200ce4, 0x7764407f },
++  (__ev64_u32__) { 0xf26b49f4, 0x7e66f2f },
++  (__ev64_u32__) { 0xc93785dc, 0xf827c1b3 },
++  (__ev64_u32__) { 0xa353de74, 0xbda9a69 },
++  (__ev64_u32__) { 0xa3f6c634, 0x1107079d },
++  (__ev64_u32__) { 0x80000000, 0xf7c863e1 },
++  (__ev64_u32__) { 0x80000000, 0x26b417c7 },
++  (__ev64_u32__) { 0x89c07d54, 0x5f3e9bc7 },
++  (__ev64_u32__) { 0xc698323a, 0x3933914f },
++  (__ev64_u32__) { 0x37abb5ca, 0x481f4a2d },
++  (__ev64_u32__) { 0x57ce90b8, 0x1b17f9c1 },
++  (__ev64_u32__) { 0x52c65798, 0xd9dbece5 },
++  (__ev64_u32__) { 0x1df9586, 0xc6d8921d },
++  (__ev64_u32__) { 0xf2ade186, 0xce7256e1 },
++  (__ev64_u32__) { 0xd3623f86, 0xf98b0c61 },
++  (__ev64_u32__) { 0x4601910e, 0x4762566d },
++  (__ev64_u32__) { 0x47a3b876, 0x2dc22a9d },
++  (__ev64_u32__) { 0x7ef06ef6, 0xa2c46ad },
++  (__ev64_u32__) { 0x6beff696, 0xcb88f155 },
++  (__ev64_u32__) { 0x4cfb1750, 0xc015e7f5 },
++  (__ev64_u32__) { 0xdce531bc, 0xab0def37 },
++  (__ev64_u32__) { 0xddfa6128, 0xa957444f },
++  (__ev64_u32__) { 0xfe370510, 0x80000000 },
++  (__ev64_u32__) { 0xc41a176e, 0x81017230 },
++  (__ev64_u32__) { 0xc2a9deee, 0x9c95021a },
++  (__ev64_u32__) { 0xaae7bf38, 0xa46b406a },
++  (__ev64_u32__) { 0x80000000, 0xb4c0767a },
++  (__ev64_u32__) { 0xd1fb8b2c, 0xb638f5ec },
++  (__ev64_u32__) { 0xd1bf8cf4, 0xcf3dce28 },
++  (__ev64_u32__) { 0xf05840d4, 0xd2fd1e38 },
++  (__ev64_u32__) { 0x9cda6c80, 0x828c9af8 },
++  (__ev64_u32__) { 0x80000000, 0x80000000 },
++  (__ev64_u32__) { 0x80000000, 0xdb8ca07c },
++  (__ev64_u32__) { 0x8a96ab80, 0xe2947cda },
++  (__ev64_u32__) { 0xd1b1d122, 0xf5abf80a },
++  (__ev64_u32__) { 0xc49c44e6, 0xa5759922 },
++  (__ev64_u32__) { 0xa2d22ef4, 0xb37aafcc },
++  (__ev64_u32__) { 0x9654ddd4, 0xb3949fcc },
++  (__ev64_u32__) { 0xabe247cc, 0x80000000 },
++  (__ev64_u32__) { 0x80000000, 0x80000000 },
++  (__ev64_u32__) { 0x80000000, 0xce5a26dc },
++  (__ev64_u32__) { 0x80000000, 0xf2fbd636 },
++  (__ev64_u32__) { 0x89fb4cd8, 0x12378b14 },
++  (__ev64_u32__) { 0x80000000, 0x77dcd542 },
++  (__ev64_u32__) { 0x885f34c0, 0x7fffffff },
++  (__ev64_u32__) { 0xb9da06f0, 0x7fffffff },
++  (__ev64_u32__) { 0xacb082, 0x7fffffff },
++  (__ev64_u32__) { 0x2919eb6, 0x7fffffff },
++  (__ev64_u32__) { 0x18b3a0e, 0x6724efbb },
++  (__ev64_u32__) { 0x751d154, 0x66b508ef },
++  (__ev64_u32__) { 0x35aabb7c, 0x67fcb7f7 },
++  (__ev64_u32__) { 0x12c212f4, 0x5a0d6943 },
++  (__ev64_u32__) { 0xb234f14, 0x7fffffff },
++  (__ev64_u32__) { 0x736cc0c, 0x7705aac1 },
++  (__ev64_u32__) { 0x1681f654, 0x7af68257 },
++  (__ev64_u32__) { 0xd947c9fe, 0x62dc4fb3 },
++  (__ev64_u32__) { 0xedbf1a18, 0x7fffffff },
++  (__ev64_u32__) { 0x8b6200be, 0x7fffffff },
++  (__ev64_u32__) { 0xdcc95500, 0x72c51e4b },
++  (__ev64_u32__) { 0x366328, 0x7fffffff },
++  (__ev64_u32__) { 0x1615e892, 0x7fffffff },
++  (__ev64_u32__) { 0xf37916a, 0x7fffffff },
++  (__ev64_u32__) { 0xbdacf5be, 0x7fffffff },
++  (__ev64_u32__) { 0xc2d6ef54, 0x7fffffff },
++  (__ev64_u32__) { 0xb049d4e4, 0x5ed06acd },
++  (__ev64_u32__) { 0xc30d553c, 0x61b786cd },
++  (__ev64_u32__) { 0xe41a52c, 0x7fffffff },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhessfanw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16, rB4u16, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_s32__ evmhessiaaw_baseline[] = {
++
++  (__ev64_s32__) { 0xf3a1e97c, 0xd22aa329 },
++  (__ev64_s32__) { 0xf0b01f9f, 0xc864532f },
++  (__ev64_s32__) { 0x1a1112db, 0xdec9bc68 },
++  (__ev64_s32__) { 0x1273ed03, 0xec298e38 },
++  (__ev64_s32__) { 0x25b24fb3, 0x3e44054 },
++  (__ev64_s32__) { 0x109db43, 0xfa66383e },
++  (__ev64_s32__) { 0x26d12f73, 0xfb21b2fe },
++  (__ev64_s32__) { 0x24903975, 0xfab6157f },
++  (__ev64_s32__) { 0x218c941b, 0xf1975495 },
++  (__ev64_s32__) { 0x2315304f, 0xd93f588f },
++  (__ev64_s32__) { 0x833988f, 0xff9184c3 },
++  (__ev64_s32__) { 0x131c9a03, 0xd4987398 },
++  (__ev64_s32__) { 0x33353471, 0xd6db7fbc },
++  (__ev64_s32__) { 0x2fbf418b, 0xb34ed04c },
++  (__ev64_s32__) { 0x31427667, 0xae715962 },
++  (__ev64_s32__) { 0x28a599cc, 0xb3cc6d4f },
++  (__ev64_s32__) { 0x21ea5a4c, 0xab31d6cf },
++  (__ev64_s32__) { 0x3c94da8, 0x80000000 },
++  (__ev64_s32__) { 0x1e6668d5, 0x80000000 },
++  (__ev64_s32__) { 0x4d6418d, 0x80000000 },
++  (__ev64_s32__) { 0xf4d03f23, 0x800cdb81 },
++  (__ev64_s32__) { 0xd81314ab, 0x80000000 },
++  (__ev64_s32__) { 0xe0c0144b, 0x80000000 },
++  (__ev64_s32__) { 0xe4b8d793, 0x872df4ea },
++  (__ev64_s32__) { 0xed9d852b, 0x9cf8061e },
++  (__ev64_s32__) { 0xe12200f3, 0x98142a9e },
++  (__ev64_s32__) { 0xa533f8d0, 0x9adb3196 },
++  (__ev64_s32__) { 0xc66579b0, 0x9b6547a2 },
++  (__ev64_s32__) { 0xc4e857c0, 0x99e28b97 },
++  (__ev64_s32__) { 0xc5c1129d, 0xb4d4290c },
++  (__ev64_s32__) { 0xd052ceae, 0xdfb24fd0 },
++  (__ev64_s32__) { 0xcea5a86e, 0xd84512c5 },
++  (__ev64_s32__) { 0xd6e37d1e, 0xff345e1d },
++  (__ev64_s32__) { 0xf55167e3, 0xe6705245 },
++  (__ev64_s32__) { 0xfc8aa123, 0xe644f965 },
++  (__ev64_s32__) { 0xfc47b363, 0xe68d3ced },
++  (__ev64_s32__) { 0xf46e01a3, 0xe65f0b81 },
++  (__ev64_s32__) { 0xffa2b021, 0xf6e51c0d },
++  (__ev64_s32__) { 0xed15a771, 0xfc5627e3 },
++  (__ev64_s32__) { 0xedc16e1a, 0x57ac7ae },
++  (__ev64_s32__) { 0xfd84e140, 0x1c89ad4 },
++  (__ev64_s32__) { 0xf17823d0, 0xd5ccaeb8 },
++  (__ev64_s32__) { 0xef653f02, 0xd8571452 },
++  (__ev64_s32__) { 0xf723d492, 0xd5741c3f },
++  (__ev64_s32__) { 0x394127d, 0xce791a0f },
++  (__ev64_s32__) { 0xeb5dc5fd, 0xc9e2f77e },
++  (__ev64_s32__) { 0xf3219cb5, 0xca84154c },
++  (__ev64_s32__) { 0xdc44ec29, 0xc25ee538 },
++  (__ev64_s32__) { 0xe1ad20a9, 0x8bd03f09 },
++  (__ev64_s32__) { 0xb5a80dd9, 0x890b3fd0 },
++  (__ev64_s32__) { 0xb81670db, 0x80000000 },
++  (__ev64_s32__) { 0x96647771, 0x80000000 },
++  (__ev64_s32__) { 0x95780cfb, 0x80000000 },
++  (__ev64_s32__) { 0xc4e1ac25, 0x80000000 },
++  (__ev64_s32__) { 0xc3f23773, 0x86a7cc50 },
++  (__ev64_s32__) { 0xeedb69cd, 0x85c6f086 },
++  (__ev64_s32__) { 0xd5ee4c19, 0x80000000 },
++  (__ev64_s32__) { 0xe12e24cb, 0x93a29810 },
++  (__ev64_s32__) { 0xf3ade413, 0xb5078632 },
++  (__ev64_s32__) { 0xf4d6a375, 0xb6259369 },
++  (__ev64_s32__) { 0x67897f5, 0x9bfc22f9 },
++  (__ev64_s32__) { 0x30b77315, 0x9c086bd1 },
++  (__ev64_s32__) { 0xb23c1c1, 0xa6e402b1 },
++  (__ev64_s32__) { 0x1c5a24a, 0xa00cbbbe },
++  (__ev64_s32__) { 0xe51d27e4, 0xa01d9cea },
++  (__ev64_s32__) { 0xd87455b3, 0x80000000 },
++  (__ev64_s32__) { 0xe0d73b84, 0x95504480 },
++  (__ev64_s32__) { 0x6ca2644, 0x9d7610fd },
++  (__ev64_s32__) { 0x1df3d94a, 0x9bb02295 },
++  (__ev64_s32__) { 0x11834af0, 0x89e4b607 },
++  (__ev64_s32__) { 0x3f9efaf, 0x80000000 },
++  (__ev64_s32__) { 0x3a816cb4, 0x96cf4400 },
++  (__ev64_s32__) { 0x4aa7de1e, 0x9f4dbabe },
++  (__ev64_s32__) { 0x3d08172c, 0x9d14b41e },
++  (__ev64_s32__) { 0x5f4b011e, 0xb0b24c3e },
++  (__ev64_s32__) { 0x4b322758, 0xae663c5e },
++  (__ev64_s32__) { 0x4c0604d2, 0xad4778e8 },
++  (__ev64_s32__) { 0x4bf876e6, 0xac0992e8 },
++  (__ev64_s32__) { 0x3cbfff42, 0x98dca0e7 },
++  (__ev64_s32__) { 0x520f6fde, 0xb56e1831 },
++  (__ev64_s32__) { 0x2a702562, 0xbdc5d9f1 },
++  (__ev64_s32__) { 0x610a12b6, 0xbcfd24ad },
++  (__ev64_s32__) { 0x6818a56a, 0xcc73786d },
++  (__ev64_s32__) { 0x70065b0a, 0x95a1cff7 },
++  (__ev64_s32__) { 0x6be9eb7c, 0x9525d93d },
++  (__ev64_s32__) { 0x3d442494, 0x80000000 },
++  (__ev64_s32__) { 0x33a291dc, 0x80000000 },
++  (__ev64_s32__) { 0x68ef3cbf, 0x80a199e2 },
++  (__ev64_s32__) { 0x76070f21, 0x863decf2 },
++  (__ev64_s32__) { 0x762dca7d, 0x86091dd2 },
++  (__ev64_s32__) { 0x433b770d, 0xbc7b30b0 },
++  (__ev64_s32__) { 0x47b2ad31, 0xf47cf1b0 },
++  (__ev64_s32__) { 0x3581aac5, 0x15add37 },
++  (__ev64_s32__) { 0x326ad801, 0xb40bd94 },
++  (__ev64_s32__) { 0x2f155915, 0x5f7beb6 },
++  (__ev64_s32__) { 0x3aa2e4f9, 0xfb164fc0 },
++  (__ev64_s32__) { 0x2ed50496, 0xf3dc5812 },
++  (__ev64_s32__) { 0x2684de5f, 0xe62d378c },
++  (__ev64_s32__) { 0x1f996330, 0xd69168e8 },
++  (__ev64_s32__) { 0x1155aad0, 0xf3cbc3f8 },
++  (__ev64_s32__) { 0xdd0d7a4, 0xf7f98c0 },
++  (__ev64_s32__) { 0x1376e7a0, 0x187122f2 },
++  (__ev64_s32__) { 0x1aab5257, 0x43a9246a },
++  (__ev64_s32__) { 0xfc0865e, 0x3f32c102 },
++  (__ev64_s32__) { 0x1f09d2f5, 0x41bc9722 },
++  (__ev64_s32__) { 0x1fa584d0, 0x3c389389 },
++  (__ev64_s32__) { 0x18e19b3e, 0x381b2528 },
++  (__ev64_s32__) { 0x135b9680, 0x49d384e0 },
++  (__ev64_s32__) { 0x16a567a0, 0x3b17c47e },
++  (__ev64_s32__) { 0xffe29c12, 0x3659cf7a },
++  (__ev64_s32__) { 0x2d52c185, 0x34128e5a },
++  (__ev64_s32__) { 0x2f69ea25, 0x1b9c4094 },
++  (__ev64_s32__) { 0x749859f, 0xe4552db },
++  (__ev64_s32__) { 0x32c95557, 0xa15e560 },
++  (__ev64_s32__) { 0x281d62b7, 0xbb9234a },
++  (__ev64_s32__) { 0x290c1744, 0x17a492ca },
++  (__ev64_s32__) { 0x44b0d786, 0xebf8003c },
++  (__ev64_s32__) { 0x45dc9c73, 0xc960f24d },
++  (__ev64_s32__) { 0x77acf033, 0xa48cfb3d },
++  (__ev64_s32__) { 0x7fffffff, 0x9c49e7c0 },
++  (__ev64_s32__) { 0x7fffffff, 0x841644b0 },
++  (__ev64_s32__) { 0x7fffffff, 0x80000000 },
++  (__ev64_s32__) { 0x68c1d414, 0xa6a8ce76 },
++  (__ev64_s32__) { 0x56539403, 0xc2b5108a },
++  (__ev64_s32__) { 0x5b85a020, 0xbf795aaa },
++  (__ev64_s32__) { 0x7fffffff, 0xc04750aa },
++  (__ev64_s32__) { 0x7fffffff, 0xd41fa3c2 },
++  (__ev64_s32__) { 0x6f77aceb, 0xddd573d8 },
++  (__ev64_s32__) { 0x5a4bdc05, 0xc29b27bc },
++  (__ev64_s32__) { 0x61596ad0, 0xc4ff008c },
++  (__ev64_s32__) { 0x451dc13e, 0xc3afe503 },
++  (__ev64_s32__) { 0x4645a5be, 0xda9c9fab },
++  (__ev64_s32__) { 0x2c660712, 0xe72a1e69 },
++  (__ev64_s32__) { 0xfc60dc1d, 0xe6f26b3b },
++  (__ev64_s32__) { 0x4fa590d, 0x766b91 },
++  (__ev64_s32__) { 0x42a5d25, 0xda77cf1 },
++  (__ev64_s32__) { 0xf5a8b026, 0xf50f82e9 },
++  (__ev64_s32__) { 0x1d52b11b, 0xea2c25df },
++  (__ev64_s32__) { 0x1c24903d, 0xb3dd498 },
++  (__ev64_s32__) { 0x1c3581b7, 0x188fed75 },
++  (__ev64_s32__) { 0x177effbf, 0x1e764975 },
++  (__ev64_s32__) { 0x5d67edf, 0x233839df },
++  (__ev64_s32__) { 0x585fdaa, 0x5759665d },
++  (__ev64_s32__) { 0x8e82ca6, 0x4fcd60a8 },
++  (__ev64_s32__) { 0xcb004470, 0x551b7c54 },
++  (__ev64_s32__) { 0xcb0c025b, 0x61d9e28f },
++  (__ev64_s32__) { 0xd5ed1f26, 0x6c80ee12 },
++  (__ev64_s32__) { 0xed677046, 0x70ac110e },
++  (__ev64_s32__) { 0xee147bae, 0x7c216e3e },
++  (__ev64_s32__) { 0xc1502550, 0x7fffffff },
++  (__ev64_s32__) { 0xf2c6f966, 0x7fffffff },
++  (__ev64_s32__) { 0xfa09f93a, 0x76dd9341 },
++  (__ev64_s32__) { 0xedeed600, 0x7fffffff },
++  (__ev64_s32__) { 0x100b4d60, 0x7ba48470 },
++  (__ev64_s32__) { 0xfa085a2c, 0x7b980dc0 },
++  (__ev64_s32__) { 0xf5b91c06, 0x7fffffff },
++  (__ev64_s32__) { 0x1459e60a, 0x6de4987f },
++  (__ev64_s32__) { 0x2ab1696e, 0x6b2cff41 },
++  (__ev64_s32__) { 0x3ab8df19, 0x7fffffff },
++  (__ev64_s32__) { 0x3507eb69, 0x7f7bf407 },
++  (__ev64_s32__) { 0x31cbdae1, 0x7fffffff },
++  (__ev64_s32__) { 0x322295b1, 0x7fffffff },
++  (__ev64_s32__) { 0x1c36e071, 0x7fffffff },
++  (__ev64_s32__) { 0x16a28d25, 0x7fffffff },
++  (__ev64_s32__) { 0x16d9d7b5, 0x6a6a050f },
++  (__ev64_s32__) { 0x2c2eb0bd, 0x7a20590b },
++  (__ev64_s32__) { 0x2e6b1fdc, 0x70c1ffce },
++  (__ev64_s32__) { 0xa99c704, 0x6ceb81af },
++  (__ev64_s32__) { 0x31f13395, 0x79a1e619 },
++  (__ev64_s32__) { 0x3ad6b8c8, 0x7bb55633 },
++  (__ev64_s32__) { 0x359e29cc, 0x7fffffff },
++  (__ev64_s32__) { 0x4d5ff08c, 0x7fffffff },
++  (__ev64_s32__) { 0x6145563c, 0x6fcdc657 },
++  (__ev64_s32__) { 0x64fe329d, 0x76f0e2e3 },
++  (__ev64_s32__) { 0x7fffffff, 0x778d276b },
++  (__ev64_s32__) { 0x6d69497f, 0x766e5069 },
++  (__ev64_s32__) { 0x7b8a997f, 0x6f1cc6b5 },
++  (__ev64_s32__) { 0x7fffffff, 0x73f37c8a },
++  (__ev64_s32__) { 0x7ec2b972, 0x6fd0f976 },
++  (__ev64_s32__) { 0x7fffffff, 0x705ac036 },
++  (__ev64_s32__) { 0x5b0b3e35, 0x63bda006 },
++  (__ev64_s32__) { 0x73ebf48d, 0x66a92baa },
++  (__ev64_s32__) { 0x629839ad, 0x7fffffff },
++  (__ev64_s32__) { 0x61086829, 0x6b3a35af },
++  (__ev64_s32__) { 0x4ec5d034, 0x7fffffff },
++  (__ev64_s32__) { 0x770268af, 0x78128e33 },
++  (__ev64_s32__) { 0x59ef2e1f, 0x7fffffff },
++  (__ev64_s32__) { 0x7fffffff, 0x7fffffff },
++  (__ev64_s32__) { 0x69458045, 0x789fa510 },
++  (__ev64_s32__) { 0x2cfb5266, 0x7cff2374 },
++  (__ev64_s32__) { 0x3be8ce20, 0x7fffffff },
++  (__ev64_s32__) { 0x37ca9ee2, 0x51894466 },
++  (__ev64_s32__) { 0x4039a4ec, 0x3ee61e76 },
++  (__ev64_s32__) { 0x48ebd20d, 0x3918dca2 },
++  (__ev64_s32__) { 0x187e8975, 0x42e9715a },
++  (__ev64_s32__) { 0x12d9ebc7, 0x3c3291c9 },
++  (__ev64_s32__) { 0x1034f6c3, 0x58fbf7c9 },
++  (__ev64_s32__) { 0x12592363, 0x361c9a18 },
++  (__ev64_s32__) { 0x483fa105, 0x3de7a5f1 },
++  (__ev64_s32__) { 0x424ce523, 0x32f168c9 },
++  (__ev64_s32__) { 0x60232549, 0x369dcfc1 },
++  (__ev64_s32__) { 0x6f8dc56b, 0x32a2351f },
++  (__ev64_s32__) { 0x4cc4cb83, 0x31727a88 },
++  (__ev64_s32__) { 0x37ae0f83, 0x6127bd0c },
++  (__ev64_s32__) { 0x37316203, 0x3897f1a0 },
++  (__ev64_s32__) { 0x4cc4b57c, 0x58466d74 },
++  (__ev64_s32__) { 0x4c77a220, 0x58d9c97f },
++  (__ev64_s32__) { 0x5774a794, 0x5fb0d5e0 },
++  (__ev64_s32__) { 0x5855c8e8, 0x5da2d875 },
++  (__ev64_s32__) { 0x4497efcc, 0x50e4b5f2 },
++  (__ev64_s32__) { 0x7fffffff, 0x33831308 },
++  (__ev64_s32__) { 0x756cbc41, 0x5c606bf2 },
++  (__ev64_s32__) { 0x5ecb17bf, 0x53cd6e1e },
++  (__ev64_s32__) { 0x7fffffff, 0x52a83f28 },
++  (__ev64_s32__) { 0x74af78bd, 0x3b9b18b7 },
++  (__ev64_s32__) { 0x7fffffff, 0x41506d83 },
++  (__ev64_s32__) { 0x7fffffff, 0x408aebcb },
++  (__ev64_s32__) { 0x7fffffff, 0x199c4393 },
++  (__ev64_s32__) { 0x72843747, 0x1f2090cf },
++  (__ev64_s32__) { 0x7fffffff, 0x3eb394b },
++  (__ev64_s32__) { 0x7c15670b, 0x1b8fc5b5 },
++  (__ev64_s32__) { 0x5946c100, 0x19176781 },
++  (__ev64_s32__) { 0x5f582796, 0xff94597a },
++  (__ev64_s32__) { 0x62ac6f90, 0x1e8c5ec8 },
++  (__ev64_s32__) { 0x65ed6058, 0x1fb0b57f },
++  (__ev64_s32__) { 0x73ff7d90, 0x2500891f },
++  (__ev64_s32__) { 0x5c7c570c, 0x1b79d353 },
++  (__ev64_s32__) { 0x55bba22e, 0xb821612 },
++  (__ev64_s32__) { 0x45405de3, 0xe9fb1eca },
++  (__ev64_s32__) { 0x5acd99a5, 0xee120fc4 },
++  (__ev64_s32__) { 0x4beea2dd, 0xedcf5076 },
++  (__ev64_s32__) { 0x44d64d5b, 0xcfeb110e },
++  (__ev64_s32__) { 0x5348eb7f, 0xbd5d9a43 },
++  (__ev64_s32__) { 0x6046da76, 0xcccb5e1b },
++  (__ev64_s32__) { 0x675cb8d0, 0xdfb5c1b8 },
++  (__ev64_s32__) { 0x64fd0ce8, 0xd49bb63c },
++  (__ev64_s32__) { 0x356d44de, 0xc7a0b02f },
++  (__ev64_s32__) { 0x207bbc9e, 0xc2d5a781 },
++  (__ev64_s32__) { 0x2ec38c65, 0xc577429d },
++  (__ev64_s32__) { 0x32bfe8d1, 0xbe64d673 },
++  (__ev64_s32__) { 0x2dfcc172, 0xa4d7a13e },
++  (__ev64_s32__) { 0x2d545de8, 0x9be71701 },
++  (__ev64_s32__) { 0x361faf41, 0x9df7e4f5 },
++  (__ev64_s32__) { 0x26fadf37, 0xa60a5bfc },
++  (__ev64_s32__) { 0x26b5a7e7, 0xa25f4afe },
++  (__ev64_s32__) { 0x48df6ca3, 0xc064e759 },
++  (__ev64_s32__) { 0x383aa853, 0xaf33222d },
++  (__ev64_s32__) { 0x46031457, 0xa604df8d },
++  (__ev64_s32__) { 0x33d61a99, 0xa73cae19 },
++  (__ev64_s32__) { 0x385338e0, 0xa310de7d },
++  (__ev64_s32__) { 0x229bb531, 0xbf64e9fb },
++  (__ev64_s32__) { 0x3f21a241, 0xd69ec9ca },
++  (__ev64_s32__) { 0x1dd5c0bd, 0xc264eac1 },
++  (__ev64_s32__) { 0xfdae24ed, 0xb2f84457 },
++  (__ev64_s32__) { 0x1bc0a5de, 0xa4ec29ab },
++  (__ev64_s32__) { 0xf9159c3e, 0xbfbe1c21 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhessiaaw, __ev64_s32__, __ev64_s16__, __ev64_s16__, rA4s16, rB4s16, 0, 1)
++
++#ifdef __SPE__
++__ev64_s32__ evmhessianw_baseline[] = {
++
++  (__ev64_s32__) { 0xc5e1684, 0x2dd55cd7 },
++  (__ev64_s32__) { 0xf4fe061, 0x379bacd1 },
++  (__ev64_s32__) { 0xe5eeed25, 0x21364398 },
++  (__ev64_s32__) { 0xed8c12fd, 0x13d671c8 },
++  (__ev64_s32__) { 0xda4db04d, 0xfc1bbfac },
++  (__ev64_s32__) { 0xfef624bd, 0x599c7c2 },
++  (__ev64_s32__) { 0xd92ed08d, 0x4de4d02 },
++  (__ev64_s32__) { 0xdb6fc68b, 0x549ea81 },
++  (__ev64_s32__) { 0xde736be5, 0xe68ab6b },
++  (__ev64_s32__) { 0xdceacfb1, 0x26c0a771 },
++  (__ev64_s32__) { 0xf7cc6771, 0x6e7b3d },
++  (__ev64_s32__) { 0xece365fd, 0x2b678c68 },
++  (__ev64_s32__) { 0xcccacb8f, 0x29248044 },
++  (__ev64_s32__) { 0xd040be75, 0x4cb12fb4 },
++  (__ev64_s32__) { 0xcebd8999, 0x518ea69e },
++  (__ev64_s32__) { 0xd75a6634, 0x4c3392b1 },
++  (__ev64_s32__) { 0xde15a5b4, 0x54ce2931 },
++  (__ev64_s32__) { 0xfc36b258, 0x7fffffff },
++  (__ev64_s32__) { 0xe199972b, 0x7fffffff },
++  (__ev64_s32__) { 0xfb29be73, 0x7fffffff },
++  (__ev64_s32__) { 0xb2fc0dd, 0x7ff3247e },
++  (__ev64_s32__) { 0x27eceb55, 0x7fffffff },
++  (__ev64_s32__) { 0x1f3febb5, 0x7fffffff },
++  (__ev64_s32__) { 0x1b47286d, 0x78d20b15 },
++  (__ev64_s32__) { 0x12627ad5, 0x6307f9e1 },
++  (__ev64_s32__) { 0x1eddff0d, 0x67ebd561 },
++  (__ev64_s32__) { 0x5acc0730, 0x6524ce69 },
++  (__ev64_s32__) { 0x399a8650, 0x649ab85d },
++  (__ev64_s32__) { 0x3b17a840, 0x661d7468 },
++  (__ev64_s32__) { 0x3a3eed63, 0x4b2bd6f3 },
++  (__ev64_s32__) { 0x2fad3152, 0x204db02f },
++  (__ev64_s32__) { 0x315a5792, 0x27baed3a },
++  (__ev64_s32__) { 0x291c82e2, 0xcba1e2 },
++  (__ev64_s32__) { 0xaae981d, 0x198fadba },
++  (__ev64_s32__) { 0x3755edd, 0x19bb069a },
++  (__ev64_s32__) { 0x3b84c9d, 0x1972c312 },
++  (__ev64_s32__) { 0xb91fe5d, 0x19a0f47e },
++  (__ev64_s32__) { 0x5d4fdf, 0x91ae3f2 },
++  (__ev64_s32__) { 0x12ea588f, 0x3a9d81c },
++  (__ev64_s32__) { 0x123e91e6, 0xfa853851 },
++  (__ev64_s32__) { 0x27b1ec0, 0xfe37652b },
++  (__ev64_s32__) { 0xe87dc30, 0x2a335147 },
++  (__ev64_s32__) { 0x109ac0fe, 0x27a8ebad },
++  (__ev64_s32__) { 0x8dc2b6e, 0x2a8be3c0 },
++  (__ev64_s32__) { 0xfc6bed83, 0x3186e5f0 },
++  (__ev64_s32__) { 0x14a23a03, 0x361d0881 },
++  (__ev64_s32__) { 0xcde634b, 0x357beab3 },
++  (__ev64_s32__) { 0x23bb13d7, 0x3da11ac7 },
++  (__ev64_s32__) { 0x1e52df57, 0x742fc0f6 },
++  (__ev64_s32__) { 0x4a57f227, 0x76f4c02f },
++  (__ev64_s32__) { 0x47e98f25, 0x7fffffff },
++  (__ev64_s32__) { 0x699b888f, 0x7fffffff },
++  (__ev64_s32__) { 0x6a87f305, 0x7fffffff },
++  (__ev64_s32__) { 0x3b1e53db, 0x7fffffff },
++  (__ev64_s32__) { 0x3c0dc88d, 0x795833af },
++  (__ev64_s32__) { 0x11249633, 0x7a390f79 },
++  (__ev64_s32__) { 0x2a11b3e7, 0x7fffffff },
++  (__ev64_s32__) { 0x1ed1db35, 0x6c5d67ef },
++  (__ev64_s32__) { 0xc521bed, 0x4af879cd },
++  (__ev64_s32__) { 0xb295c8b, 0x49da6c96 },
++  (__ev64_s32__) { 0xf987680b, 0x6403dd06 },
++  (__ev64_s32__) { 0xcf488ceb, 0x63f7942e },
++  (__ev64_s32__) { 0xf4dc3e3f, 0x591bfd4e },
++  (__ev64_s32__) { 0xfe3a5db6, 0x5ff34441 },
++  (__ev64_s32__) { 0x1ae2d81c, 0x5fe26315 },
++  (__ev64_s32__) { 0x278baa4d, 0x7fffffff },
++  (__ev64_s32__) { 0x1f28c47c, 0x6aafbb7f },
++  (__ev64_s32__) { 0xf935d9bc, 0x6289ef02 },
++  (__ev64_s32__) { 0xe20c26b6, 0x644fdd6a },
++  (__ev64_s32__) { 0xee7cb510, 0x761b49f8 },
++  (__ev64_s32__) { 0xfc061051, 0x7fffffff },
++  (__ev64_s32__) { 0xc57e934c, 0x6930bbff },
++  (__ev64_s32__) { 0xb55821e2, 0x60b24541 },
++  (__ev64_s32__) { 0xc2f7e8d4, 0x62eb4be1 },
++  (__ev64_s32__) { 0xa0b4fee2, 0x4f4db3c1 },
++  (__ev64_s32__) { 0xb4cdd8a8, 0x5199c3a1 },
++  (__ev64_s32__) { 0xb3f9fb2e, 0x52b88717 },
++  (__ev64_s32__) { 0xb407891a, 0x53f66d17 },
++  (__ev64_s32__) { 0xc34000be, 0x67235f18 },
++  (__ev64_s32__) { 0xadf09022, 0x4a91e7ce },
++  (__ev64_s32__) { 0xd58fda9e, 0x423a260e },
++  (__ev64_s32__) { 0x9ef5ed4a, 0x4302db52 },
++  (__ev64_s32__) { 0x97e75a96, 0x338c8792 },
++  (__ev64_s32__) { 0x8ff9a4f6, 0x6a5e3008 },
++  (__ev64_s32__) { 0x94161484, 0x6ada26c2 },
++  (__ev64_s32__) { 0xc2bbdb6c, 0x7fffffff },
++  (__ev64_s32__) { 0xcc5d6e24, 0x7fffffff },
++  (__ev64_s32__) { 0x9710c341, 0x7f5e661d },
++  (__ev64_s32__) { 0x89f8f0df, 0x79c2130d },
++  (__ev64_s32__) { 0x89d23583, 0x79f6e22d },
++  (__ev64_s32__) { 0xbcc488f3, 0x4384cf4f },
++  (__ev64_s32__) { 0xb84d52cf, 0xb830e4f },
++  (__ev64_s32__) { 0xca7e553b, 0xfea522c8 },
++  (__ev64_s32__) { 0xcd9527ff, 0xf4bf426b },
++  (__ev64_s32__) { 0xd0eaa6eb, 0xfa084149 },
++  (__ev64_s32__) { 0xc55d1b07, 0x4e9b03f },
++  (__ev64_s32__) { 0xd12afb6a, 0xc23a7ed },
++  (__ev64_s32__) { 0xd97b21a1, 0x19d2c873 },
++  (__ev64_s32__) { 0xe0669cd0, 0x296e9717 },
++  (__ev64_s32__) { 0xeeaa5530, 0xc343c07 },
++  (__ev64_s32__) { 0xf22f285c, 0xf080673f },
++  (__ev64_s32__) { 0xec891860, 0xe78edd0d },
++  (__ev64_s32__) { 0xe554ada9, 0xbc56db95 },
++  (__ev64_s32__) { 0xf03f79a2, 0xc0cd3efd },
++  (__ev64_s32__) { 0xe0f62d0b, 0xbe4368dd },
++  (__ev64_s32__) { 0xe05a7b30, 0xc3c76c76 },
++  (__ev64_s32__) { 0xe71e64c2, 0xc7e4dad7 },
++  (__ev64_s32__) { 0xeca46980, 0xb62c7b1f },
++  (__ev64_s32__) { 0xe95a9860, 0xc4e83b81 },
++  (__ev64_s32__) { 0x1d63ee, 0xc9a63085 },
++  (__ev64_s32__) { 0xd2ad3e7b, 0xcbed71a5 },
++  (__ev64_s32__) { 0xd09615db, 0xe463bf6b },
++  (__ev64_s32__) { 0xf8b67a61, 0xf1baad24 },
++  (__ev64_s32__) { 0xcd36aaa9, 0xf5ea1a9f },
++  (__ev64_s32__) { 0xd7e29d49, 0xf446dcb5 },
++  (__ev64_s32__) { 0xd6f3e8bc, 0xe85b6d35 },
++  (__ev64_s32__) { 0xbb4f287a, 0x1407ffc3 },
++  (__ev64_s32__) { 0xba23638d, 0x369f0db2 },
++  (__ev64_s32__) { 0x88530fcd, 0x5b7304c2 },
++  (__ev64_s32__) { 0x80000000, 0x63b6183f },
++  (__ev64_s32__) { 0x80000000, 0x7be9bb4f },
++  (__ev64_s32__) { 0x80000000, 0x7fffffff },
++  (__ev64_s32__) { 0x973e2beb, 0x59573189 },
++  (__ev64_s32__) { 0xa9ac6bfc, 0x3d4aef75 },
++  (__ev64_s32__) { 0xa47a5fdf, 0x4086a555 },
++  (__ev64_s32__) { 0x80000000, 0x3fb8af55 },
++  (__ev64_s32__) { 0x80000000, 0x2be05c3d },
++  (__ev64_s32__) { 0x90885314, 0x222a8c27 },
++  (__ev64_s32__) { 0xa5b423fa, 0x3d64d843 },
++  (__ev64_s32__) { 0x9ea6952f, 0x3b00ff73 },
++  (__ev64_s32__) { 0xbae23ec1, 0x3c501afc },
++  (__ev64_s32__) { 0xb9ba5a41, 0x25636054 },
++  (__ev64_s32__) { 0xd399f8ed, 0x18d5e196 },
++  (__ev64_s32__) { 0x39f23e2, 0x190d94c4 },
++  (__ev64_s32__) { 0xfb05a6f2, 0xff89946e },
++  (__ev64_s32__) { 0xfbd5a2da, 0xf258830e },
++  (__ev64_s32__) { 0xa574fd9, 0xaf07d16 },
++  (__ev64_s32__) { 0xe2ad4ee4, 0x15d3da20 },
++  (__ev64_s32__) { 0xe3db6fc2, 0xf4c22b67 },
++  (__ev64_s32__) { 0xe3ca7e48, 0xe770128a },
++  (__ev64_s32__) { 0xe8810040, 0xe189b68a },
++  (__ev64_s32__) { 0xfa298120, 0xdcc7c620 },
++  (__ev64_s32__) { 0xfa7a0255, 0xa8a699a2 },
++  (__ev64_s32__) { 0xf717d359, 0xb0329f57 },
++  (__ev64_s32__) { 0x34ffbb8f, 0xaae483ab },
++  (__ev64_s32__) { 0x34f3fda4, 0x9e261d70 },
++  (__ev64_s32__) { 0x2a12e0d9, 0x937f11ed },
++  (__ev64_s32__) { 0x12988fb9, 0x8f53eef1 },
++  (__ev64_s32__) { 0x11eb8451, 0x83de91c1 },
++  (__ev64_s32__) { 0x3eafdaaf, 0x80000000 },
++  (__ev64_s32__) { 0xd390699, 0x80000000 },
++  (__ev64_s32__) { 0x5f606c5, 0x89226cbe },
++  (__ev64_s32__) { 0x121129ff, 0x80000000 },
++  (__ev64_s32__) { 0xeff4b29f, 0x845b7b8f },
++  (__ev64_s32__) { 0x5f7a5d3, 0x8467f23f },
++  (__ev64_s32__) { 0xa46e3f9, 0x80000000 },
++  (__ev64_s32__) { 0xeba619f5, 0x921b6780 },
++  (__ev64_s32__) { 0xd54e9691, 0x94d300be },
++  (__ev64_s32__) { 0xc54720e6, 0x80000000 },
++  (__ev64_s32__) { 0xcaf81496, 0x80840bf8 },
++  (__ev64_s32__) { 0xce34251e, 0x80000000 },
++  (__ev64_s32__) { 0xcddd6a4e, 0x80000000 },
++  (__ev64_s32__) { 0xe3c91f8e, 0x80000000 },
++  (__ev64_s32__) { 0xe95d72da, 0x80000000 },
++  (__ev64_s32__) { 0xe926284a, 0x9595faf0 },
++  (__ev64_s32__) { 0xd3d14f42, 0x85dfa6f4 },
++  (__ev64_s32__) { 0xd194e023, 0x8f3e0031 },
++  (__ev64_s32__) { 0xf56638fb, 0x93147e50 },
++  (__ev64_s32__) { 0xce0ecc6a, 0x865e19e6 },
++  (__ev64_s32__) { 0xc5294737, 0x844aa9cc },
++  (__ev64_s32__) { 0xca61d633, 0x80000000 },
++  (__ev64_s32__) { 0xb2a00f73, 0x80000000 },
++  (__ev64_s32__) { 0x9ebaa9c3, 0x903239a8 },
++  (__ev64_s32__) { 0x9b01cd62, 0x890f1d1c },
++  (__ev64_s32__) { 0x80000000, 0x8872d894 },
++  (__ev64_s32__) { 0x9296b680, 0x8991af96 },
++  (__ev64_s32__) { 0x84756680, 0x90e3394a },
++  (__ev64_s32__) { 0x80000000, 0x8c0c8375 },
++  (__ev64_s32__) { 0x813d468d, 0x902f0689 },
++  (__ev64_s32__) { 0x80000000, 0x8fa53fc9 },
++  (__ev64_s32__) { 0xa4f4c1ca, 0x9c425ff9 },
++  (__ev64_s32__) { 0x8c140b72, 0x9956d455 },
++  (__ev64_s32__) { 0x9d67c652, 0x80000000 },
++  (__ev64_s32__) { 0x9ef797d6, 0x94c5ca50 },
++  (__ev64_s32__) { 0xb13a2fcb, 0x80000000 },
++  (__ev64_s32__) { 0x88fd9750, 0x87ed71cc },
++  (__ev64_s32__) { 0xa610d1e0, 0x80000000 },
++  (__ev64_s32__) { 0x80000000, 0x80000000 },
++  (__ev64_s32__) { 0x96ba7fba, 0x87605aef },
++  (__ev64_s32__) { 0xd304ad99, 0x8300dc8b },
++  (__ev64_s32__) { 0xc41731df, 0x80000000 },
++  (__ev64_s32__) { 0xc835611d, 0xae76bb99 },
++  (__ev64_s32__) { 0xbfc65b13, 0xc119e189 },
++  (__ev64_s32__) { 0xb7142df2, 0xc6e7235d },
++  (__ev64_s32__) { 0xe781768a, 0xbd168ea5 },
++  (__ev64_s32__) { 0xed261438, 0xc3cd6e36 },
++  (__ev64_s32__) { 0xefcb093c, 0xa7040836 },
++  (__ev64_s32__) { 0xeda6dc9c, 0xc9e365e7 },
++  (__ev64_s32__) { 0xb7c05efa, 0xc2185a0e },
++  (__ev64_s32__) { 0xbdb31adc, 0xcd0e9736 },
++  (__ev64_s32__) { 0x9fdcdab6, 0xc962303e },
++  (__ev64_s32__) { 0x90723a94, 0xcd5dcae0 },
++  (__ev64_s32__) { 0xb33b347c, 0xce8d8577 },
++  (__ev64_s32__) { 0xc851f07c, 0x9ed842f3 },
++  (__ev64_s32__) { 0xc8ce9dfc, 0xc7680e5f },
++  (__ev64_s32__) { 0xb33b4a83, 0xa7b9928b },
++  (__ev64_s32__) { 0xb3885ddf, 0xa7263680 },
++  (__ev64_s32__) { 0xa88b586b, 0xa04f2a1f },
++  (__ev64_s32__) { 0xa7aa3717, 0xa25d278a },
++  (__ev64_s32__) { 0xbb681033, 0xaf1b4a0d },
++  (__ev64_s32__) { 0x80000000, 0xcc7cecf7 },
++  (__ev64_s32__) { 0x8a9343be, 0xa39f940d },
++  (__ev64_s32__) { 0xa134e840, 0xac3291e1 },
++  (__ev64_s32__) { 0x80000000, 0xad57c0d7 },
++  (__ev64_s32__) { 0x8b508742, 0xc464e748 },
++  (__ev64_s32__) { 0x80000000, 0xbeaf927c },
++  (__ev64_s32__) { 0x80000000, 0xbf751434 },
++  (__ev64_s32__) { 0x80000000, 0xe663bc6c },
++  (__ev64_s32__) { 0x8d7bc8b8, 0xe0df6f30 },
++  (__ev64_s32__) { 0x80000000, 0xfc14c6b4 },
++  (__ev64_s32__) { 0x83ea98f4, 0xe4703a4a },
++  (__ev64_s32__) { 0xa6b93eff, 0xe6e8987e },
++  (__ev64_s32__) { 0xa0a7d869, 0x6ba685 },
++  (__ev64_s32__) { 0x9d53906f, 0xe173a137 },
++  (__ev64_s32__) { 0x9a129fa7, 0xe04f4a80 },
++  (__ev64_s32__) { 0x8c00826f, 0xdaff76e0 },
++  (__ev64_s32__) { 0xa383a8f3, 0xe4862cac },
++  (__ev64_s32__) { 0xaa445dd1, 0xf47de9ed },
++  (__ev64_s32__) { 0xbabfa21c, 0x1604e135 },
++  (__ev64_s32__) { 0xa532665a, 0x11edf03b },
++  (__ev64_s32__) { 0xb4115d22, 0x1230af89 },
++  (__ev64_s32__) { 0xbb29b2a4, 0x3014eef1 },
++  (__ev64_s32__) { 0xacb71480, 0x42a265bc },
++  (__ev64_s32__) { 0x9fb92589, 0x3334a1e4 },
++  (__ev64_s32__) { 0x98a3472f, 0x204a3e47 },
++  (__ev64_s32__) { 0x9b02f317, 0x2b6449c3 },
++  (__ev64_s32__) { 0xca92bb21, 0x385f4fd0 },
++  (__ev64_s32__) { 0xdf844361, 0x3d2a587e },
++  (__ev64_s32__) { 0xd13c739a, 0x3a88bd62 },
++  (__ev64_s32__) { 0xcd40172e, 0x419b298c },
++  (__ev64_s32__) { 0xd2033e8d, 0x5b285ec1 },
++  (__ev64_s32__) { 0xd2aba217, 0x6418e8fe },
++  (__ev64_s32__) { 0xc9e050be, 0x62081b0a },
++  (__ev64_s32__) { 0xd90520c8, 0x59f5a403 },
++  (__ev64_s32__) { 0xd94a5818, 0x5da0b501 },
++  (__ev64_s32__) { 0xb720935c, 0x3f9b18a6 },
++  (__ev64_s32__) { 0xc7c557ac, 0x50ccddd2 },
++  (__ev64_s32__) { 0xb9fceba8, 0x59fb2072 },
++  (__ev64_s32__) { 0xcc29e566, 0x58c351e6 },
++  (__ev64_s32__) { 0xc7acc71f, 0x5cef2182 },
++  (__ev64_s32__) { 0xdd644ace, 0x409b1604 },
++  (__ev64_s32__) { 0xc0de5dbe, 0x29613635 },
++  (__ev64_s32__) { 0xe22a3f42, 0x3d9b153e },
++  (__ev64_s32__) { 0x251db12, 0x4d07bba8 },
++  (__ev64_s32__) { 0xe43f5a21, 0x5b13d654 },
++  (__ev64_s32__) { 0x6ea63c1, 0x4041e3de },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhessianw, __ev64_s32__, __ev64_s16__, __ev64_s16__, rA4s16, rB4s16, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evmheusiaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x1e, 0x63 },
++  (__ev64_u32__) { 0x78, 0x7f },
++  (__ev64_u32__) { 0xfa, 0x97 },
++  (__ev64_u32__) { 0x194, 0x131 },
++  (__ev64_u32__) { 0x194, 0x149 },
++  (__ev64_u32__) { 0x1bb, 0x1d5 },
++  (__ev64_u32__) { 0x216, 0x1d8 },
++  (__ev64_u32__) { 0x22e, 0x1f4 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmheusiaaw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmheusianw_baseline[] = {
++
++  // TODO: No idea why we have all 0's here...
++
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmheusianw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmhossf_baseline[] = {
++
++  (__ev64_u32__) { 0x134, 0x8 },
++  (__ev64_u32__) { 0xfc, 0xb4 },
++  (__ev64_u32__) { 0xa8, 0x4 },
++  (__ev64_u32__) { 0x1e, 0x28 },
++  (__ev64_u32__) { 0x46, 0x2a },
++  (__ev64_u32__) { 0x68, 0xdc },
++  (__ev64_u32__) { 0x18, 0x48 },
++  (__ev64_u32__) { 0x70, 0x28 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossf, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 0)
++
++#ifdef __SPE__
++__ev64_u32__ evmhossfa_baseline[] = {
++
++  (__ev64_u32__) { 0x134, 0x8 },
++  (__ev64_u32__) { 0xfc, 0xb4 },
++  (__ev64_u32__) { 0xa8, 0x4 },
++  (__ev64_u32__) { 0x1e, 0x28 },
++  (__ev64_u32__) { 0x46, 0x2a },
++  (__ev64_u32__) { 0x68, 0xdc },
++  (__ev64_u32__) { 0x18, 0x48 },
++  (__ev64_u32__) { 0x70, 0x28 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossfa, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmhossfaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x134, 0x8 },
++  (__ev64_u32__) { 0x230, 0xbc },
++  (__ev64_u32__) { 0x2d8, 0xc0 },
++  (__ev64_u32__) { 0x2f6, 0xe8 },
++  (__ev64_u32__) { 0x33c, 0x112 },
++  (__ev64_u32__) { 0x3a4, 0x1ee },
++  (__ev64_u32__) { 0x3bc, 0x236 },
++  (__ev64_u32__) { 0x42c, 0x25e },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossfaaw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmhossfanw_baseline[] = {
++
++  (__ev64_u32__) { 0xfffffecc, 0xfffffff8 },
++  (__ev64_u32__) { 0xfffffdd0, 0xffffff44 },
++  (__ev64_u32__) { 0xfffffd28, 0xffffff40 },
++  (__ev64_u32__) { 0xfffffd0a, 0xffffff18 },
++  (__ev64_u32__) { 0xfffffcc4, 0xfffffeee },
++  (__ev64_u32__) { 0xfffffc5c, 0xfffffe12 },
++  (__ev64_u32__) { 0xfffffc44, 0xfffffdca },
++  (__ev64_u32__) { 0xfffffbd4, 0xfffffda2 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossfanw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_s16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_s32__ evmhossiaaw_baseline[] = {
++
++  (__ev64_s32__) { 0x30, 0x7 },
++  (__ev64_s32__) { 0xbf, 0x3e },
++  (__ev64_s32__) { 0xd4, 0x42 },
++  (__ev64_s32__) { 0x122, 0x78 },
++  (__ev64_s32__) { 0x16d, 0xc0 },
++  (__ev64_s32__) { 0x179, 0xd6 },
++  (__ev64_s32__) { 0x1a9, 0xdf },
++  (__ev64_s32__) { 0x1b2, 0xfd },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossiaaw, __ev64_s32__, __ev64_s16__, __ev64_s16__, rA4s16_sd, rB4s16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_s32__ evmhossianw_baseline[] = {
++
++  (__ev64_s32__) { 0xffffffd0, 0xfffffff9 },
++  (__ev64_s32__) { 0xffffff41, 0xffffffc2 },
++  (__ev64_s32__) { 0xffffff2c, 0xffffffbe },
++  (__ev64_s32__) { 0xfffffede, 0xffffff88 },
++  (__ev64_s32__) { 0xfffffe93, 0xffffff40 },
++  (__ev64_s32__) { 0xfffffe87, 0xffffff2a },
++  (__ev64_s32__) { 0xfffffe57, 0xffffff21 },
++  (__ev64_s32__) { 0xfffffe4e, 0xffffff03 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhossianw, __ev64_s32__, __ev64_s16__, __ev64_s16__, rA4s16_sd, rB4s16_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u16__) { 0x0, 0x0, 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evmhousiaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x9a, 0x4 },
++  (__ev64_u32__) { 0x118, 0x5e },
++  (__ev64_u32__) { 0x16c, 0x60 },
++  (__ev64_u32__) { 0x17b, 0x74 },
++  (__ev64_u32__) { 0x19e, 0x89 },
++  (__ev64_u32__) { 0x1d2, 0xf7 },
++  (__ev64_u32__) { 0x1de, 0x11b },
++  (__ev64_u32__) { 0x216, 0x12f },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhousiaaw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmhousianw_baseline[] = {
++
++  // TODO: No idea why we have all 0's here...
++
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmhousianw, __ev64_u32__, __ev64_u16__, __ev64_u16__, rA4u16_sd, rB4u16_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evmwhssf_baseline[] = {
++
++  (__ev64_u32__) { 0x3cf649b6, 0x2fd2a91 },
++  (__ev64_u32__) { 0x3cbaf6, 0x18acad1e },
++  (__ev64_u32__) { 0xfd51df76, 0x14d9f098 },
++  (__ev64_u32__) { 0x46f78b7, 0xf9841142 },
++  (__ev64_u32__) { 0x27b4aba4, 0x47062708 },
++  (__ev64_u32__) { 0xe23b409a, 0x35c65c54 },
++  (__ev64_u32__) { 0x2bccd29, 0x29f0a7be },
++  (__ev64_u32__) { 0x4d9a7177, 0xcfe76d0c },
++  (__ev64_u32__) { 0xef1d51df, 0x21382f99 },
++  (__ev64_u32__) { 0x2521dddf, 0xf200ad9 },
++  (__ev64_u32__) { 0xac55bd55, 0x15d2636f },
++  (__ev64_u32__) { 0x9c769662, 0xa626b63 },
++  (__ev64_u32__) { 0xfe8684fc, 0xd4f777d9 },
++  (__ev64_u32__) { 0xc79edbd3, 0xee21f8ba },
++  (__ev64_u32__) { 0xe9f6681e, 0x27644d34 },
++  (__ev64_u32__) { 0xdc451d62, 0xf7218d41 },
++  (__ev64_u32__) { 0xfefd1544, 0x66b24e2 },
++  (__ev64_u32__) { 0xc75841dc, 0x568f6c68 },
++  (__ev64_u32__) { 0xfcab6051, 0x1495993e },
++  (__ev64_u32__) { 0xec1a4e8b, 0xb296881 },
++  (__ev64_u32__) { 0x1b1f2b45, 0xa01e2d8 },
++  (__ev64_u32__) { 0x27300e8, 0x299d1431 },
++  (__ev64_u32__) { 0xb70057a0, 0x4aabc54c },
++  (__ev64_u32__) { 0x5b68c7f, 0xece59cc8 },
++  (__ev64_u32__) { 0xf7d938b4, 0xff8c1d1d },
++  (__ev64_u32__) { 0xf4c54bc6, 0x5b382abf },
++  (__ev64_u32__) { 0x5b4a1013, 0xcd1e3304 },
++  (__ev64_u32__) { 0x208cbd13, 0x7ba06c5 },
++  (__ev64_u32__) { 0xd7c1c192, 0xe18b36b2 },
++  (__ev64_u32__) { 0xbc5d0ea7, 0xf81fdc34 },
++  (__ev64_u32__) { 0xca21c270, 0x2b69e47d },
++  (__ev64_u32__) { 0xc1b4390f, 0x83b314c },
++  (__ev64_u32__) { 0x59fcca4, 0x2f6335fe },
++  (__ev64_u32__) { 0x6618d81, 0xf543f8d5 },
++  (__ev64_u32__) { 0xbcb62ce, 0x3834c8b },
++  (__ev64_u32__) { 0xf79c808e, 0x2aa62a6 },
++  (__ev64_u32__) { 0x1b90166, 0xbc883ac1 },
++  (__ev64_u32__) { 0xe10e7dc5, 0x82f733e },
++  (__ev64_u32__) { 0x1e486736, 0xe9a1b4a6 },
++  (__ev64_u32__) { 0xd65d4cd0, 0xbe052b44 },
++  (__ev64_u32__) { 0xf2ae1434, 0x146a2b2c },
++  (__ev64_u32__) { 0x31f01ba5, 0xffc57a80 },
++  (__ev64_u32__) { 0x2ebc50af, 0xd3d05848 },
++  (__ev64_u32__) { 0x100c858e, 0x1d2cf902 },
++  (__ev64_u32__) { 0x411c8edb, 0x1ff28619 },
++  (__ev64_u32__) { 0xfde24f00, 0xfdad8e34 },
++  (__ev64_u32__) { 0x597266a7, 0xd8ce84df },
++  (__ev64_u32__) { 0xe0fbd767, 0xbeaf5845 },
++  (__ev64_u32__) { 0xfe789a15, 0xa00b0cf },
++  (__ev64_u32__) { 0x664802b, 0x1651d552 },
++  (__ev64_u32__) { 0x92fc9722, 0x32545237 },
++  (__ev64_u32__) { 0xd10fb807, 0xde2e2bbd },
++  (__ev64_u32__) { 0x68eb858, 0xbca308e3 },
++  (__ev64_u32__) { 0xd1190ee, 0x1d5ca62f },
++  (__ev64_u32__) { 0xc7749c50, 0xb5f28819 },
++  (__ev64_u32__) { 0xea3c030b, 0xf5146dc3 },
++  (__ev64_u32__) { 0xef446be3, 0xdcca0316 },
++  (__ev64_u32__) { 0x32b1b4fd, 0xde3c5540 },
++  (__ev64_u32__) { 0x18ab2027, 0xfdc45f0b },
++  (__ev64_u32__) { 0xe951ae11, 0xfaddf6c3 },
++  (__ev64_u32__) { 0x386e433a, 0x1639a51a },
++  (__ev64_u32__) { 0x414e896, 0xd304be34 },
++  (__ev64_u32__) { 0xfd046fa4, 0xcfdd8c7f },
++  (__ev64_u32__) { 0x30395eb0, 0x34e8fee8 },
++  (__ev64_u32__) { 0xf922406f, 0xe82ac707 },
++  (__ev64_u32__) { 0xd377b0b2, 0x642440e },
++  (__ev64_u32__) { 0x7457091, 0xcae815dc },
++  (__ev64_u32__) { 0xf23e6000, 0xac08b2a },
++  (__ev64_u32__) { 0x31d6190a, 0x46baa385 },
++  (__ev64_u32__) { 0xea9b4eee, 0x53819eb },
++  (__ev64_u32__) { 0xb1fdc57e, 0xfe4a9215 },
++  (__ev64_u32__) { 0xe4cab7e7, 0xdc0a53b5 },
++  (__ev64_u32__) { 0x5842a9b8, 0xd0d1bd1d },
++  (__ev64_u32__) { 0x9d5a441, 0xf0912a95 },
++  (__ev64_u32__) { 0xf80e92b5, 0x719f098 },
++  (__ev64_u32__) { 0xe74ac7f9, 0xbd19d9d2 },
++  (__ev64_u32__) { 0x5343ff1, 0xd403c401 },
++  (__ev64_u32__) { 0xf25e43dd, 0x4bad3d1 },
++  (__ev64_u32__) { 0xf1b4f3c0, 0x17a3cdf7 },
++  (__ev64_u32__) { 0xf47bd835, 0xf6be7c36 },
++  (__ev64_u32__) { 0xadeee9e, 0xe72baa7b },
++  (__ev64_u32__) { 0xde8cbbdf, 0x3ac966b9 },
++  (__ev64_u32__) { 0xd65e7528, 0xa60f6cdf },
++  (__ev64_u32__) { 0xc8607029, 0xf7764f98 },
++  (__ev64_u32__) { 0xc47d1067, 0x2369291b },
++  (__ev64_u32__) { 0xfc03b5b6, 0x4d6cd98e },
++  (__ev64_u32__) { 0x273e9658, 0x91c0a56 },
++  (__ev64_u32__) { 0x72f6ef3d, 0x2c6f0735 },
++  (__ev64_u32__) { 0x7fef78, 0x44f8cc25 },
++  (__ev64_u32__) { 0xccc2cffd, 0x29918a0a },
++  (__ev64_u32__) { 0xd00784ab, 0xd6a5bf0d },
++  (__ev64_u32__) { 0x1d6cf928, 0xe903f11e },
++  (__ev64_u32__) { 0x3b5cc7e1, 0xb63040c1 },
++  (__ev64_u32__) { 0xe12eb2c5, 0xee01bba9 },
++  (__ev64_u32__) { 0x383e3991, 0xe4055b4b },
++  (__ev64_u32__) { 0xc9c97c69, 0x6d6b91b },
++  (__ev64_u32__) { 0xc65647f, 0xcc431265 },
++  (__ev64_u32__) { 0x6ab6fa9, 0xfca62738 },
++  (__ev64_u32__) { 0xa9ccaced, 0x90cc70a },
++  (__ev64_u32__) { 0xf31a093a, 0x39746a37 },
++  (__ev64_u32__) { 0xbe50c70d, 0xf8c53244 },
++  (__ev64_u32__) { 0xaed97961, 0x3e803b7b },
++  (__ev64_u32__) { 0x2a5d0fae, 0x182a1beb },
++  (__ev64_u32__) { 0x46872c0, 0x19c19f74 },
++  (__ev64_u32__) { 0xfedd7b12, 0x4bef2f2f },
++  (__ev64_u32__) { 0xf565016e, 0x16131891 },
++  (__ev64_u32__) { 0x3e1461c6, 0x9fc79269 },
++  (__ev64_u32__) { 0xfb2756e3, 0x26b60cc },
++  (__ev64_u32__) { 0x31836e, 0xd1ba9b },
++  (__ev64_u32__) { 0xe7c36d4d, 0xdeee41e6 },
++  (__ev64_u32__) { 0x23a4fc2e, 0xfdb991e },
++  (__ev64_u32__) { 0x3cfcb56, 0xde0d1860 },
++  (__ev64_u32__) { 0xd17c1d82, 0xf0c3bdb7 },
++  (__ev64_u32__) { 0x14ccdb8, 0x13bf7d12 },
++  (__ev64_u32__) { 0xd39abe74, 0xf8734f14 },
++  (__ev64_u32__) { 0xfaa2dcfd, 0x12ecf20c },
++  (__ev64_u32__) { 0x49e27d3, 0xf3b812d8 },
++  (__ev64_u32__) { 0xd5ae7032, 0xea7e9bfd },
++  (__ev64_u32__) { 0xba7e6fe8, 0x750461f },
++  (__ev64_u32__) { 0xfb7f7b29, 0xb1f47af4 },
++  (__ev64_u32__) { 0x63fe0e1, 0xf8e9da36 },
++  (__ev64_u32__) { 0xefd885d, 0x1095a7bc },
++  (__ev64_u32__) { 0x43f1c270, 0x31166fac },
++  (__ev64_u32__) { 0xf93045ea, 0xf1b987b7 },
++  (__ev64_u32__) { 0xf59a4097, 0x15625f85 },
++  (__ev64_u32__) { 0xf825fb7e, 0xc64ef025 },
++  (__ev64_u32__) { 0xf3b6792, 0x2ba5f69c },
++  (__ev64_u32__) { 0xfa2710f3, 0x10dd5a71 },
++  (__ev64_u32__) { 0xc92f581c, 0xfef1aa1e },
++  (__ev64_u32__) { 0x2147c718, 0x2609e82 },
++  (__ev64_u32__) { 0xca6de68a, 0x2a0c74fe },
++  (__ev64_u32__) { 0xf1b1062d, 0x60efe69 },
++  (__ev64_u32__) { 0x527f3714, 0x19fbe969 },
++  (__ev64_u32__) { 0xf753961e, 0x3330e },
++  (__ev64_u32__) { 0x4cf65b07, 0x16a98b44 },
++  (__ev64_u32__) { 0x5599066d, 0x2a42478 },
++  (__ev64_u32__) { 0xc9a83924, 0x2d9843af },
++  (__ev64_u32__) { 0xfe5a8eab, 0x13befce4 },
++  (__ev64_u32__) { 0xfdc4786a, 0x779aff1 },
++  (__ev64_u32__) { 0xfbf3e951, 0xfbb5177d },
++  (__ev64_u32__) { 0x5b87923, 0x513a6b },
++  (__ev64_u32__) { 0x10a231b9, 0x2b494ab0 },
++  (__ev64_u32__) { 0xdccf8bb8, 0xffc632eb },
++  (__ev64_u32__) { 0x528240f, 0x404e9fb },
++  (__ev64_u32__) { 0x1d95e3f7, 0xea279fb9 },
++  (__ev64_u32__) { 0xbb76f82, 0xf7335d18 },
++  (__ev64_u32__) { 0x3590c77, 0xbc4c6fbe },
++  (__ev64_u32__) { 0xda84dc94, 0xf1c1fbaa },
++  (__ev64_u32__) { 0x71801c1, 0xffd147fc },
++  (__ev64_u32__) { 0xb8fee8ec, 0xfa46a3f8 },
++  (__ev64_u32__) { 0x16d63a02, 0xa3e2ddd4 },
++  (__ev64_u32__) { 0x2aa5636f, 0xe761952e },
++  (__ev64_u32__) { 0xd290fe28, 0x23d8e104 },
++  (__ev64_u32__) { 0x11143869, 0x179d049 },
++  (__ev64_u32__) { 0x350ed900, 0x88044a9 },
++  (__ev64_u32__) { 0xf8162be9, 0x32dd87f8 },
++  (__ev64_u32__) { 0xdfb21bc0, 0x4b131af6 },
++  (__ev64_u32__) { 0x32b1de91, 0x5b5722df },
++  (__ev64_u32__) { 0xf4c48b3, 0x25f60172 },
++  (__ev64_u32__) { 0x1646e352, 0x25777d0e },
++  (__ev64_u32__) { 0xac2b2c, 0xfc827f0a },
++  (__ev64_u32__) { 0xbacb5a9, 0x1c20d853 },
++  (__ev64_u32__) { 0x3c9c6ee7, 0x416d06 },
++  (__ev64_u32__) { 0x2ca887c, 0x37165927 },
++  (__ev64_u32__) { 0x58c16feb, 0x3cfe684 },
++  (__ev64_u32__) { 0x463a09e, 0x2ebf96 },
++  (__ev64_u32__) { 0xfef286f0, 0x522367f5 },
++  (__ev64_u32__) { 0x32513f0, 0x107b4de3 },
++  (__ev64_u32__) { 0x6db38174, 0x1d1f9129 },
++  (__ev64_u32__) { 0x1b178cec, 0xb9fb2e54 },
++  (__ev64_u32__) { 0xdb75475, 0x4089c99f },
++  (__ev64_u32__) { 0x84a2c2, 0x4c774e2a },
++  (__ev64_u32__) { 0x1617c7c, 0xe3de2da5 },
++  (__ev64_u32__) { 0x3292ccab, 0x352bd00 },
++  (__ev64_u32__) { 0xe9963b1b, 0x2edd4dfc },
++  (__ev64_u32__) { 0xc229a0e2, 0x10565cc3 },
++  (__ev64_u32__) { 0x2141f0d, 0xae2842d7 },
++  (__ev64_u32__) { 0x27814b1f, 0xe8ea12ef },
++  (__ev64_u32__) { 0xd30929, 0x33e2bc },
++  (__ev64_u32__) { 0x564485a, 0x47a82422 },
++  (__ev64_u32__) { 0xf2b77614, 0x40e880b6 },
++  (__ev64_u32__) { 0x39ab5ca8, 0x31643f67 },
++  (__ev64_u32__) { 0x521eb30e, 0x2badbff5 },
++  (__ev64_u32__) { 0xfd2f2e5c, 0xc0dd2a6b },
++  (__ev64_u32__) { 0xec04739d, 0x36d566de },
++  (__ev64_u32__) { 0xc249fc78, 0xdb1cb958 },
++  (__ev64_u32__) { 0xd8297014, 0xb579d73a },
++  (__ev64_u32__) { 0xe940d783, 0xfbd2fd80 },
++  (__ev64_u32__) { 0xe83aaa4f, 0xfa76fdcf },
++  (__ev64_u32__) { 0xc16ccd21, 0x28a9f1a1 },
++  (__ev64_u32__) { 0xd84913d9, 0x5a408584 },
++  (__ev64_u32__) { 0xae5f3ce2, 0xbf1a5f1c },
++  (__ev64_u32__) { 0xb65ace27, 0x3244f4f4 },
++  (__ev64_u32__) { 0xe61df633, 0x347c9d3f },
++  (__ev64_u32__) { 0x4120c52, 0xfcc42a38 },
++  (__ev64_u32__) { 0x101ae910, 0xf7d3f3fc },
++  (__ev64_u32__) { 0xeafe5bf2, 0x4dad88bc },
++  (__ev64_u32__) { 0x4917aac0, 0xc540451a },
++  (__ev64_u32__) { 0xf4f4a859, 0x8a1d0dff },
++  (__ev64_u32__) { 0xe4fe7a78, 0xf3686cc4 },
++  (__ev64_u32__) { 0x290a28fd, 0x6053d681 },
++  (__ev64_u32__) { 0xd4674333, 0x2e83a1ab },
++  (__ev64_u32__) { 0x1d9e93e8, 0x405982fd },
++  (__ev64_u32__) { 0xf99a5c24, 0x333c663a },
++  (__ev64_u32__) { 0xe495021b, 0xe39a9102 },
++  (__ev64_u32__) { 0xf2a63e9e, 0x505ddbe },
++  (__ev64_u32__) { 0x3a34099a, 0xfbd8c084 },
++  (__ev64_u32__) { 0xfa55681b, 0xb6df26f3 },
++  (__ev64_u32__) { 0x3e8760, 0x1ce9f0 },
++  (__ev64_u32__) { 0x1955c74e, 0xf1f8fa08 },
++  (__ev64_u32__) { 0xfd68e996, 0x77788f3 },
++  (__ev64_u32__) { 0x16176180, 0x48457ab },
++  (__ev64_u32__) { 0x49f409f, 0xfdc1762a },
++  (__ev64_u32__) { 0x7c94aa, 0xd78dc24a },
++  (__ev64_u32__) { 0xc4099ac, 0x4c0d188 },
++  (__ev64_u32__) { 0x1cbf5ce5, 0x4fecb051 },
++  (__ev64_u32__) { 0x99ea636, 0xa7e821a8 },
++  (__ev64_u32__) { 0x261dda41, 0x34f23da7 },
++  (__ev64_u32__) { 0x25c13628, 0x26f336be },
++  (__ev64_u32__) { 0xfd80f181, 0xfa8cee72 },
++  (__ev64_u32__) { 0x1df67846, 0x9fc40cf },
++  (__ev64_u32__) { 0xa8971f6, 0x102eae86 },
++  (__ev64_u32__) { 0xbe3ba859, 0xf952877d },
++  (__ev64_u32__) { 0xcc0f54, 0xfce33a5d },
++  (__ev64_u32__) { 0xfc5e13d9, 0x4b80f79 },
++  (__ev64_u32__) { 0x34246112, 0xc53473ae },
++  (__ev64_u32__) { 0x525343ce, 0xed7f8a95 },
++  (__ev64_u32__) { 0x381fb56e, 0x439c5dd8 },
++  (__ev64_u32__) { 0xe56fbcbd, 0x27aca9a1 },
++  (__ev64_u32__) { 0xefb67f3f, 0xf9f96126 },
++  (__ev64_u32__) { 0xfea8ccdf, 0x1294363 },
++  (__ev64_u32__) { 0x12b0edf9, 0xcd16942b },
++  (__ev64_u32__) { 0x664c7b82, 0x1ec0b80b },
++  (__ev64_u32__) { 0xcf62a55, 0x868ca24 },
++  (__ev64_u32__) { 0xff7b02ba, 0x39767fe },
++  (__ev64_u32__) { 0x1d2782f, 0xc1e2574d },
++  (__ev64_u32__) { 0xe2d6c6b3, 0x431a179d },
++  (__ev64_u32__) { 0xd92d333b, 0xe85a318b },
++  (__ev64_u32__) { 0x2285eae9, 0x7661c59 },
++  (__ev64_u32__) { 0x28767224, 0x1eb7a5e5 },
++  (__ev64_u32__) { 0xef52d9cb, 0xf79b3346 },
++  (__ev64_u32__) { 0xac861438, 0xae413779 },
++  (__ev64_u32__) { 0x1d6ba870, 0xf90bf461 },
++  (__ev64_u32__) { 0xdf91caae, 0xe2c8a958 },
++  (__ev64_u32__) { 0x10c1a70e, 0xeeec2dce },
++  (__ev64_u32__) { 0x2ddaa318, 0x583eab5 },
++  (__ev64_u32__) { 0x351f3be, 0xfc40f497 },
++  (__ev64_u32__) { 0xb0ed238b, 0xedcf9814 },
++  (__ev64_u32__) { 0xeabbfc24, 0x308d07b5 },
++  (__ev64_u32__) { 0xc275172a, 0x1d3a1c2d },
++  (__ev64_u32__) { 0x42e046f, 0xef52a0e8 },
++  (__ev64_u32__) { 0xc0b10d2f, 0x4a115fdd },
++  (__ev64_u32__) { 0xe4161ee0, 0xaa9d889 },
++  (__ev64_u32__) { 0xf0ec0685, 0xff0a4850 },
++  (__ev64_u32__) { 0xc8d35dd8, 0xfbf4b4b9 },
++  (__ev64_u32__) { 0x610930da, 0xfd29083d },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwhssf, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32, rB2u32, 0, 0)
++
++#ifdef __SPE__
++__ev64_u32__ *evmwhssfa_baseline = evmwhssf_baseline;
++#endif
++evmrDrArB(evmwhssfa, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32, rB2u32, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_s32__ evmwlssiaaw_baseline[] = {
++
++  (__ev64_s32__) { 0xe, 0xa9 },
++  (__ev64_s32__) { 0x1b, 0xa9 },
++  (__ev64_s32__) { 0x99, 0xd1 },
++  (__ev64_s32__) { 0x109, 0x15d },
++  (__ev64_s32__) { 0x145, 0x199 },
++  (__ev64_s32__) { 0x145, 0x1b4 },
++  (__ev64_s32__) { 0x15d, 0x1c8 },
++  (__ev64_s32__) { 0x15d, 0x231 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwlssiaaw, __ev64_s32__, __ev64_s32__, __ev64_s32__, rA2s32_sd, rB2s32_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_s32__ evmwlssianw_baseline[] = {
++
++  (__ev64_s32__) { 0xfffffff2, 0xffffff57 },
++  (__ev64_s32__) { 0xffffffe5, 0xffffff57 },
++  (__ev64_s32__) { 0xffffff67, 0xffffff2f },
++  (__ev64_s32__) { 0xfffffef7, 0xfffffea3 },
++  (__ev64_s32__) { 0xfffffebb, 0xfffffe67 },
++  (__ev64_s32__) { 0xfffffebb, 0xfffffe4c },
++  (__ev64_s32__) { 0xfffffea3, 0xfffffe38 },
++  (__ev64_s32__) { 0xfffffea3, 0xfffffdcf },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwlssianw, __ev64_s32__, __ev64_s32__, __ev64_s32__, rA2s32_sd, rB2s32_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evmwlusiaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x14, 0x27 },
++  (__ev64_u32__) { 0x44, 0x27 },
++  (__ev64_u32__) { 0x62, 0x4b },
++  (__ev64_u32__) { 0x116, 0x87 },
++  (__ev64_u32__) { 0x143, 0x9b },
++  (__ev64_u32__) { 0x14c, 0xe9 },
++  (__ev64_u32__) { 0x174, 0x191 },
++  (__ev64_u32__) { 0x1ce, 0x1a1 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwlusiaaw, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmwlusianw_baseline[] = {
++
++  // TODO: No idea why we have all 0's here...
++
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwlusianw, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmwssf_baseline[] = {
++
++  (__ev64_u32__) { 0x0, 0x4e },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x48 },
++  (__ev64_u32__) { 0x0, 0x78 },
++  (__ev64_u32__) { 0x0, 0x28 },
++  (__ev64_u32__) { 0x0, 0x9c },
++  (__ev64_u32__) { 0x0, 0x150 },
++  (__ev64_u32__) { 0x0, 0x20 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwssf, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 0)
++
++#ifdef __SPE__
++__ev64_u32__ *evmwssfa_baseline = evmwssf_baseline;
++#endif
++evmrDrArB(evmwssfa, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmwssfaa_baseline[] = {
++
++  (__ev64_u32__) { 0x0, 0x4e },
++  (__ev64_u32__) { 0x0, 0x4e },
++  (__ev64_u32__) { 0x0, 0x96 },
++  (__ev64_u32__) { 0x0, 0x10e },
++  (__ev64_u32__) { 0x0, 0x136 },
++  (__ev64_u32__) { 0x0, 0x1d2 },
++  (__ev64_u32__) { 0x0, 0x322 },
++  (__ev64_u32__) { 0x0, 0x342 },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwssfaa, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 1)
++
++#ifdef __SPE__
++__ev64_u32__ evmwssfan_baseline[] = {
++
++  (__ev64_u32__) { 0xffffffff, 0xffffffb2 },
++  (__ev64_u32__) { 0xffffffff, 0xffffffb2 },
++  (__ev64_u32__) { 0xffffffff, 0xffffff6a },
++  (__ev64_u32__) { 0xffffffff, 0xfffffef2 },
++  (__ev64_u32__) { 0xffffffff, 0xfffffeca },
++  (__ev64_u32__) { 0xffffffff, 0xfffffe2e },
++  (__ev64_u32__) { 0xffffffff, 0xfffffcde },
++  (__ev64_u32__) { 0xffffffff, 0xfffffcbe },
++
++};
++#endif // __SPE__
++evmrDrArB(evmwssfan, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 0, 1)
++
++#ifdef __SPE__
++#define evsubrDrA_BASELINE_DUMPER(rD_type, regD) evmrDrArB_BASELINE_DUMPER(rD_type, regD)
++#define evsubrDrA_VERIFY(insn, rD) evmrDrArB_VERIFY(insn, rD)
++#define evsubrDrA(insn, rD_type, rA_type, rAvals, generate_baseline, verify_acc_written) \
++int insn##_asm(void)                                                                     \
++{                                                                                        \
++  int failures = 0;                                                                      \
++                                                                                         \
++  register rD_type regD asm ("30");                                                      \
++  register rA_type regA asm ("29");                                                      \
++  int32_t  i;                                                                            \
++                                                                                         \
++  /* Initialize the ACC. */                                                              \
++  regA = rA_type_ZERO;                                                                   \
++  asm volatile ("evmra %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));                  \
++  VERIFY(__ev_convert_u64 (regD) == 0x0);                                                \
++                                                                                         \
++  for (i = 0; i < NELTS(rAvals); i++) {                                                  \
++                                                                                         \
++    regA = rAvals[i];                                                                    \
++                                                                                         \
++    asm volatile (#insn " %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regA));               \
++    if (generate_baseline) {                                                             \
++      evsubrDrA_BASELINE_DUMPER(rD_type, regD);                                          \
++    } else {                                                                             \
++      evsubrDrA_VERIFY(insn, regD);                                                      \
++      if (verify_acc_written) {                                                          \
++        /* Verify that the instruction wrote into the ACC: */                            \
++        regD = rD_type_ZERO;                                                             \
++        asm volatile ("evaddumiaaw %[d], %[a]" : [d] "=r" (regD) : [a] "r" (regD));      \
++        evsubrDrA_VERIFY(insn, regD);                                                    \
++      }                                                                                  \
++    }                                                                                    \
++  }                                                                                      \
++  return failures;                                                                       \
++}                                                                                        \
++TEST_SPE_DECL(insn##_asm, #insn);
++#else
++#define evsubrDrA(insn, rD_type, rA_type, rAvals, generate_baseline, verify_acc_written) \
++int insn##_asm(void)                                                                     \
++{                                                                                        \
++  int failures = 0;                                                                      \
++  return failures;                                                                       \
++}                                                                                        \
++TEST_SPE_DECL(insn##_asm, #insn);
++#endif /* __SPE__ */
++
++#ifdef __SPE__
++__ev64_u32__ evsubfusiaaw_baseline[] = {
++
++  // TODO: No idea why we have all 0's here...
++
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++  (__ev64_u32__) { 0x0, 0x0 },
++};
++#endif // __SPE__
++evsubrDrA(evsubfusiaaw, __ev64_u32__, __ev64_u32__, rA2u32_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_s32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_s32__ evsubfssiaaw_baseline[] = {
++
++  (__ev64_s32__) { 0xffffffff, 0xfffffff3 },
++  (__ev64_s32__) { 0xfffffff2, 0xffffffe6 },
++  (__ev64_s32__) { 0xffffffe9, 0xffffffe1 },
++  (__ev64_s32__) { 0xffffffe1, 0xffffffd7 },
++  (__ev64_s32__) { 0xffffffdd, 0xffffffcb },
++  (__ev64_s32__) { 0xffffffdd, 0xffffffc8 },
++  (__ev64_s32__) { 0xffffffda, 0xffffffc4 },
++  (__ev64_s32__) { 0xffffffda, 0xffffffb5 },
++
++};
++#endif // __SPE__
++evsubrDrA(evsubfssiaaw, __ev64_s32__, __ev64_s32__, rA2s32_sd, 0, 1)
++
++#undef EXTRACTOR
++#define EXTRACTOR __ev_convert_u64
++#undef FSCHECK
++#define FSCHECK(result_val, test_val) (EXTRACTOR(result_val) == EXTRACTOR(test_val))
++SPE_DEFN_rDrArB(brinc, __ev64_u64__, __ev64_u64__, __ev64_u64__, 0, "0x%llx\n",
++ { { 0xdead0000 }, { 0xdeadbeefdeadbeef }, { 0x7  } },
++ { { 0xdead0000 }, { 0xdeadbeefdeadbeef }, { 0xf  } },
++ { { 0xdead001f }, { 0xdeadbeefdeadbeef }, { 0x1f } },
++ { { 0xdead001f }, { 0xdeadbeefdeadbeef }, { 0x3f } })
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -17573,6 +19650,7 @@ test_t spe_isa_bitwise_operators_test_table = {
+     F(evneg_asm),
+     F(evabs_asm),
+     F(evrndw_asm),
++    F(brinc_asm),
+     NULL
+   }
+ };
+@@ -17643,6 +19721,8 @@ test_t spe_isa_ACC_based_add_insns_test_table = {
+     F(evaddumiaaw_asm),
+     F(evsubfsmiaaw_asm),
+     F(evsubfumiaaw_asm),
++    F(evsubfusiaaw_asm),
++    F(evsubfssiaaw_asm),
+     NULL
+   }
+ };
+@@ -17706,7 +19786,7 @@ test_t spe_isa_add_insns_test_table = {
+ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+ 
+   .type = table,
+-  .description = "SPE ISA ACC Based Fractional Multiply Instructions Tests",
++  .description = "SPE ISA ACC Based Fractional (or Integer, both implemented via Dirty Helpers) Multiply Instructions Tests",
+   .table = {
+     F(evmwsmfan_asm),
+     F(evmwsmfaa_asm),
+@@ -17734,6 +19814,32 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+     F(evmhogsmian_asm),
+     F(evmhogumiaa_asm),
+     F(evmhogumian_asm),
++    F(evmhessf_asm),
++    F(evmhessfa_asm),
++    F(evmhessfaaw_asm),
++    F(evmhessfanw_asm),
++    F(evmhessiaaw_asm),
++    F(evmhessianw_asm),
++    F(evmheusiaaw_asm),
++    F(evmheusianw_asm),
++    F(evmhossf_asm),
++    F(evmhossfa_asm),
++    F(evmhossfaaw_asm),
++    F(evmhossfanw_asm),
++    F(evmhossiaaw_asm),
++    F(evmhossianw_asm),
++    F(evmhousiaaw_asm),
++    F(evmhousianw_asm),
++    F(evmwhssf_asm),
++    F(evmwhssfa_asm),
++    F(evmwlssiaaw_asm),
++    F(evmwlssianw_asm),
++    F(evmwlusiaaw_asm),
++    F(evmwlusianw_asm),
++    F(evmwssf_asm),
++    F(evmwssfa_asm),
++    F(evmwssfaa_asm),
++    F(evmwssfan_asm),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.h b/memcheck/tests/ppc32/test_spe.h
+index 6058f24..3ee4660 100644
+--- a/memcheck/tests/ppc32/test_spe.h
++++ b/memcheck/tests/ppc32/test_spe.h
+@@ -6012,3 +6012,109 @@ const int32_t rA1s1_8[] = {
+ };
+ 
+ #define EXTRACT_CR_FIELD(CR, field) ((((CR) & (0xf << (7 - (field)) * 4)) >> (7 - (field)) * 4))
++
++#ifdef __SPE__
++const __ev64_u16__ rA4u16_sd[] = {
++
++  /*    0 */ (__ev64_u16__) { 0x3, 0xe, 0x9, 0x2 },
++  /*    1 */ (__ev64_u16__) { 0x6, 0xe, 0x4, 0xf },
++  /*    2 */ (__ev64_u16__) { 0xa, 0xe, 0x3, 0x2 },
++  /*    3 */ (__ev64_u16__) { 0xe, 0x3, 0xe, 0x4 },
++  /*    4 */ (__ev64_u16__) { 0x6, 0x7, 0x3, 0x3 },
++  /*    5 */ (__ev64_u16__) { 0x3, 0x4, 0xe, 0xb },
++  /*    6 */ (__ev64_u16__) { 0xd, 0x3, 0x3, 0x6 },
++  /*    7 */ (__ev64_u16__) { 0x6, 0x8, 0x7, 0x5 },
++};
++
++const __ev64_u16__ rB4u16_sd[NELTS(rA4u16_sd)] = {
++
++  /*    0 */ (__ev64_u16__) { 0xa, 0xb, 0xb, 0x2 },
++  /*    1 */ (__ev64_u16__) { 0xf, 0x9, 0x7, 0x6 },
++  /*    2 */ (__ev64_u16__) { 0xd, 0x6, 0x8, 0x1 },
++  /*    3 */ (__ev64_u16__) { 0xb, 0x5, 0xb, 0x5 },
++  /*    4 */ (__ev64_u16__) { 0x0, 0x5, 0x8, 0x7 },
++  /*    5 */ (__ev64_u16__) { 0xd, 0xd, 0xa, 0xa },
++  /*    6 */ (__ev64_u16__) { 0x7, 0x4, 0x1, 0x6 },
++  /*    7 */ (__ev64_u16__) { 0x4, 0x7, 0x4, 0x4 },
++};
++
++__ev64_u16__ rD4u16_sd[NELTS(rA4u16_sd)];
++
++const __ev64_s16__ rA4s16_sd[] = {
++
++  /*    0 */ (__ev64_s16__) { 0xa, 0x6, 0xf, 0x1 },
++  /*    1 */ (__ev64_s16__) { 0x1, 0xd, 0xb, 0x5 },
++  /*    2 */ (__ev64_s16__) { 0xd, 0x3, 0x9, 0x2 },
++  /*    3 */ (__ev64_s16__) { 0x8, 0xd, 0x8, 0x9 },
++  /*    4 */ (__ev64_s16__) { 0x6, 0x5, 0x7, 0x9 },
++  /*    5 */ (__ev64_s16__) { 0xd, 0x4, 0x5, 0x2 },
++  /*    6 */ (__ev64_s16__) { 0x9, 0xc, 0x9, 0x1 },
++  /*    7 */ (__ev64_s16__) { 0x9, 0x3, 0x1, 0x5 },
++};
++
++const __ev64_s16__ rB4s16_sd[NELTS(rA4s16_sd)] = {
++
++  /*    0 */ (__ev64_s16__) { 0x4, 0x8, 0x7, 0x7 },
++  /*    1 */ (__ev64_s16__) { 0x7, 0xb, 0x2, 0xb },
++  /*    2 */ (__ev64_s16__) { 0x3, 0x7, 0x1, 0x2 },
++  /*    3 */ (__ev64_s16__) { 0xc, 0x6, 0xe, 0x6 },
++  /*    4 */ (__ev64_s16__) { 0xa, 0xf, 0x4, 0x8 },
++  /*    5 */ (__ev64_s16__) { 0x4, 0x3, 0x2, 0xb },
++  /*    6 */ (__ev64_s16__) { 0x0, 0x4, 0x0, 0x9 },
++  /*    7 */ (__ev64_s16__) { 0x4, 0x3, 0x1, 0x6 },
++};
++
++__ev64_s16__ rD4s16_sd[NELTS(rA4s16_sd)];
++
++const __ev64_u32__ rA2u32_sd[] = {
++
++  /*    0 */ (__ev64_u32__) { 0x2, 0xd },
++  /*    1 */ (__ev64_u32__) { 0x4, 0xe },
++  /*    2 */ (__ev64_u32__) { 0xa, 0x4 },
++  /*    3 */ (__ev64_u32__) { 0xc, 0xc },
++  /*    4 */ (__ev64_u32__) { 0x3, 0x5 },
++  /*    5 */ (__ev64_u32__) { 0x1, 0x6 },
++  /*    6 */ (__ev64_u32__) { 0x4, 0xc },
++  /*    7 */ (__ev64_u32__) { 0x6, 0x4 },
++};
++
++const __ev64_u32__ rB2u32_sd[NELTS(rA2u32_sd)] = {
++
++  /*    0 */ (__ev64_u32__) { 0xa, 0x3 },
++  /*    1 */ (__ev64_u32__) { 0xc, 0x0 },
++  /*    2 */ (__ev64_u32__) { 0x3, 0x9 },
++  /*    3 */ (__ev64_u32__) { 0xf, 0x5 },
++  /*    4 */ (__ev64_u32__) { 0xf, 0x4 },
++  /*    5 */ (__ev64_u32__) { 0x9, 0xd },
++  /*    6 */ (__ev64_u32__) { 0xa, 0xe },
++  /*    7 */ (__ev64_u32__) { 0xf, 0x4 },
++};
++
++__ev64_u32__ rD2u32_sd[NELTS(rA2u32_sd)];
++
++const __ev64_s32__ rA2s32_sd[] = {
++
++  /*    0 */ (__ev64_s32__) { 0x1, 0xd },
++  /*    1 */ (__ev64_s32__) { 0xd, 0xd },
++  /*    2 */ (__ev64_s32__) { 0x9, 0x5 },
++  /*    3 */ (__ev64_s32__) { 0x8, 0xa },
++  /*    4 */ (__ev64_s32__) { 0x4, 0xc },
++  /*    5 */ (__ev64_s32__) { 0x0, 0x3 },
++  /*    6 */ (__ev64_s32__) { 0x3, 0x4 },
++  /*    7 */ (__ev64_s32__) { 0x0, 0xf },
++};
++
++const __ev64_s32__ rB2s32_sd[NELTS(rA2s32_sd)] = {
++
++  /*    0 */ (__ev64_s32__) { 0xe, 0xd },
++  /*    1 */ (__ev64_s32__) { 0x1, 0x0 },
++  /*    2 */ (__ev64_s32__) { 0xe, 0x8 },
++  /*    3 */ (__ev64_s32__) { 0xe, 0xe },
++  /*    4 */ (__ev64_s32__) { 0xf, 0x5 },
++  /*    5 */ (__ev64_s32__) { 0xd, 0x9 },
++  /*    6 */ (__ev64_s32__) { 0x8, 0x5 },
++  /*    7 */ (__ev64_s32__) { 0xf, 0x7 },
++};
++
++__ev64_s32__ rD2s32_sd[NELTS(rA2s32_sd)];
++#endif
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 1d6a25a..8694bab 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:18069)
++   by 0x........: main (test_spe.c:20175)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:18069)
++   by 0x........: main (test_spe.c:20175)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:18069)
++   by 0x........: main (test_spe.c:20175)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 297054d..3c46459 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -68,6 +68,7 @@ SPE Regression Tests: PASS
+ ....evneg: PASS
+ ....evabs: PASS
+ ....evrndw: PASS
++....brinc: PASS
+ ...SPE ISA Merge Instructions Tests: PASS
+ ....evmergehi: PASS
+ ....evmergehilo: PASS
+@@ -98,6 +99,8 @@ SPE Regression Tests: PASS
+ ....evaddumiaaw: PASS
+ ....evsubfsmiaaw: PASS
+ ....evsubfumiaaw: PASS
++....evsubfusiaaw: PASS
++....evsubfssiaaw: PASS
+ ...SPE ISA Add/Subtract Instructions Tests: PASS
+ ....evaddiw: PASS
+ ....evaddw: PASS
+@@ -138,7 +141,7 @@ SPE Regression Tests: PASS
+ ....evmhesmiaaw: PASS
+ ....evmhesmi: PASS
+ ....evmhesmia: PASS
+-...SPE ISA ACC Based Fractional Multiply Instructions Tests: PASS
++...SPE ISA ACC Based Fractional (or Integer, both implemented via Dirty Helpers) Multiply Instructions Tests: PASS
+ ....evmwsmfan: PASS
+ ....evmwsmfaa: PASS
+ ....evmwsmf: PASS
+@@ -165,6 +168,32 @@ SPE Regression Tests: PASS
+ ....evmhogsmian: PASS
+ ....evmhogumiaa: PASS
+ ....evmhogumian: PASS
++....evmhessf: PASS
++....evmhessfa: PASS
++....evmhessfaaw: PASS
++....evmhessfanw: PASS
++....evmhessiaaw: PASS
++....evmhessianw: PASS
++....evmheusiaaw: PASS
++....evmheusianw: PASS
++....evmhossf: PASS
++....evmhossfa: PASS
++....evmhossfaaw: PASS
++....evmhossfanw: PASS
++....evmhossiaaw: PASS
++....evmhossianw: PASS
++....evmhousiaaw: PASS
++....evmhousianw: PASS
++....evmwhssf: PASS
++....evmwhssfa: PASS
++....evmwlssiaaw: PASS
++....evmwlssianw: PASS
++....evmwlusiaaw: PASS
++....evmwlusianw: PASS
++....evmwssf: PASS
++....evmwssfa: PASS
++....evmwssfaa: PASS
++....evmwssfan: PASS
+ ...SPE ISA Floating Point Unit Tests: PASS
+ ....SPE ISA Single Precision Scalar Floating Point Unit Tests: PASS
+ .....efsabs: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 0fb7950..0bf994f 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  3557 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 19552 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 20083 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 20112 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2073,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 13339 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 25504 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 27178 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 30667 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1:  4470 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 16289 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 21326 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21648 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index dd258df..bb4e9e6 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 28743 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 21277 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  3288 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 21838 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2074,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 12610 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 26559 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 21221 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 31043 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 24399 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 16751 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 18931 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 22438 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0058-Implement-SPE-instructions-evaddssiaaw-evaddusiaaw-e.patch b/recipes-devtools/valgrind/files/0058-Implement-SPE-instructions-evaddssiaaw-evaddusiaaw-e.patch
new file mode 100644
index 0000000..fe13bb4
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0058-Implement-SPE-instructions-evaddssiaaw-evaddusiaaw-e.patch
@@ -0,0 +1,766 @@
+From 34663ad651dc98dd17f5e6996eacd2781e0b1d0f Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Sat, 11 May 2013 11:11:28 -0700
+Subject: [PATCH 58/65] Implement SPE instructions: { evaddssiaaw, evaddusiaaw, evdivws, evdivwu }.
+
+---
+ FSL-SPE-README.txt                       |   40 +++--
+ VEX/priv/guest_ppc_defs.h                |    4 +
+ VEX/priv/guest_ppc_helpers.c             |    4 +
+ VEX/priv/guest_ppc_toIR.c                |  320 ++++++++++++++++--------------
+ memcheck/tests/ppc32/test_spe.c          |   88 ++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |    6 +-
+ memcheck/tests/ppc32/test_spe.stdout.exp |    4 +
+ regtest-power7-64.default-build.log      |   12 +-
+ regtest-power7-64.log                    |   12 +-
+ 9 files changed, 310 insertions(+), 180 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 2cf77a8..851f814 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -69,9 +69,8 @@
+ 
+  New instructions implemented in version 3.8.1-FSL-Mon-Apr--8-110008-PDT-2013:
+ 
+- evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan,
+- evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
+- evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian,
++ evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan, evmhegsmiaa, evmhegsmian,
++ evmhegumiaa, evmhegumian, evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian,
+ 
+  New instructions implemented since last release:
+ 
+@@ -92,26 +91,37 @@
+  evmhousiaaw, evmhousianw, evmwhssf, evmwhssfa, evmwlssiaaw, evmwlssianw, evmwlusiaaw,
+  evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan, evsubfssiaaw, evsubfusiaaw,
+ 
++ evaddssiaaw, evaddusiaaw, evdivws, evdivwu,
++
+  brinc
+ 
+- Note: Synthetic instructions appear prefixed with a leading underscore in the
+-       above list. All synthetic instructions are tested as working under
+-       Valgrind even though, strictly speaking, such an instruction is not
+-       explicitly implemented, but works as a result of some other instruction
+-       being implemented.
++ Notes:
++
++ 0. The following instructions are not SPE instructions:
++
++    eciwx, ecowx, ehpriv, eqv, eqv., extsb, extsb., extsh, extsh
++
++    TODO: Verify that Valgrind implements these.
++
++ 1. The instructions:
+ 
+- The following instructions have not been implemented yet:
++    evmwhusiaaw, evmwhusianw
+ 
+- Note: Non SPE instructions are indicated by suffixing them with a '?' sign.
++    are listed by Appendix B of the SPEPEM Rev. 0, 01/2008, however, they are
++    not described in Chapter 5 of the SPEPEM, and the GNU assembler 2.21.1 does
++    not recognize their opcode's either.
+ 
+- eciwx?, ecowx?, ehpriv?, eqv?, eqv.?, extsb?, extsb.?, extsh?, extsh.?
++ 2. Per the SPEPEM, the instructions:
+ 
+- evaddssiaaw, evaddusiaaw, evdivws, evdivwu, evmwhusiaaw, evmwhusianw,
++    efdcfsid, efdcfuid, efdctsidz, efdctuidz
+ 
+- The following instructions may only be implemented for 64-bit implementations,
+- and are hence out of scope for this porting effort:
++    may only be implemented for 64-bit implementations, and are hence out of
++    scope for this porting effort.
+ 
+- efdcfsid, efdcfuid, efdctsidz, efdctuidz.
++ 3. Synthetic instructions appear prefixed with a leading underscore in the list
++    above. All synthetic instructions are tested as working under Valgrind even
++    though, strictly speaking, such an instruction is not explicitly implemented
++    but works as a result of some other instruction being implemented.
+ 
+  Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
+  ----------------------------------------------------------------------
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index 96734c6..b21c49f 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -406,6 +406,10 @@ SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwssfan);
+ SPE_DIRTY_HELPER_DECL_ACCrDrA(evsubfusiaaw);
+ SPE_DIRTY_HELPER_DECL_ACCrDrA(evsubfssiaaw);
+ SPE_DIRTY_HELPER_DECL_rDrArB(brinc);
++SPE_DIRTY_HELPER_DECL_ACCrDrA(evaddssiaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrA(evaddusiaaw);
++SPE_DIRTY_HELPER_DECL_rDrArB(evdivws);
++SPE_DIRTY_HELPER_DECL_rDrArB(evdivwu);
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index de207c1..59924fb 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -1715,6 +1715,10 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off
+ 
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfssiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfusiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrA(evaddssiaaw,   __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrA(evaddusiaaw,   __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evdivws,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evdivwu,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+ 
+ SPE_DIRTY_HELPER_DEFN_rDrArB(brinc, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+ 
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index 2b111a7..f28be19 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -11727,6 +11727,156 @@ static Bool dis_dfp_significant_digits( UInt theInstr )
+ /*--- Freescale Semiconductor, Inc.                                   ---*/
+ /*-----------------------------------------------------------------------*/
+ 
++#define PREPARE_DIRTY_HELPER_CALL_rDrArB(insn)                   \
++     args = mkIRExprVec_3 ( mkU32( rD_off ),                     \
++                            mkU32( rA_off ),                     \
++                            mkU32( rB_off ) );                   \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                    \
++                            "spe_dirtyhelper_" #insn,            \
++                            &spe_dirtyhelper_##insn,             \
++                            args);                               \
++     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr ); \
++     /* declare guest state effects */                           \
++     d->needsBBP = True;                                         \
++     d->nFxState = 3;                                            \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                 \
++     d->fxState[0].fx     = Ifx_Write;                           \
++     d->fxState[0].offset = rD_off;                              \
++     d->fxState[0].size   = sizeof(ULong);                       \
++     d->fxState[1].fx     = Ifx_Read;                            \
++     d->fxState[1].offset = rA_off;                              \
++     d->fxState[1].size   = sizeof(ULong);                       \
++     d->fxState[2].fx     = Ifx_Read;                            \
++     d->fxState[2].offset = rB_off;                              \
++     d->fxState[2].size   = sizeof(ULong);                       \
++                                                                 \
++     /* execute the dirty call, side-effecting guest state */    \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(insn, ACC_IREffect)  \
++     args = mkIRExprVec_4 ( mkU32( ACC_off ),                    \
++                            mkU32( rD_off ),                     \
++                            mkU32( rA_off ),                     \
++                            mkU32( rB_off ) );                   \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                    \
++                            "spe_dirtyhelper_" #insn,            \
++                            &spe_dirtyhelper_##insn,             \
++                            args);                               \
++     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr ); \
++     /* declare guest state effects */                           \
++     d->needsBBP = True;                                         \
++     d->nFxState = 4;                                            \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                 \
++     d->fxState[0].fx     = ACC_IREffect;                        \
++     d->fxState[0].offset = ACC_off;                             \
++     d->fxState[0].size   = sizeof(ULong);                       \
++     d->fxState[1].fx     = Ifx_Write;                           \
++     d->fxState[1].offset = rD_off;                              \
++     d->fxState[1].size   = 2 * sizeof(UInt);                    \
++     d->fxState[2].fx     = Ifx_Read;                            \
++     d->fxState[2].offset = rA_off;                              \
++     d->fxState[2].size   = 2 * sizeof(UInt);                    \
++     d->fxState[3].fx     = Ifx_Read;                            \
++     d->fxState[3].offset = rB_off;                              \
++     d->fxState[3].size   = 2 * sizeof(UInt);                    \
++                                                                 \
++     /* execute the dirty call, side-effecting guest state */    \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                   \
++     args = mkIRExprVec_2 ( mkU32( rA_off ),                       \
++                            mkU32( rB_off ) );                     \
++     d = unsafeIRDirty_1_N (val,                                   \
++                            0 /* regparms */,                      \
++                            "spe_dirtyhelper_" #insn,              \
++                            &spe_dirtyhelper_##insn,               \
++                            args);                                 \
++     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr ); \
++     /* declare guest state effects */                             \
++     d->needsBBP = True;                                           \
++     d->nFxState = 2;                                              \
++     vex_bzero(&d->fxState, sizeof(d->fxState));                   \
++     d->fxState[0].fx     = Ifx_Read;                              \
++     d->fxState[0].offset = rA_off;                                \
++     d->fxState[0].size   = sizeof(ULong);                         \
++     d->fxState[1].fx     = Ifx_Read;                              \
++     d->fxState[1].offset = rB_off;                                \
++     d->fxState[1].size   = sizeof(ULong);                         \
++                                                                   \
++     /* execute the dirty call, side-effecting guest state */      \
++     stmt( IRStmt_Dirty(d) );                                      \
++     UPDATE_CR(val);
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rB_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rB_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rB_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_rDrA(insn)                  \
++     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
++                            mkU32( rA_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 2;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = Ifx_Write;                        \
++     d->fxState[0].offset = rD_off;                           \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Read;                         \
++     d->fxState[1].offset = rA_off;                           \
++     d->fxState[1].size   = sizeof(ULong);                    \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
++#define PREPARE_DIRTY_HELPER_CALL_ACCrDrA(insn, ACC_IREffect) \
++     args = mkIRExprVec_3 ( mkU32( ACC_off ),                 \
++                            mkU32( rD_off ),                  \
++                            mkU32( rA_off ) );                \
++     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
++                            "spe_dirtyhelper_" #insn,         \
++                            &spe_dirtyhelper_##insn,          \
++                            args);                            \
++     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
++     /* declare guest state effects */                        \
++     d->needsBBP = True;                                      \
++     d->nFxState = 3;                                         \
++     vex_bzero(&d->fxState, sizeof(d->fxState));              \
++     d->fxState[0].fx     = ACC_IREffect;                     \
++     d->fxState[0].offset = ACC_off;                          \
++     d->fxState[0].size   = sizeof(ULong);                    \
++     d->fxState[1].fx     = Ifx_Write;                        \
++     d->fxState[1].offset = rD_off;                           \
++     d->fxState[1].size   = 2 * sizeof(UInt);                 \
++     d->fxState[2].fx     = Ifx_Read;                         \
++     d->fxState[2].offset = rA_off;                           \
++     d->fxState[2].size   = 2 * sizeof(UInt);                 \
++                                                              \
++     /* execute the dirty call, side-effecting guest state */ \
++     stmt( IRStmt_Dirty(d) );
++
+ /*
+  * SPE Load Instructions
+  */
+@@ -12396,32 +12546,6 @@ static IRExpr* spe_round_word ( IRExpr* src )
+                 mkU32 ( 0xFFFF0000 ) );
+ }
+ 
+-#define PREPARE_DIRTY_HELPER_CALL_rDrArB(insn)                   \
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),                     \
+-                            mkU32( rA_off ),                     \
+-                            mkU32( rB_off ) );                   \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                    \
+-                            "spe_dirtyhelper_" #insn,            \
+-                            &spe_dirtyhelper_##insn,             \
+-                            args);                               \
+-     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr ); \
+-     /* declare guest state effects */                           \
+-     d->needsBBP = True;                                         \
+-     d->nFxState = 3;                                            \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));                 \
+-     d->fxState[0].fx     = Ifx_Write;                           \
+-     d->fxState[0].offset = rD_off;                              \
+-     d->fxState[0].size   = sizeof(ULong);                       \
+-     d->fxState[1].fx     = Ifx_Read;                            \
+-     d->fxState[1].offset = rA_off;                              \
+-     d->fxState[1].size   = sizeof(ULong);                       \
+-     d->fxState[2].fx     = Ifx_Read;                            \
+-     d->fxState[2].offset = rB_off;                              \
+-     d->fxState[2].size   = sizeof(ULong);                       \
+-                                                                 \
+-     /* execute the dirty call, side-effecting guest state */    \
+-     stmt( IRStmt_Dirty(d) );
+-
+ static Bool dis_spe_bitwise ( UInt theInstr )
+ {
+    /* EVX-Form */
+@@ -13223,32 +13347,6 @@ static Bool dis_spe_initialize_ACC ( UInt theInstr )
+   return True;
+ }
+ 
+-#define PREPARE_DIRTY_HELPER_CALL_ACCrDrA(insn, ACC_IREffect) \
+-     args = mkIRExprVec_3 ( mkU32( ACC_off ),                 \
+-                            mkU32( rD_off ),                  \
+-                            mkU32( rA_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 3;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = ACC_IREffect;                     \
+-     d->fxState[0].offset = ACC_off;                          \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Write;                        \
+-     d->fxState[1].offset = rD_off;                           \
+-     d->fxState[1].size   = 2 * sizeof(UInt);                 \
+-     d->fxState[2].fx     = Ifx_Read;                         \
+-     d->fxState[2].offset = rA_off;                           \
+-     d->fxState[2].size   = 2 * sizeof(UInt);                 \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+ {
+   /* EVX-Form */
+@@ -13288,6 +13386,14 @@ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+      return False;
+   }
+   switch (opc2) {
++  case 0x4c0:
++     // evaddusiaaw (Vector Add Unigned, Saturate, Integer to Accumulator Word, SPEPEM p5-73)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evaddusiaaw, Ifx_Modify);
++     return True;
++  case 0x4c1:
++     // evaddssiaaw (Vector Add Signed, Saturate, Integer to Accumulator Word, SPEPEM p5-71)
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evaddssiaaw, Ifx_Modify);
++     return True;
+   case 0x4c2:
+      // evsubfusiaaw (Vector Subtract Unsigned, Saturate, Integer to Accumulator Word, SPEPEM p5-245)
+      PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evsubfusiaaw, Ifx_Modify);
+@@ -13296,6 +13402,14 @@ static Bool dis_spe_ACC_based_add_insns ( UInt theInstr )
+      // evsubfssiaaw (Vector Subtract Signed, Saturate, Integer to Accumulator Word, SPEPEM p5-243)
+      PREPARE_DIRTY_HELPER_CALL_ACCrDrA(evsubfssiaaw, Ifx_Modify);
+      return True;
++  case 0x4c6:
++     // evdivws (Vector Divide Word Signed, SPEPEM p5-84)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evdivws);
++     return True;
++  case 0x4c7:
++     // evdivwu (Vector Divide Word Unsigned, SPEPEM p5-85)
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evdivwu);
++     return True;
+   case 0x4c8:
+      // evaddumiaaw (Vector Add Unsigned, Modulo, Integer to Accumulator Word, SPEPEM p5-72)
+      DIP( "evaddumiaaw r%d, r%d\n", rD_addr, rA_addr );
+@@ -14285,104 +14399,6 @@ static Bool dis_spe_ACC_based_multiply_insns ( UInt theInstr )
+   return True;
+ }
+ 
+-#define PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(insn, ACC_IREffect) \
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),                   \
+-                            mkU32( rD_off ),                    \
+-                            mkU32( rA_off ),                    \
+-                            mkU32( rB_off ) );                  \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                   \
+-                            "spe_dirtyhelper_" #insn,           \
+-                            &spe_dirtyhelper_##insn,            \
+-                            args);                              \
+-     DIP( #insn " r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );     \
+-     /* declare guest state effects */                          \
+-     d->needsBBP = True;                                        \
+-     d->nFxState = 4;                                           \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));                \
+-     d->fxState[0].fx     = ACC_IREffect;                       \
+-     d->fxState[0].offset = ACC_off;                            \
+-     d->fxState[0].size   = sizeof(ULong);                      \
+-     d->fxState[1].fx     = Ifx_Write;                          \
+-     d->fxState[1].offset = rD_off;                             \
+-     d->fxState[1].size   = 2 * sizeof(UInt);                   \
+-     d->fxState[2].fx     = Ifx_Read;                           \
+-     d->fxState[2].offset = rA_off;                             \
+-     d->fxState[2].size   = 2 * sizeof(UInt);                   \
+-     d->fxState[3].fx     = Ifx_Read;                           \
+-     d->fxState[3].offset = rB_off;                             \
+-     d->fxState[3].size   = 2 * sizeof(UInt);                   \
+-                                                                \
+-     /* execute the dirty call, side-effecting guest state */   \
+-     stmt( IRStmt_Dirty(d) );
+-
+-#define PREPARE_DIRTY_HELPER_CALL_crfDrArB(insn)                   \
+-     args = mkIRExprVec_2 ( mkU32( rA_off ),                       \
+-                            mkU32( rB_off ) );                     \
+-     d = unsafeIRDirty_1_N (val,                                   \
+-                            0 /* regparms */,                      \
+-                            "spe_dirtyhelper_" #insn,              \
+-                            &spe_dirtyhelper_##insn,               \
+-                            args);                                 \
+-     DIP( #insn " CR%d, r%d, r%d\n", CR_field, rA_addr, rB_addr ); \
+-     /* declare guest state effects */                             \
+-     d->needsBBP = True;                                           \
+-     d->nFxState = 2;                                              \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));                   \
+-     d->fxState[0].fx     = Ifx_Read;                              \
+-     d->fxState[0].offset = rA_off;                                \
+-     d->fxState[0].size   = sizeof(ULong);                         \
+-     d->fxState[1].fx     = Ifx_Read;                              \
+-     d->fxState[1].offset = rB_off;                                \
+-     d->fxState[1].size   = sizeof(ULong);                         \
+-                                                                   \
+-     /* execute the dirty call, side-effecting guest state */      \
+-     stmt( IRStmt_Dirty(d) );                                      \
+-     UPDATE_CR(val);
+-
+-#define PREPARE_DIRTY_HELPER_CALL_rDrB(insn)                  \
+-     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
+-                            mkU32( rB_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rB_addr );            \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 2;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = Ifx_Write;                        \
+-     d->fxState[0].offset = rD_off;                           \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Read;                         \
+-     d->fxState[1].offset = rB_off;                           \
+-     d->fxState[1].size   = sizeof(ULong);                    \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+-#define PREPARE_DIRTY_HELPER_CALL_rDrA(insn)                  \
+-     args = mkIRExprVec_2 ( mkU32( rD_off ),                  \
+-                            mkU32( rA_off ) );                \
+-     d = unsafeIRDirty_0_N (0 /* regparms */,                 \
+-                            "spe_dirtyhelper_" #insn,         \
+-                            &spe_dirtyhelper_##insn,          \
+-                            args);                            \
+-     DIP( #insn " r%d, r%d\n", rD_addr, rA_addr );            \
+-     /* declare guest state effects */                        \
+-     d->needsBBP = True;                                      \
+-     d->nFxState = 2;                                         \
+-     vex_bzero(&d->fxState, sizeof(d->fxState));              \
+-     d->fxState[0].fx     = Ifx_Write;                        \
+-     d->fxState[0].offset = rD_off;                           \
+-     d->fxState[0].size   = sizeof(ULong);                    \
+-     d->fxState[1].fx     = Ifx_Read;                         \
+-     d->fxState[1].offset = rA_off;                           \
+-     d->fxState[1].size   = sizeof(ULong);                    \
+-                                                              \
+-     /* execute the dirty call, side-effecting guest state */ \
+-     stmt( IRStmt_Dirty(d) );
+-
+ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+ {
+   /* EVX-Form */
+@@ -21983,8 +21999,12 @@ DisResult disInstr_PPC_WRK (
+          if (!allow_SPE) goto decode_noSPE;
+          if (dis_spe_initialize_ACC( theInstr )) goto decode_success;
+          goto decode_failure;
++      case 0x4c0: // evaddusiaaw
++      case 0x4c1: // evaddssiaaw
+       case 0x4c2: // evsubfusiaaw
+       case 0x4c3: // evsubfssiaaw
++      case 0x4c6: // evdivws
++      case 0x4c7: // evdivwu
+       case 0x4c8: // evaddumiaaw
+       case 0x4c9: // evaddsmiaaw
+       case 0x4ca: // evsubfumiaaw
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index ca0b05c..2a73ec3 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -19545,6 +19545,86 @@ SPE_DEFN_rDrArB(brinc, __ev64_u64__, __ev64_u64__, __ev64_u64__, 0, "0x%llx\n",
+  { { 0xdead001f }, { 0xdeadbeefdeadbeef }, { 0x1f } },
+  { { 0xdead001f }, { 0xdeadbeefdeadbeef }, { 0x3f } })
+ 
++#ifdef __SPE__
++__ev64_s32__ evaddssiaaw_baseline[] = {
++
++  (__ev64_s32__) { 0x1, 0xd },
++  (__ev64_s32__) { 0xe, 0x1a },
++  (__ev64_s32__) { 0x17, 0x1f },
++  (__ev64_s32__) { 0x1f, 0x29 },
++  (__ev64_s32__) { 0x23, 0x35 },
++  (__ev64_s32__) { 0x23, 0x38 },
++  (__ev64_s32__) { 0x26, 0x3c },
++  (__ev64_s32__) { 0x26, 0x4b },
++
++};
++#endif // __SPE__
++evsubrDrA(evaddssiaaw, __ev64_s32__, __ev64_s32__, rA2s32_sd, 0, 1)
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#ifdef __SPE__
++__ev64_u32__ evaddusiaaw_baseline[] = {
++
++  (__ev64_u32__) { 0x2, 0xd },
++  (__ev64_u32__) { 0x6, 0x1b },
++  (__ev64_u32__) { 0x10, 0x1f },
++  (__ev64_u32__) { 0x1c, 0x2b },
++  (__ev64_u32__) { 0x1f, 0x30 },
++  (__ev64_u32__) { 0x20, 0x36 },
++  (__ev64_u32__) { 0x24, 0x42 },
++  (__ev64_u32__) { 0x2a, 0x46 },
++
++};
++#endif // __SPE__
++evsubrDrA(evaddusiaaw, __ev64_u32__, __ev64_u32__, rA2u32_sd, 0, 1)
++
++#undef UEXTRACTOR
++#undef LEXTRACTOR
++#undef EXTRACTOR
++#undef FSCHECK
++#define UEXTRACTOR(v) __ev_get_upper_s32(v)
++#define LEXTRACTOR(v) __ev_get_lower_s32(v)
++#define EXTRACTOR(v) UEXTRACTOR(v), LEXTRACTOR(v)
++#define FSCHECK(result_val, test_val) \
++ ((UEXTRACTOR(result_val) == UEXTRACTOR(test_val)) && \
++  (LEXTRACTOR(result_val) == LEXTRACTOR(test_val)))
++
++#undef EVFS_FORMAT
++#define EVFS_FORMAT "{ %d, %d }\n"
++
++SPE_DEFN_rDrArB(evdivws, __ev64_s32__, __ev64_s32__, __ev64_s32__, 0, EVFS_FORMAT,
++ { { 3, -3 }, { 12, -18 }, { 4, 6 } },
++ { { 1,  0 }, {  7,   0 }, { 7, 5 } })
++
++SPE_DEFN_rDrArB(evdivwu, __ev64_u32__, __ev64_u32__, __ev64_u32__, 0, EVFS_FORMAT,
++ { { 3, +3 }, { 12, +18 }, { 4, 6 } },
++ { { 1,  0 }, {  7,   0 }, { 7, 5 } })
++
++#undef  rA_type_ZERO
++#define rA_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++#undef  rD_type_ZERO
++#define rD_type_ZERO ((__ev64_u32__) { 0x0, 0x0 })
++
++#if 0
++/* /tmp/ccu8GSti.s:201161: Error: Unrecognized opcode: `evmwhusiaaw' */
++#ifdef __SPE__
++__ev64_u32__ evmwhusiaaw_baseline[] = {
++};
++#endif // __SPE__
++evmrDrArB(evmwhusiaaw, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 1, 1)
++
++/* /tmp/cc7JcGLS.s:201313: Error: Unrecognized opcode: `evmwhusianw' */
++#ifdef __SPE__
++__ev64_u32__ evmwhusianw_baseline[] = {
++};
++#endif // __SPE__
++evmrDrArB(evmwhusianw, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 1, 1)
++#endif
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -19723,6 +19803,10 @@ test_t spe_isa_ACC_based_add_insns_test_table = {
+     F(evsubfumiaaw_asm),
+     F(evsubfusiaaw_asm),
+     F(evsubfssiaaw_asm),
++    F(evaddssiaaw_asm),
++    F(evaddusiaaw_asm),
++    F(evdivws_asm),
++    F(evdivwu_asm),
+     NULL
+   }
+ };
+@@ -19840,6 +19924,10 @@ test_t spe_isa_ACC_based_fractional_multiply_insns_test_table = {
+     F(evmwssfa_asm),
+     F(evmwssfaa_asm),
+     F(evmwssfan_asm),
++#if 0
++    F(evmwhusiaaw_asm),
++    F(evmwhusianw_asm),
++#endif
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 8694bab..394d303 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20175)
++   by 0x........: main (test_spe.c:20263)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,7 +13,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20175)
++   by 0x........: main (test_spe.c:20263)
+ 
+ 
+ HEAP SUMMARY:
+@@ -27,7 +27,7 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20175)
++   by 0x........: main (test_spe.c:20263)
+ 
+ LEAK SUMMARY:
+    definitely lost: 40 bytes in 1 blocks
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 3c46459..1513a8d 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -101,6 +101,10 @@ SPE Regression Tests: PASS
+ ....evsubfumiaaw: PASS
+ ....evsubfusiaaw: PASS
+ ....evsubfssiaaw: PASS
++....evaddssiaaw: PASS
++....evaddusiaaw: PASS
++....evdivws: PASS
++....evdivwu: PASS
+ ...SPE ISA Add/Subtract Instructions Tests: PASS
+ ....evaddiw: PASS
+ ....evaddw: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 0bf994f..112b3e7 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 19552 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 21368 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 20112 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 21930 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2073,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 25504 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 26620 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 30667 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 31099 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 16289 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 16278 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 21648 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21622 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index bb4e9e6..a2a10a4 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 21277 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  7068 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 21838 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 29193 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2074,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 26559 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 25709 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 31043 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  8371 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 16751 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 31694 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 22438 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 25715 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0059-Cleanup-dirty-helper-parts.patch b/recipes-devtools/valgrind/files/0059-Cleanup-dirty-helper-parts.patch
new file mode 100644
index 0000000..5d1a91c
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0059-Cleanup-dirty-helper-parts.patch
@@ -0,0 +1,2676 @@
+From 79afad85eb3af80e507ac27ccd69f3637da8eb31 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Tue, 14 May 2013 13:42:13 -0700
+Subject: [PATCH 59/65] Cleanup dirty helper parts.
+
+---
+ VEX/priv/guest_ppc_defs.h           |  159 +----
+ VEX/priv/guest_ppc_helpers.c        | 1437 ++++-------------------------------
+ VEX/priv/guest_ppc_toIR.c           |  738 +-----------------
+ regtest-power7-64.default-build.log |   12 +-
+ regtest-power7-64.log               |   12 +-
+ 5 files changed, 207 insertions(+), 2151 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index b21c49f..a9fbd16 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -157,137 +157,6 @@ extern void ppc64g_dirtyhelper_LVS ( VexGuestPPC64State* gst,
+                                      UInt vD_idx, UInt sh,
+                                      UInt shift_right );
+ 
+-extern void spe_dirtyhelper_evmwsmfan ( VexGuestPPC32State* gst,
+-                                        UInt ACC_off,
+-                                        UInt rD_off,
+-                                        UInt rA_off,
+-                                        UInt rB_off);
+-extern void spe_dirtyhelper_evmwsmfaa ( VexGuestPPC32State* gst,
+-                                        UInt ACC_off,
+-                                        UInt rD_off,
+-                                        UInt rA_off,
+-                                        UInt rB_off);
+-extern void spe_dirtyhelper_evmwsmfa ( VexGuestPPC32State* gst,
+-                                       UInt ACC_off,
+-                                       UInt rD_off,
+-                                       UInt rA_off,
+-                                       UInt rB_off);
+-extern void spe_dirtyhelper_evmwsmf ( VexGuestPPC32State* gst,
+-                                      UInt rD_off,
+-                                      UInt rA_off,
+-                                      UInt rB_off);
+-extern void spe_dirtyhelper_evmwhsmfa ( VexGuestPPC32State* gst,
+-                                        UInt ACC_off,
+-                                        UInt rD_off,
+-                                        UInt rA_off,
+-                                        UInt rB_off);
+-extern void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
+-                                       UInt rD_off,
+-                                       UInt rA_off,
+-                                       UInt rB_off);
+-extern void spe_dirtyhelper_evmhosmfanw ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhosmfaaw ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhosmfa ( VexGuestPPC32State* gst,
+-                                        UInt ACC_off,
+-                                        UInt rD_off,
+-                                        UInt rA_off,
+-                                        UInt rB_off);
+-extern void spe_dirtyhelper_evmhosmf ( VexGuestPPC32State* gst,
+-                                       UInt rD_off,
+-                                       UInt rA_off,
+-                                       UInt rB_off);
+-extern void spe_dirtyhelper_evmhesmfanw ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhesmfaaw ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhesmfa ( VexGuestPPC32State* gst,
+-                                        UInt ACC_off,
+-                                        UInt rD_off,
+-                                        UInt rA_off,
+-                                        UInt rB_off);
+-extern void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
+-                                       UInt rD_off,
+-                                       UInt rA_off,
+-                                       UInt rB_off);
+-extern void spe_dirtyhelper_evmhogsmfan ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhogsmfaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegsmfan ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegsmiaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegsmian ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegumiaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhegumian ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhogsmiaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhogsmian ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhogumiaa ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
+-                                          UInt ACC_off,
+-                                          UInt rD_off,
+-                                          UInt rA_off,
+-                                          UInt rB_off);
+-extern void spe_dirtyhelper_mfspefscr ( VexGuestPPC32State* gst,
+-                                        UInt rD_off );
+-extern void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
+-                                        UInt rD_off );
+-
+ #define SPE_DIRTY_HELPER_DECL_crfDrArB(insn) \
+ extern UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off );
+ 
+@@ -306,6 +175,32 @@ extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt
+ #define SPE_DIRTY_HELPER_DECL_ACCrDrA(insn) \
+ extern void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off);
+ 
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwsmfan);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwsmfaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwsmfa);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmwsmf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmwhsmfa);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmwhsmf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhosmfanw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhosmfaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhosmfa);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmhosmf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhesmfanw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhesmfaaw);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhesmfa);
++SPE_DIRTY_HELPER_DECL_rDrArB(evmhesmf);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogsmfan);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogsmfaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegsmfan);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegsmfaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegsmiaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegsmian);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegumiaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhegumian);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogsmiaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogsmian);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogumiaa);
++SPE_DIRTY_HELPER_DECL_ACCrDrArB(evmhogumian);
+ SPE_DIRTY_HELPER_DECL_crfDrArB(efdcmpeq);
+ SPE_DIRTY_HELPER_DECL_rDrA(efdabs);
+ SPE_DIRTY_HELPER_DECL_rDrArB(efdadd);
+@@ -410,6 +305,8 @@ SPE_DIRTY_HELPER_DECL_ACCrDrA(evaddssiaaw);
+ SPE_DIRTY_HELPER_DECL_ACCrDrA(evaddusiaaw);
+ SPE_DIRTY_HELPER_DECL_rDrArB(evdivws);
+ SPE_DIRTY_HELPER_DECL_rDrArB(evdivwu);
++extern void spe_dirtyhelper_mfspefscr ( VexGuestPPC32State* gst, UInt rD_off );
++extern void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst, UInt rD_off );
+ 
+ #endif /* ndef __VEX_GUEST_PPC_DEFS_H */
+ 
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 59924fb..74bc23f 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -184,297 +184,6 @@ void ppc64g_dirtyhelper_LVS ( VexGuestPPC64State* gst,
+   (*pU128_dst)[3] = (*pU128_src)[3];
+ }
+ 
+-/*---------------------------------------------------------------*/
+-/*---                       SPE helpers.                      ---*/
+-/*---------------------------------------------------------------*/
+-
+-#ifdef __SPE__
+-#include <spe.h>
+-#endif
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwsmfan ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rT asm ("27") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ ACC;
+-  __ev64_s64__ rD;
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rT <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[0:63] <- ACC[0:63] - rT[0:63]
+-  rD = (__ev64_s64__) { (Long) ((Long) ACC - (Long) rT) };
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwsmfaa ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rT asm ("27") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ ACC;
+-  __ev64_s64__ rD;
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rT <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[0:63] <- ACC[0:63] + rT[0:63]
+-  rD = (__ev64_s64__) { (Long) ((Long) ACC + (Long) rT) };
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwsmfa ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional to Accumulator, SPEPEM p5-199)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ ACC;
+-  __ev64_s64__ rD;
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rD <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwsmf ( VexGuestPPC32State* gst,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional to Accumulator, SPEPEM p5-199)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ rD;
+-
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rD <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwhsmfa ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwhsmfa (Vector Multiply Word High Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-184)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ ACC;
+-  __ev64_s64__ rD;
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = (__ev64_s64__) { *((Long *) ((UChar *) gst + ACC_off)) };;
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rD <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmwhsmf ( VexGuestPPC32State* gst,
+-                                UInt rD_off,
+-                                UInt rA_off,
+-                                UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
+-
+-  // Note: Starting with GPR30 gives this GCC (4.6.2) error:
+-  // error: 31 cannot be used in asm here
+-  // BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
+-  // variables in a register, guaranteed.
+-  // BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
+-  // type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
+-  // rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.
+-  register __ev64_s64__ rA asm ("29") = (__ev64_s64__) { 0x0 };
+-  register __ev64_s64__ rB asm ("28") = (__ev64_s64__) { 0x0 };
+-
+-  __ev64_s64__ rD;
+-
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rA_off)) };
+-  rB  = (__ev64_s64__) { *((Long *) ((UChar *) gst + rB_off)) };
+-
+-  // rD <- rA[32:63] Xsf rB[32:63]
+-  asm volatile ("evmwhsmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-#endif // __SPE__
+-  return;
+-}
+-
+ /* Helper-function specialiser. */
+ 
+ IRExpr* guest_ppc32_spechelper ( HChar* function_name,
+@@ -493,911 +202,13 @@ IRExpr* guest_ppc64_spechelper ( HChar* function_name,
+    return NULL;
+ }
+ 
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhosmfanw ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhosmfanw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional
+-  // and Accumulate Negative into Words, SPEPEM p5-168)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rT  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-  register __ev64_opaque__ rD  asm ("25");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rT[00:31] <- rA[16:31] Xsf rB[16:31]
+-  // rT[32:63] <- rA[48:63] Xsf rB[48:63]
+-  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[00:31] <- ACC[00:31] - rT[00:31]
+-  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) - __ev_get_upper_s32(rT));
+-  // rD[32:63] <- ACC[32:63] - rT[32:63]
+-  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) - __ev_get_lower_s32(rT));
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhosmfaaw ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhosmfaaw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional
+-  // and Accumulate into Words, SPEPEM p5-167)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rT  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-  register __ev64_opaque__ rD  asm ("25");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rT[00:31] <- rA[16:31] Xsf rB[16:31]
+-  // rT[32:63] <- rA[48:63] Xsf rB[48:63]
+-  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[00:31] <- ACC[00:31] + rT[00:31]
+-  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) + __ev_get_upper_s32(rT));
+-  // rD[32:63] <- ACC[32:63] + rT[32:63]
+-  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) + __ev_get_lower_s32(rT));
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhosmfa ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhosmfa (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rD[00:31] <- rA[16:31] Xsf rB[16:31]
+-  // rD[32:63] <- rA[48:63] Xsf rB[48:63]
+-  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhosmf ( VexGuestPPC32State* gst,
+-                                UInt rD_off,
+-                                UInt rA_off,
+-                                UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhosmf (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional, SPEPEM p5-166)
+-
+-  register __ev64_opaque__ rA asm ("29");
+-  register __ev64_opaque__ rB asm ("28");
+-  register __ev64_opaque__ rD asm ("27");
+-
+-  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rD[00:31] <- rA[16:31] Xsf rB[16:31]
+-  // rD[32:63] <- rA[48:63] Xsf rB[48:63]
+-  asm volatile ("evmhosmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhesmfanw ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhesmfanw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional
+-  // and Accumulate Negative into Words, SPEPEM p5-146)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rT  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-  register __ev64_opaque__ rD  asm ("25");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rT[00:31] <- rA[00:15] Xsf rB[00:15]
+-  // rT[32:63] <- rA[32:47] Xsf rB[32:47]
+-  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[00:31] <- ACC[00:31] - rT[00:31]
+-  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) - __ev_get_upper_s32(rT));
+-  // rD[32:63] <- ACC[32:63] - rT[32:63]
+-  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) - __ev_get_lower_s32(rT));
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhesmfaaw ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhesmfaaw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional
+-  // and Accumulate into Words, SPEPEM p5-167)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rT  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-  register __ev64_opaque__ rD  asm ("25");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rT[00:31] <- rA[00:15] Xsf rB[00:15]
+-  // rT[32:63] <- rA[32:47] Xsf rB[32:47]
+-  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rT) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // rD[00:31] <- ACC[00:31] + rT[00:31]
+-  rD = __ev_set_upper_s32 (rD, __ev_get_upper_s32(ACC) + __ev_get_upper_s32(rT));
+-  // rD[32:63] <- ACC[32:63] + rT[32:63]
+-  rD = __ev_set_lower_s32 (rD, __ev_get_lower_s32(ACC) + __ev_get_lower_s32(rT));
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhesmfa ( VexGuestPPC32State* gst,
+-                                 UInt ACC_off,
+-                                 UInt rD_off,
+-                                 UInt rA_off,
+-                                 UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhesmfa (Vector Multiply Half Words, Even, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rD[00:31] <- rA[00:15] Xsf rB[00:15]
+-  // rD[32:63] <- rA[32:47] Xsf rB[32:47]
+-  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[0:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhesmf ( VexGuestPPC32State* gst,
+-                                UInt rD_off,
+-                                UInt rA_off,
+-                                UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhesmf (Vector Multiply Half Words, Even, Signed, Modulo, Fractional, SPEPEM p5-166)
+-
+-  register __ev64_opaque__ rA asm ("29");
+-  register __ev64_opaque__ rB asm ("28");
+-  register __ev64_opaque__ rD asm ("27");
+-
+-  vassert(rD_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read rA, rB from the Guest State:
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // rD[00:31] <- rA[00:15] Xsf rB[00:15]
+-  // rD[32:63] <- rA[32:47] Xsf rB[32:47]
+-  asm volatile ("evmhesmf %[t], %[a], %[b]" : [t] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogsmfan ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhogsmfan (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional
+-  // and Accumulate Negative, SPEPEM p5-161)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogsmfan reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsf rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogsmfan %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogsmfaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhogsmfaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional
+-  // and Accumulate, SPEPEM p5-160)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogsmfaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsf rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogsmfaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegsmfan ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegsmfan (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional
+-  // and Accumulate Negative, SPEPEM p5-139)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegsmfan reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsf rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegsmfan %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegsmfaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegsmfaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional
+-  // and Accumulate, SPEPEM p5-138)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegsmfaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsf rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegsmfaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegsmiaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegsmiaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
+-  // and Accumulate, SPEPEM p5-140)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegsmiaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTS (rA[32:47] Xsi rB[32:47])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegsmiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegsmian ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegsmian (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
+-  // and Accumulate Negative, SPEPEM p5-141)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegsmian reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTS (rA[32:47] Xsi rB[32:47])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegsmian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegumiaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegumiaa (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
+-  // and Accumulate, SPEPEM p5-142)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegumiaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTZ (rA[32:47] Xui rB[32:47])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegumiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhegumian ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhegumian (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
+-  // and Accumulate Negative, SPEPEM p5-143)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhegumian reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTZ (rA[32:47] Xui rB[32:47])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhegumian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogsmiaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhogsmiaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
+-  // and Accumulate, SPEPEM p5-162)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogsmiaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTS (rA[48:63] Xsi rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogsmiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogsmian ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhogsmian (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
+-  // and Accumulate Negative, SPEPEM p5-163)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_s64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_s64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_s64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogsmian reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTS (rA[48:63] Xsi rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogsmian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_s64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_s64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
+-
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogumiaa ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+-#ifdef __SPE__
+-
+-  // evmhogumiaa (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
+-  // and Accumulate, SPEPEM p5-164)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogumiaa reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] + EXTZ (rA[48:63] Xui rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogumiaa %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
++/*---------------------------------------------------------------*/
++/*---                    SPE helpers begin.                   ---*/
++/*---------------------------------------------------------------*/
+ 
+-/* CALLED FROM GENERATED CODE */
+-/* DIRTY HELPER (reads guest state, writes guest state) */
+-void spe_dirtyhelper_evmhogumian ( VexGuestPPC32State* gst,
+-                                   UInt ACC_off,
+-                                   UInt rD_off,
+-                                   UInt rA_off,
+-                                   UInt rB_off)
+-{
+ #ifdef __SPE__
+-
+-  // evmhogumian (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
+-  // and Accumulate Negative, SPEPEM p5-165)
+-
+-  register __ev64_opaque__ rA  asm ("29");
+-  register __ev64_opaque__ rB  asm ("28");
+-  register __ev64_opaque__ rD  asm ("27");
+-  register __ev64_opaque__ ACC asm ("26");
+-
+-  vassert(ACC_off <= sizeof(VexGuestPPC32State) - sizeof(ULong));
+-  vassert(rD_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rA_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-  vassert(rB_off  <= sizeof(VexGuestPPC32State) - 2 * sizeof(UInt));
+-
+-  // Read ACC, rA, rB from the Guest State:
+-  ACC = __ev_create_u64 (*((Long *) ((UChar *) gst + ACC_off)));
+-  rA  = __ev_create_u64 (*((Long *) ((UChar *) gst + rA_off)));
+-  rB  = __ev_create_u64 (*((Long *) ((UChar *) gst + rB_off)));
+-
+-  // Since evmhogumian reads the ACC, get the guest state ACC value into
+-  // the hard ACC:
+-  asm volatile ("evmra %[d], %[acc]" : [d] "=r" (rD) : [acc] "r" (ACC));
+-
+-  // rD[0:63] <- ACC[0:63] - EXTZ (rA[48:63] Xui rB[48:63])
+-  // (hard) ACC[0:63] <- rD[0:63]
+-  asm volatile ("evmhogumian %[d], %[a], %[b]" : [d] "=r" (rD) : [a] "r" (rA), [b] "r" (rB));
+-
+-  // Write rD to the Guest State:
+-  *((Long *) ((UChar *) gst + rD_off)) = __ev_convert_u64 (rD);
+-
+-  // ACC[00:63] <- rD[0:63]
+-  ACC = rD;
+-  // Write ACC to the Guest State:
+-  *((Long *) ((UChar *) gst + ACC_off)) = __ev_convert_u64 (ACC);
+-#endif // __SPE__
+-  return;
+-}
++#include <spe.h>
++#endif
+ 
+ /* CALLED FROM GENERATED CODE */
+ /* DIRTY HELPER (reads guest state, writes guest state) */
+@@ -1434,6 +245,13 @@ void spe_dirtyhelper_mtspefscr ( VexGuestPPC32State* gst,
+ 
+ /* CALLED FROM GENERATED CODE */
+ /* DIRTY HELPER (reads guest state, writes guest state) */
++/* Note: Starting with GPR30 gives this GCC (4.6.2) error:
++   error: 31 cannot be used in asm here
++   BTW, the reason we're explicitly assigning registers is that we absolutely want each of these
++   variables in a register, guaranteed.
++   BTW, If we (did not include spe.h and instead of using __ev64_s64__ as the type, use Long as the
++   type for rA, rB; with GCC (4.6.2) r29 gets clobbered - it is defined once for rA and then again for
++   rB before the asm () for the evmwsmf! :) Definitely a GCC (4.6.2) bug.  */
+ #ifdef __SPE__
+ #define SPE_DIRTY_HELPER_DEFN_crfDrArB(insn, rA_type, rB_type)                    \
+ UInt spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rA_off, UInt rB_off ) \
+@@ -1529,80 +347,6 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt rD_off, UInt rB_off
+ #define SPE_DIRTY_HELPER_DEFN_rDrA(insn, rD_type, rA_type) \
+         SPE_DIRTY_HELPER_DEFN_rDrB(insn, rD_type, rA_type)
+ 
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdabs,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctui,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efdneg,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsabs,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsadd,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfd,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfsf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfsi,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfuf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efscfui,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpeq,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpgt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmplt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsi,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctsiz,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctuf,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctui,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(efsctuiz,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsdiv,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efsmul,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsnabs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(efsneg,        __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(efssub,      __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststeq,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststgt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(efststlt,  __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(evfsabs,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evfsadd,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfscfuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfscfui,      __ev64_opaque__, __ev64_opaque__)
+-#undef EXTRACT_CMP_RES
+-#define EXTRACT_CMP_RES(cr) ((cr) & 0xf)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpeq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmplt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsi,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuf,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctui,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuiz,     __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evfsdiv,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evfsmul,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(evfsnabs,      __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrA(evfsneg,       __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evfssub,     __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststeq, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststgt, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststlt, __ev64_opaque__, __ev64_opaque__)
+-
+ #ifdef __SPE__
+ #define SPE_DIRTY_HELPER_DEFN_ACCrDrArB(insn, rD_type, rA_type, rB_type, reads_acc, writes_acc)             \
+ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off, UInt rB_off) \
+@@ -1646,33 +390,6 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off
+ { return; }
+ #endif // __SPE__
+ 
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evmhessf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evmhossf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evmwhssf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwhssfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_rDrArB(evmwssf,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfa,    __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfaa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfan,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+-
+ #ifdef __SPE__
+ #define SPE_DIRTY_HELPER_DEFN_ACCrDrA(insn, rD_type, rA_type, reads_acc, writes_acc)           \
+ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off, UInt rA_off) \
+@@ -1713,14 +430,142 @@ void spe_dirtyhelper_##insn ( VexGuestPPC32State* gst, UInt ACC_off, UInt rD_off
+ { return; }
+ #endif // __SPE__
+ 
++SPE_DIRTY_HELPER_DEFN_rDrA(efdabs,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdadd,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfs,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfsi,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfuf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdcfui,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpeq,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmpgt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdcmplt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsi,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctsiz,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctui,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efdctuiz,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efddiv,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdmul,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdnabs,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efdneg,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efdsub,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtsteq,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstgt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efdtstlt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsabs,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsadd,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfd,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfsi,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfuf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efscfui,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpeq,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmpgt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efscmplt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsi,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctsiz,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuf,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctui,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(efsctuiz,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsdiv,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efsmul,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsnabs,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(efsneg,           __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(efssub,         __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststeq,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststgt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(efststlt,     __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsabs,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsadd,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsf,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfsi,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfuf,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfscfui,         __ev64_opaque__, __ev64_opaque__)
++#undef EXTRACT_CMP_RES
++#define EXTRACT_CMP_RES(cr) ((cr) & 0xf)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpeq,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmpgt,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfscmplt,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsf,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsi,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctsiz,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuf,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctui,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrB(evfsctuiz,        __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsdiv,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfsmul,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsnabs,         __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrA(evfsneg,          __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evfssub,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststeq,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststgt,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_crfDrArB(evfststlt,    __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwsmfan,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwsmfaa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwsmfa,    __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwsmf,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwhsmfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwhsmf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhosmfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhosmfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhosmfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhosmf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhesmfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhesmfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhesmfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhesmf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogsmfan, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogsmfaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegsmfan, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegsmfaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegsmiaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegsmian, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegumiaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhegumian, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogsmiaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogsmian, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogumiaa, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhogumian, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhessf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhessianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmheusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmhossf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossfanw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhossianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmhousianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwhssf,       __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwhssfa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlssianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusiaaw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwlusianw, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_rDrArB(evmwssf,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfa,    __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 0, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfaa,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
++SPE_DIRTY_HELPER_DEFN_ACCrDrArB(evmwssfan,   __ev64_opaque__, __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfssiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evsubfusiaaw,  __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evaddssiaaw,   __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_ACCrDrA(evaddusiaaw,   __ev64_opaque__, __ev64_opaque__, 1, 1)
+ SPE_DIRTY_HELPER_DEFN_rDrArB(evdivws,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+ SPE_DIRTY_HELPER_DEFN_rDrArB(evdivwu,        __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++SPE_DIRTY_HELPER_DEFN_rDrArB(brinc,          __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
+ 
+-SPE_DIRTY_HELPER_DEFN_rDrArB(brinc, __ev64_opaque__, __ev64_opaque__, __ev64_opaque__)
++/*---------------------------------------------------------------*/
++/*---                    SPE helpers end.                     ---*/
++/*---------------------------------------------------------------*/
+ 
+ /*----------------------------------------------*/
+ /*--- The exported fns ..                    ---*/
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index f28be19..79b86ae 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -14433,65 +14433,11 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x42b:
+      // evmhesmfa (Vector Multiply Half Words, Even, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhesmfa",
+-                            &spe_dirtyhelper_evmhesmfa,
+-                            args);
+-     DIP( "evmhesmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhesmfa, Ifx_Write);
+      break;
+   case 0x42f:
+      // evmhosmfa (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-166)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhosmfa",
+-                            &spe_dirtyhelper_evmhosmfa,
+-                            args);
+-     DIP( "evmhosmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhosmfa, Ifx_Write);
+      break;
+   case 0x403:
+      // evmhessf (Vector Multiply Half Words, Even, Signed, Saturate, Fractional, SPEPEM p5-150)
+@@ -14503,57 +14449,11 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x40b:
+      // evmhesmf (Vector Multiply Half Words, Even, Signed, Modulo, Fractional, SPEPEM p5-166)
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhesmf",
+-                            &spe_dirtyhelper_evmhesmf,
+-                            args);
+-     DIP( "evmhesmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 3;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = rD_off;
+-     d->fxState[0].size   = 2 * sizeof(UInt);
+-     d->fxState[1].fx     = Ifx_Read;
+-     d->fxState[1].offset = rA_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rB_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmhesmf);
+      break;
+   case 0x40f:
+      // evmhosmf (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional, SPEPEM p5-166)
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhosmf",
+-                            &spe_dirtyhelper_evmhosmf,
+-                            args);
+-     DIP( "evmhosmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 3;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = rD_off;
+-     d->fxState[0].size   = 2 * sizeof(UInt);
+-     d->fxState[1].fx     = Ifx_Read;
+-     d->fxState[1].offset = rA_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rB_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmhosmf);
+      break;
+   case 0x447:
+      // evmwhssf (Vector Multiply Word High Signed, Saturate, Fractional, SPEPEM p5-186)
+@@ -14561,30 +14461,7 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x44f:
+      // evmwhsmf (Vector Multiply Word High Signed, Modulo, Fractional, SPEPEM p5-184)
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwhsmf",
+-                            &spe_dirtyhelper_evmwhsmf,
+-                            args);
+-     DIP( "evmwhsmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 3;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = rD_off;
+-     d->fxState[0].size   = 2 * sizeof(UInt);
+-     d->fxState[1].fx     = Ifx_Read;
+-     d->fxState[1].offset = rA_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rB_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmwhsmf);
+      break;
+   case 0x453:
+      // evmwssf (Vector Multiply Word Signed, Saturate, Fractional, SPEPEM p5-205)
+@@ -14596,61 +14473,11 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x46f:
+      // evmwhsmfa (Vector Multiply Word High Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-184)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwhsmfa",
+-                            &spe_dirtyhelper_evmwhsmfa,
+-                            args);
+-     DIP( "evmwhsmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwhsmfa, Ifx_Write);
+      break;
+   case 0x45b:
+      // evmwsmf (Vector Multiply Word Signed, Modulo, Fractional, SPEPEM p5-199)
+-     args = mkIRExprVec_3 ( mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwsmf",
+-                            &spe_dirtyhelper_evmwsmf,
+-                            args);
+-     DIP( "evmwsmf r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 3;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = rD_off;
+-     d->fxState[0].size   = 2 * sizeof(UInt);
+-     d->fxState[1].fx     = Ifx_Read;
+-     d->fxState[1].offset = rA_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rB_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_rDrArB(evmwsmf);
+      break;
+   case 0x473:
+      // evmwssfa (Vector Multiply Word Signed, Saturate, Fractional (to Accumulator), SPEPEM p5-205)
+@@ -14658,34 +14485,7 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x47b:
+      // evmwsmfa (Vector Multiply Word Signed, Modulo, Fractional (to Accumulator), SPEPEM p5-199)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwsmfa",
+-                            &spe_dirtyhelper_evmwsmfa,
+-                            args);
+-     DIP( "evmwsmfa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Write;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwsmfa, Ifx_Write);
+      break;
+   case 0x500:
+      // evmheusiaaw (Vector Multiply Half Words, Even, Unsigned, Saturate, Integer and Accumulate into Words, SPEPEM p5-158)
+@@ -14725,321 +14525,51 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x50b:
+      // evmhesmfaaw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate into Words, SPEPEM p5-167)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhesmfaaw",
+-                            &spe_dirtyhelper_evmhesmfaaw,
+-                            args);
+-     DIP( "evmhesmfaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhesmfaaw, Ifx_Modify);
+      break;
+   case 0x50f:
+      // evmhosmfaaw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional and Accumulate into Words, SPEPEM p5-167)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhosmfaaw",
+-                            &spe_dirtyhelper_evmhosmfaaw,
+-                            args);
+-     DIP( "evmhosmfaaw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhosmfaaw, Ifx_Modify);
+      break;
+   case 0x528:
+      // evmhegumiaa (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
+      // and Accumulate, SPEPEM p5-142)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegumiaa",
+-                            &spe_dirtyhelper_evmhegumiaa,
+-                            args);
+-     DIP( "evmhegumiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegumiaa, Ifx_Modify);
+      break;
+   case 0x529:
+      // evmhegsmiaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
+      // and Accumulate, SPEPEM p5-140)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegsmiaa",
+-                            &spe_dirtyhelper_evmhegsmiaa,
+-                            args);
+-     DIP( "evmhegsmiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegsmiaa, Ifx_Modify);
+      break;
+   case 0x5a8:
+      // evmhegumian (Vector Multiply Half Words, Even, Guarded, Unsigned, Modulo, Integer
+      // and Accumulate Negative, SPEPEM p5-143)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegumian",
+-                            &spe_dirtyhelper_evmhegumian,
+-                            args);
+-     DIP( "evmhegumian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegumian, Ifx_Modify);
+      break;
+   case 0x5a9:
+      // evmhegsmian (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Integer
+      // and Accumulate Negative, SPEPEM p5-141)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegsmian",
+-                            &spe_dirtyhelper_evmhegsmian,
+-                            args);
+-     DIP( "evmhegsmian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegsmian, Ifx_Modify);
+      break;
+   case 0x52c:
+      // evmhogumiaa (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
+      // and Accumulate, SPEPEM p5-164)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogumiaa",
+-                            &spe_dirtyhelper_evmhogumiaa,
+-                            args);
+-     DIP( "evmhogumiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogumiaa, Ifx_Modify);
+      break;
+   case 0x52d:
+      // evmhogsmiaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
+      // and Accumulate, SPEPEM p5-162)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogsmiaa",
+-                            &spe_dirtyhelper_evmhogsmiaa,
+-                            args);
+-     DIP( "evmhogsmiaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogsmiaa, Ifx_Modify);
+      break;
+   case 0x5ac:
+      // evmhogumian (Vector Multiply Half Words, Odd, Guarded, Unsigned, Modulo, Integer
+      // and Accumulate Negative, SPEPEM p5-165)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogumian",
+-                            &spe_dirtyhelper_evmhogumian,
+-                            args);
+-     DIP( "evmhogumian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogumian, Ifx_Modify);
+      break;
+   case 0x5ad:
+      // evmhogsmian (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Integer
+      // and Accumulate Negative, SPEPEM p5-163)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogsmian",
+-                            &spe_dirtyhelper_evmhogsmian,
+-                            args);
+-     DIP( "evmhogsmian r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogsmian, Ifx_Modify);
+      break;
+   case 0x553:
+      // evmwssfaa (Vector Multiply Word Signed, Saturate, Fractional and Accumulate, SPEPEM p5-206)
+@@ -15047,34 +14577,7 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x55b:
+      // evmwsmfaa (Vector Multiply Word Signed, Modulo, Fractional and Accumulate, SPEPEM p5-200)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwsmfaa",
+-                            &spe_dirtyhelper_evmwsmfaa,
+-                            args);
+-     DIP( "evmwsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwsmfaa, Ifx_Modify);
+      break;
+   case 0x584:
+      // evmhousianw (Vector Multiply Half Words, Odd, Unsigned, Saturate, Integer and Accumulate Negative into Words, SPEPEM p5-182)
+@@ -15090,65 +14593,11 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x58b:
+      // evmhesmfanw (Vector Multiply Half Words, Even, Signed, Modulo, Fractional and Accumulate Negative into Words, SPEPEM p5-168)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhesmfanw",
+-                            &spe_dirtyhelper_evmhesmfanw,
+-                            args);
+-     DIP( "evmhesmfanw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhesmfanw, Ifx_Modify);
+      break;
+   case 0x58f:
+      // evmhosmfanw (Vector Multiply Half Words, Odd, Signed, Modulo, Fractional and Accumulate Negative into Words, SPEPEM p5-168)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhosmfanw",
+-                            &spe_dirtyhelper_evmhosmfanw,
+-                            args);
+-     DIP( "evmhosmfanw r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhosmfanw, Ifx_Modify);
+      break;
+   case 0x5d3:
+      // evmwssfan (Vector Multiply Word Signed, Saturate, Fractional and Accumulate Negative, SPEPEM p5-207)
+@@ -15156,127 +14605,19 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x5db:
+      // evmwsmfan (Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-201)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmwsmfan",
+-                            &spe_dirtyhelper_evmwsmfan,
+-                            args);
+-     DIP( "evmwsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmwsmfan, Ifx_Modify);
+      break;
+   case 0x52b:
+      // evmhegsmfaa (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional and Accumulate, SPEPEM p5-138)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegsmfaa",
+-                            &spe_dirtyhelper_evmhegsmfaa,
+-                            args);
+-     DIP( "evmhegsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegsmfaa, Ifx_Modify);
+      break;
+   case 0x5ab:
+      // evmhegsmfan (Vector Multiply Half Words, Even, Guarded, Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-139)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhegsmfan",
+-                            &spe_dirtyhelper_evmhegsmfan,
+-                            args);
+-     DIP( "evmhegsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhegsmfan, Ifx_Modify);
+      break;
+   case 0x52f:
+      // evmhogsmfaa (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional and Accumulate, SPEPEM p5-160)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogsmfaa",
+-                            &spe_dirtyhelper_evmhogsmfaa,
+-                            args);
+-     DIP( "evmhogsmfaa r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogsmfaa, Ifx_Modify);
+      break;
+   case 0x540:
+      // evmwlusiaaw (Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate in Words, SPEPEM p5-197)
+@@ -15288,34 +14629,7 @@ static Bool dis_spe_ACC_based_multiply_insns_via_dirty_helpers ( UInt theInstr )
+      break;
+   case 0x5af:
+      // evmhogsmfan (Vector Multiply Half Words, Odd, Guarded, Signed, Modulo, Fractional and Accumulate Negative, SPEPEM p5-161)
+-     args = mkIRExprVec_4 ( mkU32( ACC_off ),
+-                            mkU32( rD_off ),
+-                            mkU32( rA_off ),
+-                            mkU32( rB_off ) );
+-     d = unsafeIRDirty_0_N (0 /* regparms */,
+-                            "spe_dirtyhelper_evmhogsmfan",
+-                            &spe_dirtyhelper_evmhogsmfan,
+-                            args);
+-     DIP( "evmhogsmfan r%d, r%d, r%d\n", rD_addr, rA_addr, rB_addr );
+-     /* declare guest state effects */
+-     d->needsBBP = True;
+-     d->nFxState = 4;
+-     vex_bzero(&d->fxState, sizeof(d->fxState));
+-     d->fxState[0].fx     = Ifx_Modify;
+-     d->fxState[0].offset = ACC_off;
+-     d->fxState[0].size   = sizeof(ULong);
+-     d->fxState[1].fx     = Ifx_Write;
+-     d->fxState[1].offset = rD_off;
+-     d->fxState[1].size   = 2 * sizeof(UInt);
+-     d->fxState[2].fx     = Ifx_Read;
+-     d->fxState[2].offset = rA_off;
+-     d->fxState[2].size   = 2 * sizeof(UInt);
+-     d->fxState[3].fx     = Ifx_Read;
+-     d->fxState[3].offset = rB_off;
+-     d->fxState[3].size   = 2 * sizeof(UInt);
+-
+-     /* execute the dirty call, side-effecting guest state */
+-     stmt( IRStmt_Dirty(d) );
++     PREPARE_DIRTY_HELPER_CALL_ACCrDrArB(evmhogsmfan, Ifx_Modify);
+      break;
+   case 0x5c0:
+      // evmwlusianw (Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate Negative in Words, SPEPEM p5-198)
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 112b3e7..66e6fa8 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 21368 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 22326 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 21930 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 22884 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2073,7 +2073,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 26620 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 27578 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 31099 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 32062 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 16278 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 17237 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2493,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 21622 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 22579 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index a2a10a4..d747d1b 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -1944,7 +1944,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  7068 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 26346 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1961,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 29193 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 26904 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2074,7 +2074,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 25709 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 31596 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2210,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  8371 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  3749 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2376,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 31694 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21244 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2495,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 25715 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 26605 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0060-Run-memcheck-tests-ppc32-test_spe-only-on-Power-SPE-.patch b/recipes-devtools/valgrind/files/0060-Run-memcheck-tests-ppc32-test_spe-only-on-Power-SPE-.patch
new file mode 100644
index 0000000..7d44241
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0060-Run-memcheck-tests-ppc32-test_spe-only-on-Power-SPE-.patch
@@ -0,0 +1,745 @@
+From b43a627d14a0b37f66c643b2f01b94f6eee8def3 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Wed, 22 May 2013 14:13:02 -0700
+Subject: [PATCH 60/65] Run memcheck/tests/ppc32/test_spe only on Power/SPE systems; skip otherwise.
+ Specified prereq in memcheck/tests/ppc32/test_spe.vgtest
+ Added: memcheck/tests/ppc32/test_spe.prereq.sh which checks if we are on an Power/SPE system.
+
+---
+ memcheck/tests/ppc32/test_spe.prereq.sh |   19 +++++++++++
+ memcheck/tests/ppc32/test_spe.vgtest    |    1 +
+ regtest-power7-64.default-build.log     |   53 ++++++++++++++++++++++++++-----
+ regtest-power7-64.log                   |   53 ++++++++++++++++++++++++++-----
+ 4 files changed, 110 insertions(+), 16 deletions(-)
+ create mode 100755 memcheck/tests/ppc32/test_spe.prereq.sh
+
+diff --git a/memcheck/tests/ppc32/test_spe.prereq.sh b/memcheck/tests/ppc32/test_spe.prereq.sh
+new file mode 100755
+index 0000000..a56479c
+--- /dev/null
++++ b/memcheck/tests/ppc32/test_spe.prereq.sh
+@@ -0,0 +1,19 @@
++SPE_CHECK=spe-check
++SPE_CHECK_C_FILE=./${SPE_CHECK}.c
++SPE_CHECK_O_FILE=./${SPE_CHECK}.o
++SPE_CHECK_FILES=./${SPE_CHECK}.[co]
++cat > $SPE_CHECK_C_FILE << EOF
++#ifdef __SPE__
++#include <spe.h>
++int main(void) { return 0; }
++#else
++#error "Not on a POWER/SPE system!"
++#endif
++EOF
++
++gcc -c $SPE_CHECK_C_FILE
++SPE_CHECK=$?
++
++rm -f $SPE_CHECK_FILES
++
++exit $SPE_CHECK
+diff --git a/memcheck/tests/ppc32/test_spe.vgtest b/memcheck/tests/ppc32/test_spe.vgtest
+index 2c9cab3..eceb6b3 100644
+--- a/memcheck/tests/ppc32/test_spe.vgtest
++++ b/memcheck/tests/ppc32/test_spe.vgtest
+@@ -1,2 +1,3 @@
+ prog: test_spe
+ vgopts: --leak-check=full
++prereq: ./test_spe.prereq.sh
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index 66e6fa8..decf056 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,12 +461,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[5]: Warning: File `.deps/writev1.Po' has modification time 0.22 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ Making check in ppc32
+@@ -482,12 +484,14 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.85 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ Making check in ppc64
+@@ -500,12 +504,14 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.94 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ Making check in linux
+@@ -545,12 +551,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.88 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+@@ -597,12 +605,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+@@ -646,12 +656,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[5]: Warning: File `.deps/threads.Po' has modification time 0.93 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+@@ -752,12 +764,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[4]: Warning: File `.deps/zero.Po' has modification time 0.82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+@@ -1052,12 +1066,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.47 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ Making check in ppc32
+@@ -1142,12 +1158,14 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ Making check in ppc64
+@@ -1208,12 +1226,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.85 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ Making check in linux
+@@ -1235,12 +1255,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.93 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+@@ -1396,12 +1418,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 0.22 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+@@ -1604,12 +1628,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.61 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+@@ -1663,12 +1689,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+@@ -1731,12 +1759,14 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Warning: File `.deps/million.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+@@ -1789,12 +1819,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ Making check in perf
+@@ -1831,12 +1863,14 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.61 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ Making check in gdbserver_tests
+@@ -1867,12 +1901,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ Making check in auxprogs
+@@ -1944,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 22326 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 29929 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 22884 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 30491 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2051,7 +2087,8 @@ pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace
+ post-syscall:    valgrind   -q ./post-syscall 
+ -- Running  tests in memcheck/tests/ppc32 ------------------------------
+ power_ISA2_05:   valgrind   ./power_ISA2_05 
+-test_spe:        valgrind   --leak-check=full ./test_spe 
++./spe-check.c:5:2: error: #error "Not on a POWER/SPE system!"
++test_spe:        (skipping, prereq failed: ./test_spe.prereq.sh)
+ -- Finished tests in memcheck/tests/ppc32 ------------------------------
+ -- Running  tests in memcheck/tests/ppc64 ------------------------------
+ power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+@@ -2073,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 27578 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  2831 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2247,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 32062 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  7315 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2413,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 17237 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 24867 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2493,7 +2530,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 22579 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 30216 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2516,7 +2553,7 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 530 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 529 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index d747d1b..70d754b 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,12 +461,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
++make[5]: Warning: File `.deps/writev1.Po' has modification time 0.11 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ Making check in ppc32
+@@ -482,12 +484,14 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.85 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ Making check in ppc64
+@@ -500,12 +504,14 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.94 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ Making check in linux
+@@ -545,12 +551,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.88 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+@@ -597,12 +605,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.87 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+@@ -646,12 +656,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
++make[5]: Warning: File `.deps/threads.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+@@ -752,12 +764,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
++make[4]: Warning: File `.deps/zero.Po' has modification time 0.43 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+@@ -1052,12 +1066,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
++make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.39 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ Making check in ppc32
+@@ -1142,12 +1158,14 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ Making check in ppc64
+@@ -1208,12 +1226,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ Making check in linux
+@@ -1235,12 +1255,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+@@ -1396,12 +1418,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
++make[4]: Warning: File `.deps/annotate_rwlock.Po' has modification time 0.033 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+@@ -1604,12 +1628,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
++make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.64 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+@@ -1663,12 +1689,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.8 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+@@ -1731,12 +1759,14 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
++make[5]: Warning: File `.deps/million.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+@@ -1789,12 +1819,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ Making check in perf
+@@ -1831,12 +1863,14 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.61 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ Making check in gdbserver_tests
+@@ -1867,12 +1901,14 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.9 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+       dsymutil $f; \
+   fi; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ Making check in auxprogs
+@@ -1944,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 26346 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  1611 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1961,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 26904 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  2170 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2052,7 +2088,8 @@ pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace
+ post-syscall:    valgrind   -q ./post-syscall 
+ -- Running  tests in memcheck/tests/ppc32 ------------------------------
+ power_ISA2_05:   valgrind   ./power_ISA2_05 
+-test_spe:        valgrind   --leak-check=full ./test_spe 
++./spe-check.c:5:2: error: #error "Not on a POWER/SPE system!"
++test_spe:        (skipping, prereq failed: ./test_spe.prereq.sh)
+ -- Finished tests in memcheck/tests/ppc32 ------------------------------
+ -- Running  tests in memcheck/tests/ppc64 ------------------------------
+ power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+@@ -2074,7 +2111,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 31596 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  6840 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2210,7 +2247,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  3749 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 11334 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2376,7 +2413,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 21244 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 28857 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2495,7 +2532,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 26605 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  1869 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2518,7 +2555,7 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 530 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 529 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0061-Test-that-Valgrind-will-determine-an-out-of-bounds-a.patch b/recipes-devtools/valgrind/files/0061-Test-that-Valgrind-will-determine-an-out-of-bounds-a.patch
new file mode 100644
index 0000000..e375da4
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0061-Test-that-Valgrind-will-determine-an-out-of-bounds-a.patch
@@ -0,0 +1,591 @@
+From 4a8396cd94445ad9bba60e5993577df3116539a3 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Thu, 23 May 2013 17:14:14 -0700
+Subject: [PATCH 61/65] Test that Valgrind will determine an out of bounds access made by an evlddx or an evstddx, and any leaks in their presence.
+
+---
+ memcheck/tests/ppc32/test_spe.c          |   29 ++++++++++++++++
+ memcheck/tests/ppc32/test_spe.stderr.exp |   55 ++++++++++++++++++++++++++----
+ memcheck/tests/ppc32/test_spe.stdout.exp |    1 +
+ regtest-power7-64.default-build.log      |   46 ++++++++++++------------
+ regtest-power7-64.log                    |   48 +++++++++++++-------------
+ 5 files changed, 125 insertions(+), 54 deletions(-)
+
+diff --git a/memcheck/tests/ppc32/test_spe.c b/memcheck/tests/ppc32/test_spe.c
+index 2a73ec3..1e767aa 100644
+--- a/memcheck/tests/ppc32/test_spe.c
++++ b/memcheck/tests/ppc32/test_spe.c
+@@ -19625,6 +19625,34 @@ __ev64_u32__ evmwhusianw_baseline[] = {
+ evmrDrArB(evmwhusianw, __ev64_u32__, __ev64_u32__, __ev64_u32__, rA2u32_sd, rB2u32_sd, 1, 1)
+ #endif
+ 
++int out_of_bounds(void)
++{
++  int failures = 0;
++#ifdef __SPE__
++  // Do not free this block of 64 * sizeof (__ev64_u64__) bytes. Is the leak detected?
++  __ev64_u64__ *out_of_bounds_src = (__ev64_u64__ *) malloc(64 * sizeof (__ev64_u64__));
++
++  register void *base       asm ("30");
++  register __ev64_u64__ vec asm ("29");
++  register int idx          asm ("28");
++  register int i            asm ("27");
++
++  base = out_of_bounds_src;
++
++  for (i = 0; i < 64; i++)
++    out_of_bounds_src[i] = (__ev64_u64__) { 0x0 };
++
++  // Will Valgrind determine an out of bounds access if made by an evlddx or an evstddx?
++  for (i = 0; i < (64 + 1 /* >>>INTENTIONAL FENCE-POST ERROR HERE!<<< */); i++) {
++    idx = i * sizeof (__ev64_u64__);
++    asm volatile ("evlddx  %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (base), [i] "r" (idx));
++    asm volatile ("evstddx %[v], %[b], %[i]" : [v] "=r" (vec) : [b] "r" (base), [i] "r" (idx));
++  }
++#endif // __SPE__
++  return failures;
++}
++TEST_SPE_DECL(out_of_bounds, "out_of_bounds");
++
+ /* NOTE: To avoid having to remaster the .exp files entirely, add
+  *       new test functions /just above/ this comment.
+  *       That way, you only need to worry about the test that you
+@@ -20222,6 +20250,7 @@ test_t spe_isa_misc_test_table = {
+   .table = {
+     F(evldd_evstdd_mem_xfer),
+     &pool_demo_table,
++    F(out_of_bounds),
+     NULL
+   }
+ };
+diff --git a/memcheck/tests/ppc32/test_spe.stderr.exp b/memcheck/tests/ppc32/test_spe.stderr.exp
+index 394d303..45517e1 100644
+--- a/memcheck/tests/ppc32/test_spe.stderr.exp
++++ b/memcheck/tests/ppc32/test_spe.stderr.exp
+@@ -5,7 +5,7 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20263)
++   by 0x........: main (test_spe.c:20292)
+  Address 0x........ is 0 bytes after a block of size 40 alloc'd
+    at 0x........: malloc (vg_replace_malloc.c:...)
+    by 0x........: vg_quick_start_guide_aux (test_spe.c:26)
+@@ -13,12 +13,44 @@ Invalid write of size 4
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20263)
++   by 0x........: main (test_spe.c:20292)
++
++Invalid read of size 8
++   at 0x........: out_of_bounds (test_spe.c:19648)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:20292)
++ Address 0x........ is 0 bytes after a block of size 512 alloc'd
++   at 0x........: malloc (vg_replace_malloc.c:...)
++   by 0x........: out_of_bounds (test_spe.c:19633)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:20292)
++
++Invalid write of size 8
++   at 0x........: out_of_bounds (test_spe.c:19649)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:20292)
++ Address 0x........ is 0 bytes after a block of size 512 alloc'd
++   at 0x........: malloc (vg_replace_malloc.c:...)
++   by 0x........: out_of_bounds (test_spe.c:19633)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:20292)
+ 
+ 
+ HEAP SUMMARY:
+-    in use at exit: 40 bytes in 1 blocks
+-  total heap usage: 2 allocs, 1 frees, 296 bytes allocated
++    in use at exit: 552 bytes in 2 blocks
++  total heap usage: 3 allocs, 1 frees, 808 bytes allocated
+ 
+ 40 bytes in 1 blocks are definitely lost in loss record ... of ...
+    at 0x........: malloc (vg_replace_malloc.c:...)
+@@ -27,14 +59,23 @@ HEAP SUMMARY:
+    by 0x........: run (test_spe.h:44)
+    by 0x........: run (test_spe.h:50)
+    by 0x........: run (test_spe.h:50)
+-   by 0x........: main (test_spe.c:20263)
++   by 0x........: main (test_spe.c:20292)
++
++512 bytes in 1 blocks are definitely lost in loss record ... of ...
++   at 0x........: malloc (vg_replace_malloc.c:...)
++   by 0x........: out_of_bounds (test_spe.c:19633)
++   by 0x........: run (test_spe.h:44)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: run (test_spe.h:50)
++   by 0x........: main (test_spe.c:20292)
+ 
+ LEAK SUMMARY:
+-   definitely lost: 40 bytes in 1 blocks
++   definitely lost: 552 bytes in 2 blocks
+    indirectly lost: 0 bytes in 0 blocks
+      possibly lost: 0 bytes in 0 blocks
+    still reachable: 0 bytes in 0 blocks
+         suppressed: 0 bytes in 0 blocks
+ 
+ For counts of detected and suppressed errors, rerun with: -v
+-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
++ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
+diff --git a/memcheck/tests/ppc32/test_spe.stdout.exp b/memcheck/tests/ppc32/test_spe.stdout.exp
+index 1513a8d..3a4ac4d 100644
+--- a/memcheck/tests/ppc32/test_spe.stdout.exp
++++ b/memcheck/tests/ppc32/test_spe.stdout.exp
+@@ -372,3 +372,4 @@ SPE Regression Tests: PASS
+ ....Using __ev64_s32__ pool: PASS
+ ....Using __ev64_u64__ pool: PASS
+ ....Using __ev64_s64__ pool: PASS
++...out_of_bounds: PASS
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index decf056..bd2863c 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/writev1.Po' has modification time 0.22 s in the future
++make[5]: Warning: File `.deps/writev1.Po' has modification time 0.12 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.85 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.86 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.94 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.96 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.88 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.89 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.92 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.95 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 0.93 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 0.95 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 0.82 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 0.81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.47 s in the future
++make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.45 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.81 s in the future
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.83 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.85 s in the future
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.79 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.93 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.94 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.61 s in the future
++make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.4 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.92 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.94 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 0.92 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 0.94 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.83 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.81 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.61 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.64 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.91 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 29929 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 22785 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 30491 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 23346 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2110,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  2831 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 28005 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2247,7 +2247,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  7315 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 32492 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2413,7 +2413,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 24867 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 17704 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2530,7 +2530,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 30216 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 23049 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index 70d754b..f3879a6 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/writev1.Po' has modification time 0.11 s in the future
++make[5]: Warning: File `.deps/writev1.Po' has modification time 0.19 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.85 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.87 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.94 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.96 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.88 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.87 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.95 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 0.83 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 0.95 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 0.43 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 0.82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.39 s in the future
++make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.45 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.79 s in the future
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.82 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.83 s in the future
++make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.86 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.92 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.95 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/annotate_rwlock.Po' has modification time 0.033 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 0.2 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.64 s in the future
++make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.66 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.8 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.9 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 0.83 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 0.93 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.83 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.85 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.61 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.62 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.9 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.92 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1:  1611 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1: 26789 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  2170 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1: 27347 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2111,7 +2111,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  6840 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 32024 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2247,7 +2247,7 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 11334 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1:  4199 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
+@@ -2413,7 +2413,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 28857 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 21738 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2532,7 +2532,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  1869 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 27083 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0062-Mark-version-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch b/recipes-devtools/valgrind/files/0062-Mark-version-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch
new file mode 100644
index 0000000..4028524
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0062-Mark-version-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch
@@ -0,0 +1,699 @@
+From 031e33d9d97dc5400cb46cfd89120ecc09229e04 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 24 May 2013 12:17:45 -0700
+Subject: [PATCH 62/65] Mark version as: 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
+
+---
+ FSL-SPE-README.txt |  618 ++++++++++++++++++++++++++--------------------------
+ configure.in       |    2 +-
+ 2 files changed, 310 insertions(+), 310 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 851f814..bde8f32 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -15,95 +15,81 @@
+ 
+  Let $TOP be the "top-level" directory that contains:
+ 
+-  valgrind-3.8.1-<id>.tar.gz
++  valgrind-<ver>.tar.gz
+ 
+- $TOP# gunzip -dr valgrind-3.8.1-<id>.tar.gz
+- $TOP# tar -xvf valgrind-3.8.1-<id>.tar
+- $TOP# cd valgrind-3.8.1-<id>
++  where <ver> := 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
++
++ $TOP# gunzip -dr valgrind-<ver>.tar.gz
++ $TOP# tar -xvf valgrind-<ver>.tar
++ $TOP# cd valgrind-<ver>
+ 
+  Building:
+  ---------
+ 
+- $TOP/valgrind-3.8.1-<id># make distclean # (To start all over)
+- $TOP/valgrind-3.8.1-<id># ./autogen.sh
+- $TOP/valgrind-3.8.1-<id># ./configure --prefix=$PWD
+- $TOP/valgrind-3.8.1-<id># make
+- $TOP/valgrind-3.8.1-<id># make install
++ $TOP/valgrind-<ver># make distclean # (To start all over)
++ $TOP/valgrind-<ver># ./autogen.sh
++ $TOP/valgrind-<ver># ./configure --prefix=$PWD --program-suffix=-spe
++ $TOP/valgrind-<ver># make
++ $TOP/valgrind-<ver># make install
+ 
+  The resultant Valgrind binary is found as:
+ 
+-  $TOP/valgrind-3.8.1-<id>/bin/valgrind
++  $TOP/valgrind-<ver>/bin/valgrind-spe
+ 
+  To check the Valgrind version:
+ 
+- $TOP/valgrind-3.8.1-<id># ./bin/valgrind --version
++ $TOP/valgrind-<ver># ./bin/valgrind-spe --version
+ 
+  The Valgrind User Manual is found as:
+ 
+- $TOP/valgrind-3.8.1-<id>/share/doc/valgrind/valgrind_manual.pdf
++ $TOP/valgrind-<ver>/share/doc/valgrind/valgrind_manual.pdf
++
++ (also in $TOP)
+ 
+  Current Status:
+  ---------------
+ 
+  The following SPE instructions have been implemented as a part of the SPE port
+- and are verified to now execute under Valgrind:
+-
+- evldd, evstdd, evxor, evlddx, evstddx, evldh, evstdh, evor, _evmr, evldhx,
+- evstdhx, evldw, evstdw, evldwx, evstdwx, evlwhe, evstwhe, evlwhex, evstwhex,
+- evlwhos, evlwhosx, evlwhou, evlwhoux, evstwho, evstwhox, evstwwe, evstwwex,
+- evstwwo, evstwwox, evlhhesplat, evlhhesplatx, evlhhossplat, evlhhossplatx,
+- evlhhousplat, evlhhousplatx evlwhsplat, evlwhsplatx, evlwwsplat, evlwwsplatx
+- evmergehi, evmergehilo, evmergelo, evmergelohi, evand, evandc, eveqv, evnand,
+- evnor, _evnot, evorc, evrlw, evrlwi, evslw, evslwi, evsrwu, evsrwiu, evsrws,
+- evsrwis, evextsb, evextsh, evcntlsw, evcntlzw, evsplatfi, evsplati, evneg,
+- evabs, evrndw, evcmpeq, evcmpgts, evcmpgtu, evcmplts, evcmpltu, evsel,
+- evmra, evaddsmiaaw, evaddumiaaw, evsubfsmiaaw, evsubfumiaaw, evaddiw, evaddw,
+- evsubifw, evsubfw, evmhesmi, evmhesmia, evmhesmiaaw, evmhesmianw, evmheumi,
+- evmheumia, evmheumiaaw, evmheumianw, evmhosmi, evmhosmia, evmhosmiaaw,
+- evmhosmianw, evmhoumi, evmhoumia, evmhoumiaaw, evmhoumianw, evmwlumi,
+- evmwlumia, evmwlumiaaw, evmwlumianw, evmwsmi, evmwsmia, evmwsmiaa, evmwsmian,
+- evmwumi, evmwumia, evmwumiaa, evmwumian, evmwhsmi, evmwhsmia, evmwhumi, evmwhumia,
+- evmwlsmiaaw, evmwlsmianw, evmwsmfan, evmwsmfaa, evmwsmf, evmwsmfa, evmwhsmf,
+- evmwhsmfa, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhesmf, evmhesmfa,
+- evmhesmfaaw, evmhesmfanw
+-
+- New instructions implemented in version 3.8.1-FSL-Mon-Apr--8-110008-PDT-2013:
+-
+- evmhegsmfaa, evmhegsmfan, evmhogsmfaa, evmhogsmfan, evmhegsmiaa, evmhegsmian,
+- evmhegumiaa, evmhegumian, evmhogsmiaa, evmhogsmian, evmhogumiaa, evmhogumian,
+-
+- New instructions implemented since last release:
+-
+- mfspefscr, mtspefscr, efdcmpeq, efdabs, efdadd, efdsub, efdcfs, efdcfsf, efdcfsi,
+- efdcfuf, efdcfui, efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsiz, efdctuf,
+- efdctui, efdctuiz, efddiv, efdmul, efdnabs, efdneg, efdtsteq, efdtstgt, efdtstlt,
+-
+- efsabs, efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt,
+- efscmplt, efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul,
+- efsnabs, efsneg, efssub, efststeq, efststgt, efststlt,
+-
+- evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui, evfscmpeq, evfscmpgt,
+- evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf, evfsctui, evfsctuiz, evfsdiv,
+- evfsmul, evfsnabs, evfsneg, evfssub, evfststeq, evfststgt, evfststlt,
+-
+- evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw, evmhessianw, evmheusiaaw,
+- evmheusianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw, evmhossiaaw, evmhossianw,
+- evmhousiaaw, evmhousianw, evmwhssf, evmwhssfa, evmwlssiaaw, evmwlssianw, evmwlusiaaw,
+- evmwlusianw, evmwssf, evmwssfa, evmwssfaa, evmwssfan, evsubfssiaaw, evsubfusiaaw,
+-
+- evaddssiaaw, evaddusiaaw, evdivws, evdivwu,
+-
+- brinc
++ and have been verified to now execute under Valgrind:
++
++  brinc, efdabs, efdadd, efdcfs, efdcfsf, efdcfsi, efdcfuf, efdcfui, efdcmpeq,
++  efdcmpgt, efdcmplt, efdctsf, efdctsi, efdctsiz, efdctuf, efdctui, efdctuiz,
++  efddiv, efdmul, efdnabs, efdneg, efdsub, efdtsteq, efdtstgt, efdtstlt, efsabs,
++  efsadd, efscfd, efscfsf, efscfsi, efscfuf, efscfui, efscmpeq, efscmpgt, efscmplt,
++  efsctsf, efsctsi, efsctsiz, efsctuf, efsctui, efsctuiz, efsdiv, efsmul, efsnabs,
++  efsneg, efssub, efststeq, efststgt, efststlt, evabs, evaddiw, evaddsmiaaw,
++  evaddssiaaw, evaddumiaaw, evaddusiaaw, evaddw, evand, evandc, evcmpeq, evcmpgts,
++  evcmpgtu, evcmplts, evcmpltu, evcntlsw, evcntlzw, evdivws, evdivwu, eveqv,
++  evextsb, evextsh, evfsabs, evfsadd, evfscfsf, evfscfsi, evfscfuf, evfscfui,
++  evfscmpeq, evfscmpgt, evfscmplt, evfsctsf, evfsctsi, evfsctsiz, evfsctuf,
++  evfsctui, evfsctuiz, evfsdiv, evfsmul, evfsnabs, evfsneg, evfssub, evfststeq,
++  evfststgt, evfststlt, evldd, evlddx, evldh, evldhx, evldw, evldwx, evlhhesplat,
++  evlhhesplatx, evlhhossplat, evlhhossplatx, evlhhousplat, evlhhousplatx, evlwhe,
++  evlwhex, evlwhos, evlwhosx, evlwhou, evlwhoux, evlwhsplat, evlwhsplatx,
++  evlwwsplat, evlwwsplatx, evmergehi, evmergehilo, evmergelo, evmergelohi,
++  evmhegsmfaa, evmhegsmfan, evmhegsmiaa, evmhegsmian, evmhegumiaa, evmhegumian,
++  evmhesmf, evmhesmfa, evmhesmfaaw, evmhesmfanw, evmhesmi, evmhesmia, evmhesmiaaw,
++  evmhesmianw, evmhessf, evmhessfa, evmhessfaaw, evmhessfanw, evmhessiaaw,
++  evmhessianw, evmheumi, evmheumia, evmheumiaaw, evmheumianw, evmheusiaaw,
++  evmheusianw, evmhogsmfaa, evmhogsmfan, evmhogsmiaa, evmhogsmian, evmhogumiaa,
++  evmhogumian, evmhosmf, evmhosmfa, evmhosmfaaw, evmhosmfanw, evmhosmi, evmhosmia,
++  evmhosmiaaw, evmhosmianw, evmhossf, evmhossfa, evmhossfaaw, evmhossfanw,
++  evmhossiaaw, evmhossianw, evmhoumi, evmhoumia, evmhoumiaaw, evmhoumianw,
++  evmhousiaaw, evmhousianw, _evmr, evmra, evmwhsmf, evmwhsmfa, evmwhsmi,
++  evmwhsmia, evmwhssf, evmwhssfa, evmwhumi, evmwhumia, evmwlsmiaaw, evmwlsmianw,
++  evmwlssiaaw, evmwlssianw, evmwlumi, evmwlumia, evmwlumiaaw, evmwlumianw,
++  evmwlusiaaw, evmwlusianw, evmwsmf, evmwsmfa, evmwsmfaa, evmwsmfan, evmwsmi,
++  evmwsmia, evmwsmiaa, evmwsmian, evmwssf, evmwssfa, evmwssfaa, evmwssfan,
++  evmwumi, evmwumia, evmwumiaa, evmwumian, evnand, evneg, evnor, _evnot, evor,
++  evorc, evrlw, evrlwi, evrndw, evsel, evslw, evslwi, evsplatfi, evsplati,
++  evsrwis, evsrwiu, evsrws, evsrwu, evstdd, evstddx, evstdh, evstdhx, evstdw,
++  evstdwx, evstwhe, evstwhex, evstwho, evstwhox, evstwwe, evstwwex, evstwwo,
++  evstwwox, evsubfsmiaaw, evsubfssiaaw, evsubfumiaaw, evsubfusiaaw, evsubfw,
++  evsubifw, evxor, mfspefscr, mtspefscr
+ 
+  Notes:
+ 
+- 0. The following instructions are not SPE instructions:
+-
+-    eciwx, ecowx, ehpriv, eqv, eqv., extsb, extsb., extsh, extsh
+-
+-    TODO: Verify that Valgrind implements these.
+-
+- 1. The instructions:
++ 0. The instructions:
+ 
+     evmwhusiaaw, evmwhusianw
+ 
+@@ -111,183 +97,215 @@
+     not described in Chapter 5 of the SPEPEM, and the GNU assembler 2.21.1 does
+     not recognize their opcode's either.
+ 
+- 2. Per the SPEPEM, the instructions:
++ 1. Per the SPEPEM, the instructions:
+ 
+     efdcfsid, efdcfuid, efdctsidz, efdctuidz
+ 
+     may only be implemented for 64-bit implementations, and are hence out of
+     scope for this porting effort.
+ 
++ 2. Modulo notes 0 and 1 above, any instruction listed in Appendix B of the
++    SPEPEM Rev. 0, 01/2008 is now implemented and verified to execute under
++    Valgrind.
++
+  3. Synthetic instructions appear prefixed with a leading underscore in the list
+     above. All synthetic instructions are tested as working under Valgrind even
+     though, strictly speaking, such an instruction is not explicitly implemented
+     but works as a result of some other instruction being implemented.
+ 
+- Simple UNIX Utilities running under Valgrind on a p1022ds Linux system
+- ----------------------------------------------------------------------
+-
+- Example 0: wc
+-
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full wc memcheck/tests/ppc32/test_spe.c
+-==31682== Memcheck, a memory error detector
+-==31682== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
+-==31682== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
+-==31682== Command: wc memcheck/tests/ppc32/test_spe.c
+-==31682==
+- 13217  51751 438010 memcheck/tests/ppc32/test_spe.c
+-==31682==
+-==31682== HEAP SUMMARY:
+-==31682==     in use at exit: 0 bytes in 0 blocks
+-==31682==   total heap usage: 4 allocs, 4 frees, 168 bytes allocated
+-==31682==
+-==31682== All heap blocks were freed -- no leaks are possible
+-==31682==
+-==31682== For counts of detected and suppressed errors, rerun with: -v
+-==31682== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# wc memcheck/tests/ppc32/test_spe.c
+- 13217  51751 438010 memcheck/tests/ppc32/test_spe.c
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
+-
+- Example 1: grep
+-
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full grep evmhesmfa memcheck/tests/ppc32/test_spe.c
+-==31694== Memcheck, a memory error detector
+-==31694== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
+-==31694== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
+-==31694== Command: grep evmhesmfa memcheck/tests/ppc32/test_spe.c
+-==31694==
+-__ev64_s32__ evmhesmfanw_baseline[] = {
+-int evmhesmfanw_asm(void)
+-    asm volatile ("evmhesmfanw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+-    VERIFY(regD[0] == evmhesmfanw_baseline[i][0]);
+-    VERIFY(regD[1] == evmhesmfanw_baseline[i][1]);
+-TEST_SPE_DECL(evmhesmfanw_asm, "evmhesmfanw");
+-__ev64_s32__ evmhesmfaaw_baseline[] = {
+-int evmhesmfaaw_asm(void)
+-    asm volatile ("evmhesmfaaw %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+-    VERIFY(regD[0] == evmhesmfaaw_baseline[i][0]);
+-    VERIFY(regD[1] == evmhesmfaaw_baseline[i][1]);
+-TEST_SPE_DECL(evmhesmfaaw_asm, "evmhesmfaaw");
+-__ev64_s32__ *evmhesmfa_baseline = evmhesmf_baseline;
+-int evmhesmfa_asm(void)
+-    asm volatile ("evmhesmfa %[d], %[a], %[b]" : [d] "=r" (regD) : [a] "r" (regA), [b] "r" (regB));
+-    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
+-    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
+-    // Verify that evmhesmfa wrote into the ACC:
+-    VERIFY(regD[0] == evmhesmfa_baseline[i][0]);
+-    VERIFY(regD[1] == evmhesmfa_baseline[i][1]);
+-TEST_SPE_DECL(evmhesmfa_asm, "evmhesmfa");
+-    F(evmhesmfanw_asm),
+-    F(evmhesmfaaw_asm),
+-    F(evmhesmfa_asm),
+-==31694==
+-==31694== HEAP SUMMARY:
+-==31694==     in use at exit: 43,687 bytes in 42 blocks
+-==31694==   total heap usage: 243 allocs, 201 frees, 46,650 bytes allocated
+-==31694==
+-==31694== LEAK SUMMARY:
+-==31694==    definitely lost: 0 bytes in 0 blocks
+-==31694==    indirectly lost: 0 bytes in 0 blocks
+-==31694==      possibly lost: 0 bytes in 0 blocks
+-==31694==    still reachable: 43,687 bytes in 42 blocks
+-==31694==         suppressed: 0 bytes in 0 blocks
+-==31694== Reachable blocks (those to which a pointer was found) are not shown.
+-==31694== To see them, rerun with: --leak-check=full --show-reachable=yes
+-==31694==
+-==31694== For counts of detected and suppressed errors, rerun with: -v
+-==31694== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
+-
+- Example 2: ls
+-
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full ls memcheck/tests/ppc32/test_spe.c
+-==31699== Memcheck, a memory error detector
+-==31699== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
+-==31699== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
+-==31699== Command: ls memcheck/tests/ppc32/test_spe.c
+-==31699==
+-memcheck/tests/ppc32/test_spe.c
+-==31699==
+-==31699== HEAP SUMMARY:
+-==31699==     in use at exit: 13,776 bytes in 7 blocks
+-==31699==   total heap usage: 9 allocs, 2 frees, 13,808 bytes allocated
+-==31699==
+-==31699== LEAK SUMMARY:
+-==31699==    definitely lost: 0 bytes in 0 blocks
+-==31699==    indirectly lost: 0 bytes in 0 blocks
+-==31699==      possibly lost: 0 bytes in 0 blocks
+-==31699==    still reachable: 13,776 bytes in 7 blocks
+-==31699==         suppressed: 0 bytes in 0 blocks
+-==31699== Reachable blocks (those to which a pointer was found) are not shown.
+-==31699== To see them, rerun with: --leak-check=full --show-reachable=yes
+-==31699==
+-==31699== For counts of detected and suppressed errors, rerun with: -v
+-==31699== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
+-
+- Example 3: ls -l
+-
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full ls -l memcheck/tests/ppc32/test_spe.c
+-==31700== Memcheck, a memory error detector
+-==31700== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
+-==31700== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
+-==31700== Command: ls -l memcheck/tests/ppc32/test_spe.c
+-==31700==
+--rw-r--r-- 1 65002905 rn453 438010 Mar 27 10:56 memcheck/tests/ppc32/test_spe.c
+-==31700==
+-==31700== HEAP SUMMARY:
+-==31700==     in use at exit: 14,083 bytes in 29 blocks
+-==31700==   total heap usage: 98 allocs, 69 frees, 22,687 bytes allocated
+-==31700==
+-==31700== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 29
+-==31700==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
+-==31700==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
+-==31700==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
+-==31700==    by 0xFC3AA47: ???
+-==31700==    by 0xFC3C33B: ???
+-==31700==    by 0x40B5AC3: getpwuid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
+-==31700==    by 0x40B52E3: getpwuid (getXXbyYY.c:117)
+-==31700==    by 0x1000D60F: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x10005E4B: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x10007B5F: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
+-==31700==
+-==31700== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 28 of 29
+-==31700==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
+-==31700==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
+-==31700==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
+-==31700==    by 0xFC39563: ???
+-==31700==    by 0xFC3A3B3: ???
+-==31700==    by 0x40B3FCF: getgrgid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
+-==31700==    by 0x40B35F7: getgrgid (getXXbyYY.c:117)
+-==31700==    by 0x1000D89F: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x10007BE7: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
+-==31700==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
+-==31700==    by 0x402606B: (below main) (libc-start.c:105)
+-==31700==
+-==31700== LEAK SUMMARY:
+-==31700==    definitely lost: 80 bytes in 2 blocks
+-==31700==    indirectly lost: 240 bytes in 20 blocks
+-==31700==      possibly lost: 0 bytes in 0 blocks
+-==31700==    still reachable: 13,763 bytes in 7 blocks
+-==31700==         suppressed: 0 bytes in 0 blocks
+-==31700== Reachable blocks (those to which a pointer was found) are not shown.
+-==31700== To see them, rerun with: --leak-check=full --show-reachable=yes
+-==31700==
+-==31700== For counts of detected and suppressed errors, rerun with: -v
+-==31700== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 1 from 1)
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
+-
+- Example 4: cat, awk (output too long)
+-
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full cat memcheck/tests/ppc32/test_spe.c
+-root at p1022ds:~/beta/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full cat memcheck/tests/ppc32/test_spe.c | awk 'length ($0) > 80 { print; }'
+-
+- Example 5: Loading a simple hello-world program under gdb - under valgrind:
+-
+-root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# cat /home/root/hello.c
++ 4. The following instructions are not SPE instructions:
++
++    eciwx, ecowx, ehpriv, eqv, eqv., extsb, extsb., extsh, extsh
++
++    TODO: Verify that Valgrind implements these.
++
++ Known Issues & Limitations:
++ ---------------------------
++
++ 0. The Valgrind SPE port does not detect/warn upon an unaligned SPE load/store
++    e.g. For the evldd/evstdd the SPEPEM Rev. 0, 01/2008 states:
++    "If the EA is not double-word aligned, an alignment exception occurs".
++    (The Valgrind port assumes that the EA is per the SPEPEM).
++
++ 1. ptrace(2) is not supported on the Power architecture in general (as of
++    valgrind-3.8.1), and on the Valgrind SPE port in particular.
++
++ 2. The Valgrind SPE port has not yet added support for the e500v2 SPE to
++    Valgrind's internal gdbserver.
++
++ Standard UNIX Utilities running stand-alone and under Valgrind on a p1022ds Linux system:
++ -----------------------------------------------------------------------------------------
++
++ Example 0: /usr/bin/wc
++
++root at p1022ds:~/valgrind-3.8.1# /usr/bin/wc memcheck/tests/ppc32/test_spe.c
++ 20328  82202 718698 memcheck/tests/ppc32/test_spe.c
++root at p1022ds:~/valgrind-3.8.1# ./bin/valgrind-spe --leak-check=full /usr/bin/wc memcheck/tests/ppc32/test_spe.c
++==19114== Memcheck, a memory error detector
++==19114== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==19114== Using Valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 and LibVEX; rerun with -h for copyright info
++==19114== Command: /usr/bin/wc memcheck/tests/ppc32/test_spe.c
++==19114==
++ 20328  82202 718698 memcheck/tests/ppc32/test_spe.c
++==19114==
++==19114== HEAP SUMMARY:
++==19114==     in use at exit: 0 bytes in 0 blocks
++==19114==   total heap usage: 4 allocs, 4 frees, 168 bytes allocated
++==19114==
++==19114== All heap blocks were freed -- no leaks are possible
++==19114==
++==19114== For counts of detected and suppressed errors, rerun with: -v
++==19114== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/valgrind-3.8.1#
++
++ Example 1: /bin/grep
++
++root at p1022ds:~/valgrind-3.8.1# /bin/grep brinc memcheck/tests/ppc32/test_spe.c
++SPE_DEFN_rDrArB(brinc, __ev64_u64__, __ev64_u64__, __ev64_u64__, 0, "0x%llx\n",
++    F(brinc_asm),
++root at p1022ds:~/valgrind-3.8.1# ./bin/valgrind-spe --leak-check=full /bin/grep brinc memcheck/tests/ppc32/test_spe.c
++==19119== Memcheck, a memory error detector
++==19119== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==19119== Using Valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 and LibVEX; rerun with -h for copyright info
++==19119== Command: /bin/grep brinc memcheck/tests/ppc32/test_spe.c
++==19119==
++SPE_DEFN_rDrArB(brinc, __ev64_u64__, __ev64_u64__, __ev64_u64__, 0, "0x%llx\n",
++    F(brinc_asm),
++==19119==
++==19119== HEAP SUMMARY:
++==19119==     in use at exit: 43,271 bytes in 34 blocks
++==19119==   total heap usage: 155 allocs, 121 frees, 45,290 bytes allocated
++==19119==
++==19119== LEAK SUMMARY:
++==19119==    definitely lost: 0 bytes in 0 blocks
++==19119==    indirectly lost: 0 bytes in 0 blocks
++==19119==      possibly lost: 0 bytes in 0 blocks
++==19119==    still reachable: 43,271 bytes in 34 blocks
++==19119==         suppressed: 0 bytes in 0 blocks
++==19119== Reachable blocks (those to which a pointer was found) are not shown.
++==19119== To see them, rerun with: --leak-check=full --show-reachable=yes
++==19119==
++==19119== For counts of detected and suppressed errors, rerun with: -v
++==19119== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/valgrind-3.8.1#
++
++ Example 2: /bin/ls
++
++root at p1022ds:~/valgrind-3.8.1# /bin/ls -l memcheck/tests/ppc32/test_spe.*
++-rw------- 1 root root  718698 May 24 06:20 memcheck/tests/ppc32/test_spe.c
++-rw------- 1 root root  301962 May 24 06:20 memcheck/tests/ppc32/test_spe.h
++-rw-r--r-- 1 root root 1284008 May 25 02:35 memcheck/tests/ppc32/test_spe.o
++-rw------- 1 root root    8490 May 25 02:35 memcheck/tests/ppc32/test_spe.out
++-rwxr-xr-x 1 root root     349 May 23 01:52 memcheck/tests/ppc32/test_spe.prereq.sh
++-rw-r--r-- 1 root root    3154 May 23 23:47 memcheck/tests/ppc32/test_spe.stderr.exp
++-rw------- 1 root root    1239 Mar 19 06:51 memcheck/tests/ppc32/test_spe.stderr.ref
++-rw-r--r-- 1 root root    8490 May 23 23:47 memcheck/tests/ppc32/test_spe.stdout.exp
++-rw------- 1 root root    2017 Feb 10 04:09 memcheck/tests/ppc32/test_spe.txt
++-rw------- 1 root root      70 May 23 01:52 memcheck/tests/ppc32/test_spe.vgtest
++root at p1022ds:~/valgrind-3.8.1# ./bin/valgrind-spe --leak-check=full /bin/ls -l memcheck/tests/ppc32/test_spe.*
++==19130== Memcheck, a memory error detector
++==19130== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==19130== Using Valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 and LibVEX; rerun with -h for copyright info
++==19130== Command: /bin/ls -l memcheck/tests/ppc32/test_spe.c memcheck/tests/ppc32/test_spe.h memcheck/tests/ppc32/test_spe.o memcheck/tests/ppc32/test_spe.out memcheck/tests/ppc32/test_spe.prereq.sh memcheck/t
++==19130==
++-rw------- 1 root root  718698 May 24 06:20 memcheck/tests/ppc32/test_spe.c
++-rw------- 1 root root  301962 May 24 06:20 memcheck/tests/ppc32/test_spe.h
++-rw-r--r-- 1 root root 1284008 May 25 02:35 memcheck/tests/ppc32/test_spe.o
++-rw------- 1 root root    8490 May 25 02:35 memcheck/tests/ppc32/test_spe.out
++-rwxr-xr-x 1 root root     349 May 23 01:52 memcheck/tests/ppc32/test_spe.prereq.sh
++-rw-r--r-- 1 root root    3154 May 23 23:47 memcheck/tests/ppc32/test_spe.stderr.exp
++-rw------- 1 root root    1239 Mar 19 06:51 memcheck/tests/ppc32/test_spe.stderr.ref
++-rw-r--r-- 1 root root    8490 May 23 23:47 memcheck/tests/ppc32/test_spe.stdout.exp
++-rw------- 1 root root    2017 Feb 10 04:09 memcheck/tests/ppc32/test_spe.txt
++-rw------- 1 root root      70 May 23 01:52 memcheck/tests/ppc32/test_spe.vgtest
++==19130==
++==19130== HEAP SUMMARY:
++==19130==     in use at exit: 14,526 bytes in 38 blocks
++==19130==   total heap usage: 116 allocs, 78 frees, 23,265 bytes allocated
++==19130==
++==19130== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 26 of 29
++==19130==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==19130==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
++==19130==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
++==19130==    by 0xFC3AA47: ???
++==19130==    by 0xFC3C33B: ???
++==19130==    by 0x40B5AC3: getpwuid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
++==19130==    by 0x40B52E3: getpwuid (getXXbyYY.c:117)
++==19130==    by 0x1000D60F: ??? (in /bin/ls.coreutils)
++==19130==    by 0x10005E4B: ??? (in /bin/ls.coreutils)
++==19130==    by 0x10007B5F: ??? (in /bin/ls.coreutils)
++==19130==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
++==19130==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==19130==
++==19130== 160 (40 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 29
++==19130==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==19130==    by 0x40FF75F: nss_parse_service_list (nsswitch.c:615)
++==19130==    by 0x40FFD67: __nss_database_lookup (nsswitch.c:167)
++==19130==    by 0xFC39563: ???
++==19130==    by 0xFC3A3B3: ???
++==19130==    by 0x40B3FCF: getgrgid_r@@GLIBC_2.1.2 (getXXbyYY_r.c:256)
++==19130==    by 0x40B35F7: getgrgid (getXXbyYY.c:117)
++==19130==    by 0x1000D89F: ??? (in /bin/ls.coreutils)
++==19130==    by 0x10007BE7: ??? (in /bin/ls.coreutils)
++==19130==    by 0x10002C8F: ??? (in /bin/ls.coreutils)
++==19130==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==19130==    by 0x402606B: (below main) (libc-start.c:105)
++==19130==
++==19130== LEAK SUMMARY:
++==19130==    definitely lost: 80 bytes in 2 blocks
++==19130==    indirectly lost: 240 bytes in 20 blocks
++==19130==      possibly lost: 0 bytes in 0 blocks
++==19130==    still reachable: 14,206 bytes in 16 blocks
++==19130==         suppressed: 0 bytes in 0 blocks
++==19130== Reachable blocks (those to which a pointer was found) are not shown.
++==19130== To see them, rerun with: --leak-check=full --show-reachable=yes
++==19130==
++==19130== For counts of detected and suppressed errors, rerun with: -v
++==19130== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 1 from 1)
++
++ Example 3: /usr/bin/head
++
++root at p1022ds:~/valgrind-3.8.1# /usr/bin/head memcheck/tests/ppc32/test_spe.c
++#include "test_spe.h"
++
++int minimal(void)
++{
++  return 0;
++}
++TEST_SPE_DECL(minimal, "The most minimal C program");
++
++int hello_world (void)
++{
++root at p1022ds:~/valgrind-3.8.1# ./bin/valgrind-spe --leak-check=full /usr/bin/head memcheck/tests/ppc32/test_spe.c
++==19137== Memcheck, a memory error detector
++==19137== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==19137== Using Valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 and LibVEX; rerun with -h for copyright info
++==19137== Command: /usr/bin/head memcheck/tests/ppc32/test_spe.c
++==19137==
++#include "test_spe.h"
++
++int minimal(void)
++{
++  return 0;
++}
++TEST_SPE_DECL(minimal, "The most minimal C program");
++
++int hello_world (void)
++{
++==19137==
++==19137== HEAP SUMMARY:
++==19137==     in use at exit: 0 bytes in 0 blocks
++==19137==   total heap usage: 2 allocs, 2 frees, 32 bytes allocated
++==19137==
++==19137== All heap blocks were freed -- no leaks are possible
++==19137==
++==19137== For counts of detected and suppressed errors, rerun with: -v
++==19137== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
++root at p1022ds:~/valgrind-3.8.1#
++
++ Example 4: /usr/bin/gcc
++
++root at p1022ds:~# cat hello.c
+ #include <stdio.h>
+ 
+ int main(void)
+@@ -295,79 +313,61 @@ int main(void)
+   printf("hello!\n");
+   return 0;
+ }
+-root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013# ./bin/valgrind --leak-check=full gdb /home/root/hello
+-==9312== Memcheck, a memory error detector
+-==9312== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
+-==9312== Using Valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013 and LibVEX; rerun with -h for copyright info
+-==9312== Command: gdb /home/root/hello
+-==9312==
+-==9313==
+-==9313== HEAP SUMMARY:
+-==9313==     in use at exit: 310,578 bytes in 13,009 blocks
+-==9313==   total heap usage: 13,940 allocs, 931 frees, 395,157 bytes allocated
+-==9313==
+-==9313== LEAK SUMMARY:
+-==9313==    definitely lost: 0 bytes in 0 blocks
+-==9313==    indirectly lost: 0 bytes in 0 blocks
+-==9313==      possibly lost: 0 bytes in 0 blocks
+-==9313==    still reachable: 310,578 bytes in 13,009 blocks
+-==9313==         suppressed: 0 bytes in 0 blocks
+-==9313== Reachable blocks (those to which a pointer was found) are not shown.
+-==9313== To see them, rerun with: --leak-check=full --show-reachable=yes
+-==9313==
+-==9313== For counts of detected and suppressed errors, rerun with: -v
+-==9313== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
+-GNU gdb (GDB) 7.3
+-Copyright (C) 2011 Free Software Foundation, Inc.
+-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+-This is free software: you are free to change and redistribute it.
+-There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+-and "show warranty" for details.
+-This GDB was configured as "powerpc-fsl-linux-gnuspe".
+-For bug reporting instructions, please see:
+-<http://www.gnu.org/software/gdb/bugs/>...
+-Reading symbols from /home/root/hello...==9312== Source and destination overlap in memcpy(0x435a680, 0x435a680, 40)
+-==9312==    at 0xFF4B988: memcpy (mc_replace_strmem.c:878)
+-==9312==    by 0x1000D4E7: ??? (in /usr/bin/gdb)
+-==9312==    by 0x100B4CA7: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1010FEEF: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10110233: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10110AC7: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1013463F: ??? (in /usr/bin/gdb)
+-==9312==    by 0x100058AB: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1013459B: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10006043: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10004D03: ??? (in /usr/bin/gdb)
+-==9312==    by 0x4026E9B: generic_start_main.isra.0 (libc-start.c:226)
+-==9312==
+-done.
+-(gdb) q
+-... *** LONG OUTPUT DELETED ***                                                          <---------------
+-... *** LONG OUTPUT DELETED ***                                                          <---------------
+-... *** LONG OUTPUT DELETED ***                                                          <---------------
+-==9312== 4,064 bytes in 1 blocks are possibly lost in loss record 14,227 of 14,239
+-==9312==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
+-==9312==    by 0x10013277: xmalloc (in /usr/bin/gdb)
+-==9312==    by 0x40918CF: _obstack_begin (obstack.c:186)
+-==9312==    by 0x1013E3BB: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1003BAAF: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10149503: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1014A4DB: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10006827: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1013463F: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10005C37: ??? (in /usr/bin/gdb)
+-==9312==    by 0x1013459B: ??? (in /usr/bin/gdb)
+-==9312==    by 0x10006043: ??? (in /usr/bin/gdb)
+-==9312==
+-==9312== LEAK SUMMARY:
+-==9312==    definitely lost: 4,948 bytes in 30 blocks
+-==9312==    indirectly lost: 24 bytes in 2 blocks
+-==9312==      possibly lost: 14,240 bytes in 130 blocks
+-==9312==    still reachable: 526,254 bytes in 14,235 blocks
+-==9312==         suppressed: 0 bytes in 0 blocks
+-==9312== Reachable blocks (those to which a pointer was found) are not shown.
+-==9312== To see them, rerun with: --leak-check=full --show-reachable=yes
+-==9312==
+-==9312== For counts of detected and suppressed errors, rerun with: -v
+-==9312== ERROR SUMMARY: 199 errors from 161 contexts (suppressed: 1 from 1)
+-root at p1022ds:~/valgrind-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013#
++root at p1022ds:~# gcc ./hello.c -o hello
++root at p1022ds:~# ./hello
++hello!
++root at p1022ds:~# rm ./hello
++root at p1022ds:~# ./valgrind-3.8.1/bin/valgrind-spe --leak-check=full gcc ./hello.c -o hello
++==19168== Memcheck, a memory error detector
++==19168== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
++==19168== Using Valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 and LibVEX; rerun with -h for copyright info
++==19168== Command: gcc ./hello.c -o hello
++==19168==
++==19168==
++==19168== HEAP SUMMARY:
++==19168==     in use at exit: 40,691 bytes in 150 blocks
++==19168==   total heap usage: 223 allocs, 73 frees, 43,547 bytes allocated
++==19168==
++==19168== 1 bytes in 1 blocks are definitely lost in loss record 2 of 96
++==19168==    at 0xFF4683C: calloc (vg_replace_malloc.c:593)
++==19168==    by 0x1001FC6F: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x10003263: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==19168==    by 0x402606B: (below main) (libc-start.c:105)
++==19168==
++==19168== 8 bytes in 1 blocks are definitely lost in loss record 11 of 96
++==19168==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==19168==    by 0x1001FC17: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x10009933: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x10009BDF: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000AE6B: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000D5C7: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000BBEF: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000D5C7: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000BBEF: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000B29B: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000D5C7: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x1000BBEF: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++<stderr truncated>
++==19168== 4,064 bytes in 1 blocks are definitely lost in loss record 96 of 96
++==19168==    at 0xFF48E78: malloc (vg_replace_malloc.c:270)
++==19168==    by 0x1001FC17: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x40908CF: _obstack_begin (obstack.c:186)
++==19168==    by 0x1000244B: ??? (in /usr/bin/powerpc-fsl-linux-gnuspe-gcc)
++==19168==    by 0x4025E9B: generic_start_main.isra.0 (libc-start.c:226)
++==19168==    by 0x402606B: (below main) (libc-start.c:105)
++==19168==
++==19168== LEAK SUMMARY:
++==19168==    definitely lost: 14,525 bytes in 95 blocks
++==19168==    indirectly lost: 49 bytes in 4 blocks
++==19168==      possibly lost: 0 bytes in 0 blocks
++==19168==    still reachable: 26,117 bytes in 51 blocks
++==19168==         suppressed: 0 bytes in 0 blocks
++==19168== Reachable blocks (those to which a pointer was found) are not shown.
++==19168== To see them, rerun with: --leak-check=full --show-reachable=yes
++==19168==
++==19168== For counts of detected and suppressed errors, rerun with: -v
++==19168== ERROR SUMMARY: 45 errors from 45 contexts (suppressed: 1 from 1)
++root at p1022ds:~# ./hello
++hello!
++root at p1022ds:~#
+diff --git a/configure.in b/configure.in
+index 0899c62..bc6d6c2 100644
+--- a/configure.in
++++ b/configure.in
+@@ -8,7 +8,7 @@
+ ##------------------------------------------------------------##
+ 
+ # Process this file with autoconf to produce a configure script.
+-AC_INIT([Valgrind],[3.8.1-FSL-Mon-Apr--8-110008-PDT-2013],[valgrind-users at lists.sourceforge.net])
++AC_INIT([Valgrind],[3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013],[support at freescale.com])
+ AC_CONFIG_SRCDIR(coregrind/m_main.c)
+ AC_CONFIG_HEADERS([config.h])
+ AM_INIT_AUTOMAKE([foreign])
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0063-FSL-SPE-README.txt-Add-prlimit-2-being-an-unsupporte.patch b/recipes-devtools/valgrind/files/0063-FSL-SPE-README.txt-Add-prlimit-2-being-an-unsupporte.patch
new file mode 100644
index 0000000..76a25de
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0063-FSL-SPE-README.txt-Add-prlimit-2-being-an-unsupporte.patch
@@ -0,0 +1,43 @@
+From 88dd4afe5e3e83952c1b2955fed273cb3f53f955 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Mon, 3 Jun 2013 13:53:03 -0700
+Subject: [PATCH 63/65] FSL-SPE-README.txt: Add prlimit(2) being an unsupported syscall to the list of known issues.
+
+---
+ FSL-SPE-README.txt |   14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index bde8f32..1bd8f84 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -122,15 +122,23 @@
+  Known Issues & Limitations:
+  ---------------------------
+ 
+- 0. The Valgrind SPE port does not detect/warn upon an unaligned SPE load/store
++ Known issues with the Valgrind SPE port:
++
++  0. The Valgrind SPE port does not detect/warn upon an unaligned SPE load/store
+     e.g. For the evldd/evstdd the SPEPEM Rev. 0, 01/2008 states:
+     "If the EA is not double-word aligned, an alignment exception occurs".
+     (The Valgrind port assumes that the EA is per the SPEPEM).
+ 
+- 1. ptrace(2) is not supported on the Power architecture in general (as of
++ 1. The ptrace(2) system call is not supported on the Power architecture in general (as of
+     valgrind-3.8.1), and on the Valgrind SPE port in particular.
+ 
+- 2. The Valgrind SPE port has not yet added support for the e500v2 SPE to
++    This manifests as: WARNING: unhandled syscall:  26
++
++ 2. The prlimit(2) system call is not supported.
++
++     This manifests as: unhandled syscall: 325
++
++ 3. The Valgrind SPE port has not yet added support for the e500v2 SPE to
+     Valgrind's internal gdbserver.
+ 
+  Standard UNIX Utilities running stand-alone and under Valgrind on a p1022ds Linux system:
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0064-Add-system-tests-based-on-the-FSL-SPE-README.txt-s-s.patch b/recipes-devtools/valgrind/files/0064-Add-system-tests-based-on-the-FSL-SPE-README.txt-s-s.patch
new file mode 100644
index 0000000..a68eeaa
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0064-Add-system-tests-based-on-the-FSL-SPE-README.txt-s-s.patch
@@ -0,0 +1,906 @@
+From d9890b60f4cc198523539fb5e7cd3249c3824f69 Mon Sep 17 00:00:00 2001
+From: Anmol P. Paralkar <anmol at freescale.com>
+Date: Fri, 7 Jun 2013 09:46:17 -0700
+Subject: [PATCH 64/65] Add system-tests based on the FSL-SPE-README.txt's section:
+  'Standard UNIX Utilities running stand-alone and under Valgrind on a p1022ds Linux system'
+
+---
+ none/tests/linux/utils/Makefile.am            |   12 +++++
+ none/tests/linux/utils/README.txt             |    8 +++
+ none/tests/linux/utils/filter_stderr          |    3 +
+ none/tests/linux/utils/gcc-test-input.c       |    7 +++
+ none/tests/linux/utils/gcc.stderr.exp         |    2 +
+ none/tests/linux/utils/gcc.vgtest             |    3 +
+ none/tests/linux/utils/grep-test-input.txt    |    5 ++
+ none/tests/linux/utils/grep.stderr.exp        |    2 +
+ none/tests/linux/utils/grep.stdout.exp        |    2 +
+ none/tests/linux/utils/grep.vgtest            |    3 +
+ none/tests/linux/utils/head-test-input.txt    |   64 +++++++++++++++++++++++++
+ none/tests/linux/utils/head.stderr.exp        |    2 +
+ none/tests/linux/utils/head.stdout.exp        |   43 +++++++++++++++++
+ none/tests/linux/utils/head.vgtest            |    3 +
+ none/tests/linux/utils/hello-world.stderr.exp |    2 +
+ none/tests/linux/utils/hello-world.stdout.exp |    1 +
+ none/tests/linux/utils/hello-world.vgtest     |    5 ++
+ none/tests/linux/utils/ls-test-input.txt      |    2 +
+ none/tests/linux/utils/ls.stderr.exp          |    2 +
+ none/tests/linux/utils/ls.stdout.exp          |    1 +
+ none/tests/linux/utils/ls.vgtest              |    3 +
+ none/tests/linux/utils/wc-test-input.txt      |    4 ++
+ none/tests/linux/utils/wc.stderr.exp          |    2 +
+ none/tests/linux/utils/wc.stdout.exp          |    1 +
+ none/tests/linux/utils/wc.vgtest              |    3 +
+ regtest-power7-64.default-build.log           |   63 +++++++++++++++----------
+ regtest-power7-64.log                         |   59 +++++++++++++----------
+ 27 files changed, 257 insertions(+), 50 deletions(-)
+ create mode 100644 none/tests/linux/utils/Makefile.am
+ create mode 100644 none/tests/linux/utils/README.txt
+ create mode 100755 none/tests/linux/utils/filter_stderr
+ create mode 100644 none/tests/linux/utils/gcc-test-input.c
+ create mode 100644 none/tests/linux/utils/gcc.stderr.exp
+ create mode 100644 none/tests/linux/utils/gcc.vgtest
+ create mode 100644 none/tests/linux/utils/grep-test-input.txt
+ create mode 100644 none/tests/linux/utils/grep.stderr.exp
+ create mode 100644 none/tests/linux/utils/grep.stdout.exp
+ create mode 100644 none/tests/linux/utils/grep.vgtest
+ create mode 100644 none/tests/linux/utils/head-test-input.txt
+ create mode 100644 none/tests/linux/utils/head.stderr.exp
+ create mode 100644 none/tests/linux/utils/head.stdout.exp
+ create mode 100644 none/tests/linux/utils/head.vgtest
+ create mode 100644 none/tests/linux/utils/hello-world.stderr.exp
+ create mode 100644 none/tests/linux/utils/hello-world.stdout.exp
+ create mode 100644 none/tests/linux/utils/hello-world.vgtest
+ create mode 100644 none/tests/linux/utils/ls-test-input.txt
+ create mode 100644 none/tests/linux/utils/ls.stderr.exp
+ create mode 100644 none/tests/linux/utils/ls.stdout.exp
+ create mode 100644 none/tests/linux/utils/ls.vgtest
+ create mode 100644 none/tests/linux/utils/wc-test-input.txt
+ create mode 100644 none/tests/linux/utils/wc.stderr.exp
+ create mode 100644 none/tests/linux/utils/wc.stdout.exp
+ create mode 100644 none/tests/linux/utils/wc.vgtest
+
+diff --git a/none/tests/linux/utils/Makefile.am b/none/tests/linux/utils/Makefile.am
+new file mode 100644
+index 0000000..e6a4749
+--- /dev/null
++++ b/none/tests/linux/utils/Makefile.am
+@@ -0,0 +1,12 @@
++
++include $(top_srcdir)/Makefile.tool-tests.am
++
++dist_noinst_SCRIPTS = filter_stderr
++
++EXTRA_DIST = $(noinst_SCRIPTS) \
++	wc.stderr.exp wc.stdout.exp wc.vgtest \
++	grep.stderr.exp grep.stdout.exp grep.vgtest \
++	ls.stderr.exp ls.stdout.exp ls.vgtest \
++	head.stderr.exp head.stdout.exp head.vgtest \
++	gcc.stderr.exp gcc.vgtest \
++	hello-world.stderr.exp hello-world.stdout.exp hello-world.vgtest
+diff --git a/none/tests/linux/utils/README.txt b/none/tests/linux/utils/README.txt
+new file mode 100644
+index 0000000..efb2336
+--- /dev/null
++++ b/none/tests/linux/utils/README.txt
+@@ -0,0 +1,8 @@
++
++ For now, create all the tests *without* using --leak-check=full
++ or any other memcheck option; all we want to ensure is that the
++ typical UNIX utilities can function under valgrind. Later, when
++ you have access to the sources of all the tools that you are
++ testing (in yocto); add fancier valgrind/memcheck options and
++ *FIX* the tools based on valgrind's findings.
++ 
+diff --git a/none/tests/linux/utils/filter_stderr b/none/tests/linux/utils/filter_stderr
+new file mode 100755
+index 0000000..3d7c07b
+--- /dev/null
++++ b/none/tests/linux/utils/filter_stderr
+@@ -0,0 +1,3 @@
++#! /bin/sh
++
++../../filter_stderr "$@"
+diff --git a/none/tests/linux/utils/gcc-test-input.c b/none/tests/linux/utils/gcc-test-input.c
+new file mode 100644
+index 0000000..4568db9
+--- /dev/null
++++ b/none/tests/linux/utils/gcc-test-input.c
+@@ -0,0 +1,7 @@
++#include <stdio.h>
++
++int main(void)
++{
++  printf("hello, world!\n");
++  return 0;
++}
+diff --git a/none/tests/linux/utils/gcc.stderr.exp b/none/tests/linux/utils/gcc.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/gcc.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/gcc.vgtest b/none/tests/linux/utils/gcc.vgtest
+new file mode 100644
+index 0000000..3624396
+--- /dev/null
++++ b/none/tests/linux/utils/gcc.vgtest
+@@ -0,0 +1,3 @@
++prog: /usr/bin/gcc
++args: ./gcc-test-input.c -o hello-world
++vgopts: --tool=none
+diff --git a/none/tests/linux/utils/grep-test-input.txt b/none/tests/linux/utils/grep-test-input.txt
+new file mode 100644
+index 0000000..37c308e
+--- /dev/null
++++ b/none/tests/linux/utils/grep-test-input.txt
+@@ -0,0 +1,5 @@
++
++ Mary had a little lamb,
++ it's fleece was white as snow.
++ ...and every where that Mary went,
++ the lamb was sure to go!
+diff --git a/none/tests/linux/utils/grep.stderr.exp b/none/tests/linux/utils/grep.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/grep.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/grep.stdout.exp b/none/tests/linux/utils/grep.stdout.exp
+new file mode 100644
+index 0000000..05fc51d
+--- /dev/null
++++ b/none/tests/linux/utils/grep.stdout.exp
+@@ -0,0 +1,2 @@
++ Mary had a little lamb,
++ ...and every where that Mary went,
+diff --git a/none/tests/linux/utils/grep.vgtest b/none/tests/linux/utils/grep.vgtest
+new file mode 100644
+index 0000000..cbb3521
+--- /dev/null
++++ b/none/tests/linux/utils/grep.vgtest
+@@ -0,0 +1,3 @@
++prog: /bin/grep
++args: -E "M([a-z])+y" ./grep-test-input.txt
++vgopts: --tool=none
+diff --git a/none/tests/linux/utils/head-test-input.txt b/none/tests/linux/utils/head-test-input.txt
+new file mode 100644
+index 0000000..2b694fa
+--- /dev/null
++++ b/none/tests/linux/utils/head-test-input.txt
+@@ -0,0 +1,64 @@
++0
++1
++2
++3
++4
++5
++6
++7
++8
++9
++10
++11
++12
++13
++14
++15
++16
++17
++18
++19
++20
++21
++22
++23
++24
++25
++26
++27
++28
++29
++30
++31
++32
++33
++34
++35
++36
++37
++38
++39
++40
++41
++42
++43
++44
++45
++46
++47
++48
++49
++50
++51
++52
++53
++54
++55
++56
++57
++58
++59
++60
++61
++62
++63
+diff --git a/none/tests/linux/utils/head.stderr.exp b/none/tests/linux/utils/head.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/head.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/head.stdout.exp b/none/tests/linux/utils/head.stdout.exp
+new file mode 100644
+index 0000000..f168b45
+--- /dev/null
++++ b/none/tests/linux/utils/head.stdout.exp
+@@ -0,0 +1,43 @@
++0
++1
++2
++3
++4
++5
++6
++7
++8
++9
++10
++11
++12
++13
++14
++15
++16
++17
++18
++19
++20
++21
++22
++23
++24
++25
++26
++27
++28
++29
++30
++31
++32
++33
++34
++35
++36
++37
++38
++39
++40
++41
++42
+diff --git a/none/tests/linux/utils/head.vgtest b/none/tests/linux/utils/head.vgtest
+new file mode 100644
+index 0000000..63a9eed
+--- /dev/null
++++ b/none/tests/linux/utils/head.vgtest
+@@ -0,0 +1,3 @@
++prog: /usr/bin/head
++args: --lines=43 ./head-test-input.txt
++vgopts: --tool=none
+diff --git a/none/tests/linux/utils/hello-world.stderr.exp b/none/tests/linux/utils/hello-world.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/hello-world.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/hello-world.stdout.exp b/none/tests/linux/utils/hello-world.stdout.exp
+new file mode 100644
+index 0000000..270c611
+--- /dev/null
++++ b/none/tests/linux/utils/hello-world.stdout.exp
+@@ -0,0 +1 @@
++hello, world!
+diff --git a/none/tests/linux/utils/hello-world.vgtest b/none/tests/linux/utils/hello-world.vgtest
+new file mode 100644
+index 0000000..138a2c5
+--- /dev/null
++++ b/none/tests/linux/utils/hello-world.vgtest
+@@ -0,0 +1,5 @@
++prog: hello-world
++args:
++vgopts: --tool=none
++prereq: ./hello-world
++cleanup: rm -f ./hello-world
+diff --git a/none/tests/linux/utils/ls-test-input.txt b/none/tests/linux/utils/ls-test-input.txt
+new file mode 100644
+index 0000000..1b7c0cb
+--- /dev/null
++++ b/none/tests/linux/utils/ls-test-input.txt
+@@ -0,0 +1,2 @@
++
++ Test file for ls test.
+diff --git a/none/tests/linux/utils/ls.stderr.exp b/none/tests/linux/utils/ls.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/ls.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/ls.stdout.exp b/none/tests/linux/utils/ls.stdout.exp
+new file mode 100644
+index 0000000..f6f606e
+--- /dev/null
++++ b/none/tests/linux/utils/ls.stdout.exp
+@@ -0,0 +1 @@
++./ls-test-input.txt
+diff --git a/none/tests/linux/utils/ls.vgtest b/none/tests/linux/utils/ls.vgtest
+new file mode 100644
+index 0000000..f737dfc
+--- /dev/null
++++ b/none/tests/linux/utils/ls.vgtest
+@@ -0,0 +1,3 @@
++prog: /bin/ls
++args: ./ls-test-input.txt
++vgopts: --tool=none
+diff --git a/none/tests/linux/utils/wc-test-input.txt b/none/tests/linux/utils/wc-test-input.txt
+new file mode 100644
+index 0000000..d0efb70
+--- /dev/null
++++ b/none/tests/linux/utils/wc-test-input.txt
+@@ -0,0 +1,4 @@
++Mary had a little lamb,
++It's fleece was white as snow.
++...and everywhere that Mary went,
++the lamb was sure to go!
+diff --git a/none/tests/linux/utils/wc.stderr.exp b/none/tests/linux/utils/wc.stderr.exp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/none/tests/linux/utils/wc.stderr.exp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/none/tests/linux/utils/wc.stdout.exp b/none/tests/linux/utils/wc.stdout.exp
+new file mode 100644
+index 0000000..87e0b15
+--- /dev/null
++++ b/none/tests/linux/utils/wc.stdout.exp
+@@ -0,0 +1 @@
++  4  22 114 ./wc-test-input.txt
+diff --git a/none/tests/linux/utils/wc.vgtest b/none/tests/linux/utils/wc.vgtest
+new file mode 100644
+index 0000000..7fb33e8
+--- /dev/null
++++ b/none/tests/linux/utils/wc.vgtest
+@@ -0,0 +1,3 @@
++prog: /usr/bin/wc
++args: ./wc-test-input.txt
++vgopts: --tool=none
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+index bd2863c..485463e 100644
+--- a/regtest-power7-64.default-build.log
++++ b/regtest-power7-64.default-build.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/writev1.Po' has modification time 0.12 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 86 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.86 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.96 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.89 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.95 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 0.95 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 0.81 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.45 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 89 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.83 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 88 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.79 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 88 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.94 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 0.22 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 90 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.4 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 85 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.94 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 0.94 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1773,8 +1773,10 @@ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/e
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+ Making check in exp-dhat
+ make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++make[2]: Warning: File `.deps/exp_dhat_ppc32_linux-dh_main.Po' has modification time 0.3 s in the future
+ Making check in .
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
++make[3]: Warning: File `.deps/exp_dhat_ppc32_linux-dh_main.Po' has modification time 0.28 s in the future
+ mkdir -p ../.in_place; \
+ for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
+   rm -f ../.in_place/$f; \
+@@ -1791,11 +1793,13 @@ for f in ; do \
+   rm -f ../.in_place/$f.dSYM; \
+   ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
+ done
++make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in tests
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+ make[3]: Nothing to be done for `check'.
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
++make[2]: warning:  Clock skew detected.  Your build may be incomplete.
+ make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+ Making check in tests
+ make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+@@ -1819,7 +1823,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.81 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1867,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.64 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 90 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1905,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.92 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1984,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 22785 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  1622 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +2001,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 23346 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  2208 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2110,7 +2114,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 28005 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1:  8200 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2247,10 +2251,19 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1: 32492 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 12673 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
++-- Running  tests in none/tests/linux/utils ----------------------------
++gcc:             valgrind   --tool=none /usr/bin/gcc ./gcc-test-input.c -o hello-world
++grep:            valgrind   --tool=none /bin/grep -E "M([a-z])+y" ./grep-test-input.txt
++head:            valgrind   --tool=none /usr/bin/head --lines=43 ./head-test-input.txt
++hello, world!
++hello-world:     valgrind   --tool=none ./hello-world 
++ls:              valgrind   --tool=none /bin/ls ./ls-test-input.txt
++wc:              valgrind   --tool=none /usr/bin/wc ./wc-test-input.txt
++-- Finished tests in none/tests/linux/utils ----------------------------
+ -- Finished tests in none/tests/linux ----------------------------------
+ manythreads:     valgrind   ./manythreads 
+ map_unaligned:   valgrind   ./map_unaligned 
+@@ -2413,7 +2426,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 17704 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 30265 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2530,7 +2543,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 23049 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  3336 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2553,7 +2566,7 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 529 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 535 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+index f3879a6..847d71d 100644
+--- a/regtest-power7-64.log
++++ b/regtest-power7-64.log
+@@ -461,7 +461,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-lo
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/writev1.Po' has modification time 0.19 s in the future
++make[5]: Warning: File `.deps/xml1.Po' has modification time 86 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -484,7 +484,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 0.87 s in the future
++make[5]: Warning: File `.deps/test_spe.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -504,7 +504,7 @@ gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 0.96 s in the future
++make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -551,7 +551,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 0.91 s in the future
++make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -605,7 +605,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 0.95 s in the future
++make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -656,7 +656,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 0.95 s in the future
++make[5]: Warning: File `.deps/threads.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -764,7 +764,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 0.82 s in the future
++make[4]: Warning: File `.deps/zero.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1066,7 +1066,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/thread-exits.Po' has modification time 0.45 s in the future
++make[5]: Warning: File `.deps/vgprintf.Po' has modification time 89 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1158,7 +1158,7 @@ gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.82 s in the future
++make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 86 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1226,7 +1226,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DF
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/test_dfp5-test_dfp5.Po' has modification time 0.86 s in the future
++make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 88 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1255,7 +1255,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 0.95 s in the future
++make[5]: Warning: File `.deps/mremap3.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1418,7 +1418,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 0.2 s in the future
++make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 90 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1628,7 +1628,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -W
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/pth_spinlock.Po' has modification time 0.66 s in the future
++make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 84 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1689,7 +1689,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+ make  check-local
+ make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 0.9 s in the future
++make[4]: Warning: File `.deps/stackerr.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1759,7 +1759,7 @@ gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-prot
+ make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+ make  check-local
+ make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 0.93 s in the future
++make[5]: Warning: File `.deps/million.Po' has modification time 90 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1819,7 +1819,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 0.85 s in the future
++make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1863,7 +1863,7 @@ gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 0.62 s in the future
++make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 90 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1901,7 +1901,7 @@ gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack
+ make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+ make  check-local
+ make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 0.92 s in the future
++make[3]: Warning: File `.deps/watchpoints.Po' has modification time 91 s in the future
+ for f in ; do \
+   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+       echo "dsymutil $f"; \
+@@ -1980,7 +1980,7 @@ badfree-2trace:  valgrind   --num-callers=2 -q ./badfree
+ badfree:         valgrind   -q ./badfree 
+ badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+ badjump:         valgrind   ./badjump 
+-sh: line 1: 26789 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
++sh: line 1:  4673 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+ badjump2:        valgrind   -q ./badjump2 
+ badloop:         valgrind   -q ./badloop 
+ badpoll:         valgrind   -q ./badpoll 
+@@ -1997,7 +1997,7 @@ clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone
+ custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+ custom_alloc:    valgrind   -q ./custom_alloc 
+ deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1: 27347 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
++sh: line 1:  5231 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+ deep_templates:  valgrind   -q ./deep_templates 
+ describe-block:  valgrind   ./describe-block 
+ doublefree:      valgrind   -q ./doublefree 
+@@ -2111,7 +2111,7 @@ supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true
+ supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+ supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+ supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 32024 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
++sh: line 1: 10008 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+ *** supp_unknown failed (stderr) ***
+ suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+ test-plo-no:     valgrind   -q ./test-plo 
+@@ -2247,10 +2247,19 @@ gxx304:          valgrind   ./gxx304
+ ifunc:           (skipping, prereq failed: test -e ifunc)
+ -- Running  tests in none/tests/linux ----------------------------------
+ blockfault:      valgrind   ./blockfault 
+-sh: line 1:  4199 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
++sh: line 1: 14512 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+ mremap:          valgrind   ./mremap 
+ mremap2:         valgrind   ./mremap2 
+ mremap3:         valgrind   ./mremap3 
++-- Running  tests in none/tests/linux/utils ----------------------------
++gcc:             valgrind   --tool=none /usr/bin/gcc ./gcc-test-input.c -o hello-world
++grep:            valgrind   --tool=none /bin/grep -E "M([a-z])+y" ./grep-test-input.txt
++head:            valgrind   --tool=none /usr/bin/head --lines=43 ./head-test-input.txt
++hello, world!
++hello-world:     valgrind   --tool=none ./hello-world 
++ls:              valgrind   --tool=none /bin/ls ./ls-test-input.txt
++wc:              valgrind   --tool=none /usr/bin/wc ./wc-test-input.txt
++-- Finished tests in none/tests/linux/utils ----------------------------
+ -- Finished tests in none/tests/linux ----------------------------------
+ manythreads:     valgrind   ./manythreads 
+ map_unaligned:   valgrind   ./map_unaligned 
+@@ -2413,7 +2422,7 @@ tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap
+ *** tc20_verifywrap failed (stderr) ***
+ tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+ tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 21738 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1: 32162 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+ -- Finished tests in helgrind/tests ------------------------------------
+@@ -2532,7 +2541,7 @@ tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse
+ tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+ tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+ tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1: 27083 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
++sh: line 1:  5235 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+ tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+ tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+ thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+@@ -2555,7 +2564,7 @@ ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll
+ million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+ -- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+ 
+-== 529 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
++== 535 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+ gdbserver_tests/mcmain_pic               (stdout)
+ gdbserver_tests/mcmain_pic               (stderr)
+ gdbserver_tests/mcmain_pic               (stdoutB)
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/0065-misc-updates-for-sdk-1.6.patch b/recipes-devtools/valgrind/files/0065-misc-updates-for-sdk-1.6.patch
new file mode 100644
index 0000000..adb7651
--- /dev/null
+++ b/recipes-devtools/valgrind/files/0065-misc-updates-for-sdk-1.6.patch
@@ -0,0 +1,32824 @@
+From 30262e576d2fd99999bd81c2809ab7a080911f98 Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495 at freescale.com>
+Date: Mon, 21 Jul 2014 16:44:03 +0800
+Subject: [PATCH 65/65] misc updates for sdk 1.6
+
+---
+ FAQ.txt                                       |  448 -----
+ FSL-SPE-README.txt                            |   14 +-
+ VEX/pub/libvex_guest_offsets.h                |   26 +-
+ aclocal.m4                                    |    4 +-
+ config.h                                      |   23 +-
+ config.h.in                                   |    3 +
+ configure                                     |  781 +++++----
+ docs/callgrind_annotate.1                     |  102 -
+ docs/callgrind_control.1                      |  107 -
+ docs/cg_annotate.1                            |   99 -
+ docs/html/FAQ.html                            |   51 -
+ docs/html/QuickStart.html                     |   61 -
+ docs/html/bbv-manual.html                     |  366 ----
+ docs/html/cg-manual.html                      | 1176 -----------
+ docs/html/cl-format.html                      |  623 ------
+ docs/html/cl-manual.html                      | 1116 -----------
+ docs/html/design-impl.html                    |   84 -
+ docs/html/dh-manual.html                      |  362 ----
+ docs/html/dist.authors.html                   |  124 --
+ docs/html/dist.html                           |   63 -
+ docs/html/dist.news.html                      | 1866 ------------------
+ docs/html/dist.news.old.html                  | 2043 -------------------
+ docs/html/dist.readme-android.html            |  190 --
+ docs/html/dist.readme-android_emulator.html   |  113 --
+ docs/html/dist.readme-developers.html         |  322 ---
+ docs/html/dist.readme-mips.html               |   91 -
+ docs/html/dist.readme-missing.html            |  224 ---
+ docs/html/dist.readme-packagers.html          |  135 --
+ docs/html/dist.readme-s390.html               |   76 -
+ docs/html/dist.readme.html                    |  137 --
+ docs/html/drd-manual.html                     | 1471 --------------
+ docs/html/faq.html                            |  766 --------
+ docs/html/hg-manual.html                      | 1110 -----------
+ docs/html/index.html                          |   64 -
+ docs/html/license.gfdl.html                   |  436 -----
+ docs/html/license.gpl.html                    |  380 ----
+ docs/html/licenses.html                       |   47 -
+ docs/html/lk-manual.html                      |  131 --
+ docs/html/manual-core-adv.html                | 1569 ---------------
+ docs/html/manual-core.html                    | 2170 ---------------------
+ docs/html/manual-intro.html                   |  129 --
+ docs/html/manual-writing-tools.html           |  501 -----
+ docs/html/manual.html                         |  319 ---
+ docs/html/mc-manual.html                      | 1934 ------------------
+ docs/html/ms-manual.html                      |  848 --------
+ docs/html/nl-manual.html                      |   56 -
+ docs/html/quick-start.html                    |  203 --
+ docs/html/sg-manual.html                      |  250 ---
+ docs/html/tech-docs.html                      |   98 -
+ docs/html/vg_basic.css                        |   67 -
+ docs/ms_print.1                               |   75 -
+ docs/valgrind.1                               | 1713 ----------------
+ none/tests/linux/utils/Makefile.am            |   12 -
+ none/tests/linux/utils/README.txt             |    8 -
+ none/tests/linux/utils/filter_stderr          |    3 -
+ none/tests/linux/utils/gcc-test-input.c       |    7 -
+ none/tests/linux/utils/gcc.stderr.exp         |    2 -
+ none/tests/linux/utils/gcc.vgtest             |    3 -
+ none/tests/linux/utils/grep-test-input.txt    |    5 -
+ none/tests/linux/utils/grep.stderr.exp        |    2 -
+ none/tests/linux/utils/grep.stdout.exp        |    2 -
+ none/tests/linux/utils/grep.vgtest            |    3 -
+ none/tests/linux/utils/head-test-input.txt    |   64 -
+ none/tests/linux/utils/head.stderr.exp        |    2 -
+ none/tests/linux/utils/head.stdout.exp        |   43 -
+ none/tests/linux/utils/head.vgtest            |    3 -
+ none/tests/linux/utils/hello-world.stderr.exp |    2 -
+ none/tests/linux/utils/hello-world.stdout.exp |    1 -
+ none/tests/linux/utils/hello-world.vgtest     |    5 -
+ none/tests/linux/utils/ls-test-input.txt      |    2 -
+ none/tests/linux/utils/ls.stderr.exp          |    2 -
+ none/tests/linux/utils/ls.stdout.exp          |    1 -
+ none/tests/linux/utils/ls.vgtest              |    3 -
+ none/tests/linux/utils/wc-test-input.txt      |    4 -
+ none/tests/linux/utils/wc.stderr.exp          |    2 -
+ none/tests/linux/utils/wc.stdout.exp          |    1 -
+ none/tests/linux/utils/wc.vgtest              |    3 -
+ regtest-power7-64.default-build.log           | 2585 -------------------------
+ regtest-power7-64.log                         | 2585 -------------------------
+ valgrind.spec                                 |    6 +-
+ docs/index.pdf => valgrind_manual.pdf         |    0
+ docs/index.ps => valgrind_manual.ps           |    0
+ 86 files changed, 478 insertions(+), 30050 deletions(-)
+ delete mode 100644 FAQ.txt
+ delete mode 100644 docs/callgrind_annotate.1
+ delete mode 100644 docs/callgrind_control.1
+ delete mode 100644 docs/cg_annotate.1
+ delete mode 100644 docs/html/FAQ.html
+ delete mode 100644 docs/html/QuickStart.html
+ delete mode 100644 docs/html/bbv-manual.html
+ delete mode 100644 docs/html/cg-manual.html
+ delete mode 100644 docs/html/cl-format.html
+ delete mode 100644 docs/html/cl-manual.html
+ delete mode 100644 docs/html/design-impl.html
+ delete mode 100644 docs/html/dh-manual.html
+ delete mode 100644 docs/html/dist.authors.html
+ delete mode 100644 docs/html/dist.html
+ delete mode 100644 docs/html/dist.news.html
+ delete mode 100644 docs/html/dist.news.old.html
+ delete mode 100644 docs/html/dist.readme-android.html
+ delete mode 100644 docs/html/dist.readme-android_emulator.html
+ delete mode 100644 docs/html/dist.readme-developers.html
+ delete mode 100644 docs/html/dist.readme-mips.html
+ delete mode 100644 docs/html/dist.readme-missing.html
+ delete mode 100644 docs/html/dist.readme-packagers.html
+ delete mode 100644 docs/html/dist.readme-s390.html
+ delete mode 100644 docs/html/dist.readme.html
+ delete mode 100644 docs/html/drd-manual.html
+ delete mode 100644 docs/html/faq.html
+ delete mode 100644 docs/html/hg-manual.html
+ delete mode 100644 docs/html/images/home.png
+ delete mode 100644 docs/html/images/next.png
+ delete mode 100644 docs/html/images/prev.png
+ delete mode 100644 docs/html/images/up.png
+ delete mode 100644 docs/html/index.html
+ delete mode 100644 docs/html/license.gfdl.html
+ delete mode 100644 docs/html/license.gpl.html
+ delete mode 100644 docs/html/licenses.html
+ delete mode 100644 docs/html/lk-manual.html
+ delete mode 100644 docs/html/manual-core-adv.html
+ delete mode 100644 docs/html/manual-core.html
+ delete mode 100644 docs/html/manual-intro.html
+ delete mode 100644 docs/html/manual-writing-tools.html
+ delete mode 100644 docs/html/manual.html
+ delete mode 100644 docs/html/mc-manual.html
+ delete mode 100644 docs/html/ms-manual.html
+ delete mode 100644 docs/html/nl-manual.html
+ delete mode 100644 docs/html/quick-start.html
+ delete mode 100644 docs/html/sg-manual.html
+ delete mode 100644 docs/html/tech-docs.html
+ delete mode 100644 docs/html/vg_basic.css
+ delete mode 100644 docs/ms_print.1
+ delete mode 100644 docs/valgrind.1
+ delete mode 100644 none/tests/linux/utils/Makefile.am
+ delete mode 100644 none/tests/linux/utils/README.txt
+ delete mode 100755 none/tests/linux/utils/filter_stderr
+ delete mode 100644 none/tests/linux/utils/gcc-test-input.c
+ delete mode 100644 none/tests/linux/utils/gcc.stderr.exp
+ delete mode 100644 none/tests/linux/utils/gcc.vgtest
+ delete mode 100644 none/tests/linux/utils/grep-test-input.txt
+ delete mode 100644 none/tests/linux/utils/grep.stderr.exp
+ delete mode 100644 none/tests/linux/utils/grep.stdout.exp
+ delete mode 100644 none/tests/linux/utils/grep.vgtest
+ delete mode 100644 none/tests/linux/utils/head-test-input.txt
+ delete mode 100644 none/tests/linux/utils/head.stderr.exp
+ delete mode 100644 none/tests/linux/utils/head.stdout.exp
+ delete mode 100644 none/tests/linux/utils/head.vgtest
+ delete mode 100644 none/tests/linux/utils/hello-world.stderr.exp
+ delete mode 100644 none/tests/linux/utils/hello-world.stdout.exp
+ delete mode 100644 none/tests/linux/utils/hello-world.vgtest
+ delete mode 100644 none/tests/linux/utils/ls-test-input.txt
+ delete mode 100644 none/tests/linux/utils/ls.stderr.exp
+ delete mode 100644 none/tests/linux/utils/ls.stdout.exp
+ delete mode 100644 none/tests/linux/utils/ls.vgtest
+ delete mode 100644 none/tests/linux/utils/wc-test-input.txt
+ delete mode 100644 none/tests/linux/utils/wc.stderr.exp
+ delete mode 100644 none/tests/linux/utils/wc.stdout.exp
+ delete mode 100644 none/tests/linux/utils/wc.vgtest
+ delete mode 100644 regtest-power7-64.default-build.log
+ delete mode 100644 regtest-power7-64.log
+ rename docs/index.pdf => valgrind_manual.pdf (100%)
+ rename docs/index.ps => valgrind_manual.ps (100%)
+
+diff --git a/FAQ.txt b/FAQ.txt
+deleted file mode 100644
+index d514819..0000000
+--- a/FAQ.txt
++++ /dev/null
+@@ -1,448 +0,0 @@
+-
+-
+-Valgrind FAQ
+-Release 3.8.0 10 August 2012
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-
+-Table of Contents
+-1. Background
+-2. Compiling, installing and configuring
+-3. Valgrind aborts unexpectedly
+-4. Valgrind behaves unexpectedly
+-5. Miscellaneous
+-6. How To Get Further Assistance
+-
+-------------------------------------------------------------------------
+-1. Background
+-------------------------------------------------------------------------
+-
+-1.1. How do you pronounce "Valgrind"? 
+-The "Val" as in the world "value". The "grind" is pronounced with a 
+-short 'i' -- ie. "grinned" (rhymes with "tinned") rather than "grined" 
+-(rhymes with "find"). 
+-
+-Don't feel bad: almost everyone gets it wrong at first. 
+-------------------------------------------------------------------------
+-
+-1.2. Where does the name "Valgrind" come from? 
+-From Nordic mythology. Originally (before release) the project was named 
+-Heimdall, after the watchman of the Nordic gods. He could "see a hundred 
+-miles by day or night, hear the grass growing, see the wool growing on a 
+-sheep's back", etc. This would have been a great name, but it was 
+-already taken by a security package "Heimdal". 
+-
+-Keeping with the Nordic theme, Valgrind was chosen. Valgrind is the name 
+-of the main entrance to Valhalla (the Hall of the Chosen Slain in 
+-Asgard). Over this entrance there resides a wolf and over it there is 
+-the head of a boar and on it perches a huge eagle, whose eyes can see to 
+-the far regions of the nine worlds. Only those judged worthy by the 
+-guardians are allowed to pass through Valgrind. All others are refused 
+-entrance. 
+-
+-It's not short for "value grinder", although that's not a bad guess. 
+-
+-------------------------------------------------------------------------
+-2. Compiling, installing and configuring
+-------------------------------------------------------------------------
+-
+-2.1. When building Valgrind, 'make' dies partway with an assertion 
+-failure, something like this: 
+-
+-    % make: expand.c:489: allocated_variable_append: 
+-            Assertion 'current_variable_set_list->next != 0' failed.
+-    
+-It's probably a bug in 'make'. Some, but not all, instances of version 
+-3.79.1 have this bug, see this: 
+-<http://www.mail-archive.com/bug-make@gnu.org/msg01658.html>. Try 
+-upgrading to a more recent version of 'make'. Alternatively, we have 
+-heard that unsetting the CFLAGS environment variable avoids the problem. 
+-
+-------------------------------------------------------------------------
+-
+-2.2. When building Valgrind, 'make' fails with this: 
+-    /usr/bin/ld: cannot find -lc
+-    collect2: ld returned 1 exit status
+-    
+-You need to install the glibc-static-devel package. 
+-
+-------------------------------------------------------------------------
+-3. Valgrind aborts unexpectedly
+-------------------------------------------------------------------------
+-
+-3.1. Programs run OK on Valgrind, but at exit produce a bunch of errors 
+-involving __libc_freeres and then die with a segmentation fault. 
+-
+-When the program exits, Valgrind runs the procedure __libc_freeres in 
+-glibc. This is a hook for memory debuggers, so they can ask glibc to 
+-free up any memory it has used. Doing that is needed to ensure that 
+-Valgrind doesn't incorrectly report space leaks in glibc. 
+-
+-The problem is that running __libc_freeres in older glibc versions 
+-causes this crash. 
+-
+-Workaround for 1.1.X and later versions of Valgrind: use the 
+---run-libc-freeres=no option. You may then get space leak reports for 
+-glibc allocations (please don't report these to the glibc people, since 
+-they are not real leaks), but at least the program runs. 
+-
+-------------------------------------------------------------------------
+-
+-3.2. My (buggy) program dies like this: 
+-    valgrind: m_mallocfree.c:248 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
+-
+-or like this: 
+-    valgrind: m_mallocfree.c:442 (mk_inuse_bszB): Assertion 'bszB != 0' failed.
+-
+-or otherwise aborts or crashes in m_mallocfree.c. 
+-If Memcheck (the memory checker) shows any invalid reads, invalid writes 
+-or invalid frees in your program, the above may happen. Reason is that 
+-your program may trash Valgrind's low-level memory manager, which then 
+-dies with the above assertion, or something similar. The cure is to fix 
+-your program so that it doesn't do any illegal memory accesses. The 
+-above failure will hopefully go away after that. 
+-
+-------------------------------------------------------------------------
+-
+-3.3. My program dies, printing a message like this along the way: 
+-    vex x86->IR: unhandled instruction bytes: 0x66 0xF 0x2E 0x5
+-
+-One possibility is that your program has a bug and erroneously jumps to 
+-a non-code address, in which case you'll get a SIGILL signal. Memcheck 
+-may issue a warning just before this happens, but it might not if the 
+-jump happens to land in addressable memory. 
+-
+-Another possibility is that Valgrind does not handle the instruction. If 
+-you are using an older Valgrind, a newer version might handle the 
+-instruction. However, all instruction sets have some obscure, rarely 
+-used instructions. Also, on amd64 there are an almost limitless number 
+-of combinations of redundant instruction prefixes, many of them 
+-undocumented but accepted by CPUs. So Valgrind will still have decoding 
+-failures from time to time. If this happens, please file a bug report. 
+-
+-------------------------------------------------------------------------
+-
+-3.4. I tried running a Java program (or another program that uses a 
+-just-in-time compiler) under Valgrind but something went wrong. Does 
+-Valgrind handle such programs? 
+-
+-Valgrind can handle dynamically generated code, so long as none of the 
+-generated code is later overwritten by other generated code. If this 
+-happens, though, things will go wrong as Valgrind will continue running 
+-its translations of the old code (this is true on x86 and amd64, on 
+-PowerPC there are explicit cache flush instructions which Valgrind 
+-detects and honours). You should try running with --smc-check=all in 
+-this case. Valgrind will run much more slowly, but should detect the use 
+-of the out-of-date code. 
+-
+-Alternatively, if you have the source code to the JIT compiler you can 
+-insert calls to the VALGRIND_DISCARD_TRANSLATIONS client request to mark 
+-out-of-date code, saving you from using --smc-check=all. 
+-
+-Apart from this, in theory Valgrind can run any Java program just fine, 
+-even those that use JNI and are partially implemented in other languages 
+-like C and C++. In practice, Java implementations tend to do nasty 
+-things that most programs do not, and Valgrind sometimes falls over 
+-these corner cases. 
+-
+-If your Java programs do not run under Valgrind, even with 
+---smc-check=all, please file a bug report and hopefully we'll be able to 
+-fix the problem. 
+-
+-
+-------------------------------------------------------------------------
+-4. Valgrind behaves unexpectedly
+-------------------------------------------------------------------------
+-
+-4.1. My program uses the C++ STL and string classes. Valgrind reports 
+-'still reachable' memory leaks involving these classes at the exit of 
+-the program, but there should be none. 
+-
+-First of all: relax, it's probably not a bug, but a feature. Many 
+-implementations of the C++ standard libraries use their own memory pool 
+-allocators. Memory for quite a number of destructed objects is not 
+-immediately freed and given back to the OS, but kept in the pool(s) for 
+-later re-use. The fact that the pools are not freed at the exit of the 
+-program cause Valgrind to report this memory as still reachable. The 
+-behaviour not to free pools at the exit could be called a bug of the 
+-library though. 
+-
+-Using GCC, you can force the STL to use malloc and to free memory as 
+-soon as possible by globally disabling memory caching. Beware! Doing so 
+-will probably slow down your program, sometimes drastically. 
+-
+-* With GCC 2.91, 2.95, 3.0 and 3.1, compile all source using the STL 
+-with -D__USE_MALLOC. Beware! This was removed from GCC starting with 
+-version 3.3. 
+-
+-* With GCC 3.2.2 and later, you should export the environment variable 
+-GLIBCPP_FORCE_NEW before running your program. 
+-
+-* With GCC 3.4 and later, that variable has changed name to 
+-GLIBCXX_FORCE_NEW. 
+-
+-There are other ways to disable memory pooling: using the malloc_alloc 
+-template with your objects (not portable, but should work for GCC) or 
+-even writing your own memory allocators. But all this goes beyond the 
+-scope of this FAQ. Start by reading 
+-http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4_leak: 
+-<http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4_leak> if you 
+-absolutely want to do that. But beware: allocators belong to the more 
+-messy parts of the STL and people went to great lengths to make the STL 
+-portable across platforms. Chances are good that your solution will work 
+-on your platform, but not on others. 
+-
+-------------------------------------------------------------------------
+-
+-4.2. The stack traces given by Memcheck (or another tool) aren't 
+-helpful. How can I improve them? 
+-
+-If they're not long enough, use --num-callers to make them longer. 
+-If they're not detailed enough, make sure you are compiling with -g to 
+-add debug information. And don't strip symbol tables (programs should be 
+-unstripped unless you run 'strip' on them; some libraries ship 
+-stripped). 
+-
+-Also, for leak reports involving shared objects, if the shared object is 
+-unloaded before the program terminates, Valgrind will discard the debug 
+-information and the error message will be full of ??? entries. The 
+-workaround here is to avoid calling dlclose on these shared objects. 
+-
+-Also, -fomit-frame-pointer and -fstack-check can make stack traces 
+-worse. 
+-
+-Some example sub-traces: 
+-* With debug information and unstripped (best): 
+-    Invalid write of size 1
+-       at 0x80483BF: really (malloc1.c:20)
+-       by 0x8048370: main (malloc1.c:9)
+-    
+-* With no debug information, unstripped: 
+-    Invalid write of size 1
+-       at 0x80483BF: really (in /auto/homes/njn25/grind/head5/a.out)
+-       by 0x8048370: main (in /auto/homes/njn25/grind/head5/a.out)
+-    
+-* With no debug information, stripped: 
+-    Invalid write of size 1
+-       at 0x80483BF: (within /auto/homes/njn25/grind/head5/a.out)
+-       by 0x8048370: (within /auto/homes/njn25/grind/head5/a.out)
+-       by 0x42015703: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+-       by 0x80482CC: (within /auto/homes/njn25/grind/head5/a.out)
+-    
+-* With debug information and -fomit-frame-pointer: 
+-    Invalid write of size 1
+-       at 0x80483C4: really (malloc1.c:20)
+-       by 0x42015703: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+-       by 0x80482CC: ??? (start.S:81)
+-    
+-* A leak error message involving an unloaded shared object: 
+-    84 bytes in 1 blocks are possibly lost in loss record 488 of 713
+-       at 0x1B9036DA: operator new(unsigned) (vg_replace_malloc.c:132)
+-       by 0x1DB63EEB: ???
+-       by 0x1DB4B800: ???
+-       by 0x1D65E007: ???
+-       by 0x8049EE6: main (main.cpp:24)
+-    
+-------------------------------------------------------------------------
+-
+-4.3. The stack traces given by Memcheck (or another tool) seem to have 
+-the wrong function name in them. What's happening? 
+-
+-Occasionally Valgrind stack traces get the wrong function names. This is 
+-caused by glibc using aliases to effectively give one function two 
+-names. Most of the time Valgrind chooses a suitable name, but very 
+-occasionally it gets it wrong. Examples we know of are printing bcmp 
+-instead of memcmp, index instead of strchr, and rindex instead of 
+-strrchr. 
+-
+-------------------------------------------------------------------------
+-
+-4.4. My program crashes normally, but doesn't under Valgrind, or vice 
+-versa. What's happening? 
+-
+-When a program runs under Valgrind, its environment is slightly 
+-different to when it runs natively. For example, the memory layout is 
+-different, and the way that threads are scheduled is different. 
+-
+-Most of the time this doesn't make any difference, but it can, 
+-particularly if your program is buggy. For example, if your program 
+-crashes because it erroneously accesses memory that is unaddressable, 
+-it's possible that this memory will not be unaddressable when run under 
+-Valgrind. Alternatively, if your program has data races, these may not 
+-manifest under Valgrind. 
+-
+-There isn't anything you can do to change this, it's just the nature of 
+-the way Valgrind works that it cannot exactly replicate a native 
+-execution environment. In the case where your program crashes due to a 
+-memory error when run natively but not when run under Valgrind, in most 
+-cases Memcheck should identify the bad memory operation. 
+-
+-------------------------------------------------------------------------
+-
+-4.5. Memcheck doesn't report any errors and I know my program has 
+-errors. 
+-
+-There are two possible causes of this. 
+-First, by default, Valgrind only traces the top-level process. So if 
+-your program spawns children, they won't be traced by Valgrind by 
+-default. Also, if your program is started by a shell script, Perl 
+-script, or something similar, Valgrind will trace the shell, or the Perl 
+-interpreter, or equivalent. 
+-
+-To trace child processes, use the --trace-children=yes option. 
+-If you are tracing large trees of processes, it can be less disruptive 
+-to have the output sent over the network. Give Valgrind the option 
+---log-socket=127.0.0.1:12345 (if you want logging output sent to port 
+-12345 on localhost). You can use the valgrind-listener program to listen 
+-on that port: 
+-
+-    valgrind-listener 12345
+-    
+-Obviously you have to start the listener process first. See the manual 
+-for more details. 
+-
+-Second, if your program is statically linked, most Valgrind tools won't 
+-work as well, because they won't be able to replace certain functions, 
+-such as malloc, with their own versions. A key indicator of this is if 
+-Memcheck says: All heap blocks were freed -- no leaks are possible when 
+-you know your program calls malloc. The workaround is to avoid 
+-statically linking your program. 
+-
+-------------------------------------------------------------------------
+-
+-4.6. Why doesn't Memcheck find the array overruns in this program? 
+-    int static[5];
+-    
+-    int main(void)
+-    {
+-      int stack[5];
+-    
+-      static[5] = 0;
+-      stack [5] = 0;
+-              
+-      return 0;
+-    }
+-    
+-Unfortunately, Memcheck doesn't do bounds checking on global or stack 
+-arrays. We'd like to, but it's just not possible to do in a reasonable 
+-way that fits with how Memcheck works. Sorry. 
+-
+-However, the experimental tool SGcheck can detect errors like this. Run 
+-Valgrind with the --tool=exp-sgcheck option to try it, but be aware that 
+-it is not as robust as Memcheck. 
+-
+-
+-------------------------------------------------------------------------
+-5. Miscellaneous
+-------------------------------------------------------------------------
+-
+-5.1. I tried writing a suppression but it didn't work. Can you write my 
+-suppression for me? 
+-
+-Yes! Use the --gen-suppressions=yes feature to spit out suppressions 
+-automatically for you. You can then edit them if you like, eg. combining 
+-similar automatically generated suppressions using wildcards like '*'. 
+-
+-If you really want to write suppressions by hand, read the manual 
+-carefully. Note particularly that C++ function names must be mangled 
+-(that is, not demangled). 
+-
+-------------------------------------------------------------------------
+-
+-5.2. With Memcheck's memory leak detector, what's the difference between 
+-"definitely lost", "indirectly lost", "possibly lost", "still 
+-reachable", and "suppressed"? 
+-
+-The details are in the Memcheck section of the user manual. 
+-In short: 
+-* "definitely lost" means your program is leaking memory -- fix those 
+-leaks! 
+-
+-* "indirectly lost" means your program is leaking memory in a 
+-pointer-based structure. (E.g. if the root node of a binary tree is 
+-"definitely lost", all the children will be "indirectly lost".) If you 
+-fix the "definitely lost" leaks, the "indirectly lost" leaks should go 
+-away. 
+-
+-* "possibly lost" means your program is leaking memory, unless you're 
+-doing unusual things with pointers that could cause them to point into 
+-the middle of an allocated block; see the user manual for some possible 
+-causes. Use --show-possibly-lost=no if you don't want to see these 
+-reports. 
+-
+-* "still reachable" means your program is probably ok -- it didn't free 
+-some memory it could have. This is quite common and often reasonable. 
+-Don't use --show-reachable=yes if you don't want to see these reports. 
+-
+-* "suppressed" means that a leak error has been suppressed. There are 
+-some suppressions in the default suppression files. You can ignore 
+-suppressed errors. 
+-
+-------------------------------------------------------------------------
+-
+-5.3. Memcheck's uninitialised value errors are hard to track down, 
+-because they are often reported some time after they are caused. Could 
+-Memcheck record a trail of operations to better link the cause to the 
+-effect? Or maybe just eagerly report any copies of uninitialised memory 
+-values? 
+-
+-Prior to version 3.4.0, the answer was "we don't know how to do it 
+-without huge performance penalties". As of 3.4.0, try using the 
+---track-origins=yes option. It will run slower than usual, but will give 
+-you extra information about the origin of uninitialised values. 
+-
+-Or if you want to do it the old fashioned way, you can use the client 
+-request VALGRIND_CHECK_VALUE_IS_DEFINED to help track these errors down 
+--- work backwards from the point where the uninitialised error occurs, 
+-checking suspect values until you find the cause. This requires editing, 
+-compiling and re-running your program multiple times, which is a pain, 
+-but still easier than debugging the problem without Memcheck's help. 
+-
+-As for eager reporting of copies of uninitialised memory values, this 
+-has been suggested multiple times. Unfortunately, almost all programs 
+-legitimately copy uninitialised memory values around (because compilers 
+-pad structs to preserve alignment) and eager checking leads to hundreds 
+-of false positives. Therefore Memcheck does not support eager checking 
+-at this time. 
+-
+-------------------------------------------------------------------------
+-
+-5.4. Is it possible to attach Valgrind to a program that is already 
+-running? 
+-
+-No. The environment that Valgrind provides for running programs is 
+-significantly different to that for normal programs, e.g. due to 
+-different layout of memory. Therefore Valgrind has to have full control 
+-from the very start. 
+-
+-It is possible to achieve something like this by running your program 
+-without any instrumentation (which involves a slow-down of about 5x, 
+-less than that of most tools), and then adding instrumentation once you 
+-get to a point of interest. Support for this must be provided by the 
+-tool, however, and Callgrind is the only tool that currently has such 
+-support. See the instructions on the callgrind_control program for 
+-details. 
+-
+-
+-------------------------------------------------------------------------
+-6. How To Get Further Assistance
+-------------------------------------------------------------------------
+-
+-Read the appropriate section(s) of the Valgrind Documentation: 
+-<http://www.valgrind.org/docs/manual/index.html>. 
+-
+-Search: <http://search.gmane.org> the valgrind-users: 
+-<http://news.gmane.org/gmane.comp.debugging.valgrind> mailing list 
+-archives, using the group name gmane.comp.debugging.valgrind. 
+-
+-If you think an answer in this FAQ is incomplete or inaccurate, please 
+-e-mail valgrind at valgrind.org: <valgrind at valgrind.org>. 
+-
+-If you have tried all of these things and are still stuck, you can try 
+-mailing the valgrind-users mailing list: 
+-<http://www.valgrind.org/support/mailing_lists.html>. Note that an email 
+-has a better change of being answered usefully if it is clearly written. 
+-Also remember that, despite the fact that most of the community are very 
+-helpful and responsive to emailed questions, you are probably requesting 
+-help from unpaid volunteers, so you have no guarantee of receiving an 
+-answer. 
+-
+diff --git a/FSL-SPE-README.txt b/FSL-SPE-README.txt
+index 1bd8f84..bde8f32 100644
+--- a/FSL-SPE-README.txt
++++ b/FSL-SPE-README.txt
+@@ -122,23 +122,15 @@
+  Known Issues & Limitations:
+  ---------------------------
+ 
+- Known issues with the Valgrind SPE port:
+-
+-  0. The Valgrind SPE port does not detect/warn upon an unaligned SPE load/store
++ 0. The Valgrind SPE port does not detect/warn upon an unaligned SPE load/store
+     e.g. For the evldd/evstdd the SPEPEM Rev. 0, 01/2008 states:
+     "If the EA is not double-word aligned, an alignment exception occurs".
+     (The Valgrind port assumes that the EA is per the SPEPEM).
+ 
+- 1. The ptrace(2) system call is not supported on the Power architecture in general (as of
++ 1. ptrace(2) is not supported on the Power architecture in general (as of
+     valgrind-3.8.1), and on the Valgrind SPE port in particular.
+ 
+-    This manifests as: WARNING: unhandled syscall:  26
+-
+- 2. The prlimit(2) system call is not supported.
+-
+-     This manifests as: unhandled syscall: 325
+-
+- 3. The Valgrind SPE port has not yet added support for the e500v2 SPE to
++ 2. The Valgrind SPE port has not yet added support for the e500v2 SPE to
+     Valgrind's internal gdbserver.
+ 
+  Standard UNIX Utilities running stand-alone and under Valgrind on a p1022ds Linux system:
+diff --git a/VEX/pub/libvex_guest_offsets.h b/VEX/pub/libvex_guest_offsets.h
+index 59b089b..719d8d7 100644
+--- a/VEX/pub/libvex_guest_offsets.h
++++ b/VEX/pub/libvex_guest_offsets.h
+@@ -30,19 +30,19 @@
+ #define OFFSET_amd64_R14 128
+ #define OFFSET_amd64_R15 136
+ #define OFFSET_amd64_RIP 184
+-#define OFFSET_ppc32_GPR0 16
+-#define OFFSET_ppc32_GPR1 20
+-#define OFFSET_ppc32_GPR2 24
+-#define OFFSET_ppc32_GPR3 28
+-#define OFFSET_ppc32_GPR4 32
+-#define OFFSET_ppc32_GPR5 36
+-#define OFFSET_ppc32_GPR6 40
+-#define OFFSET_ppc32_GPR7 44
+-#define OFFSET_ppc32_GPR8 48
+-#define OFFSET_ppc32_GPR9 52
+-#define OFFSET_ppc32_GPR10 56
+-#define OFFSET_ppc32_CIA 1168
+-#define OFFSET_ppc32_CR0_0 1185
++#define OFFSET_ppc32_GPR0 20
++#define OFFSET_ppc32_GPR1 28
++#define OFFSET_ppc32_GPR2 36
++#define OFFSET_ppc32_GPR3 44
++#define OFFSET_ppc32_GPR4 52
++#define OFFSET_ppc32_GPR5 60
++#define OFFSET_ppc32_GPR6 68
++#define OFFSET_ppc32_GPR7 76
++#define OFFSET_ppc32_GPR8 84
++#define OFFSET_ppc32_GPR9 92
++#define OFFSET_ppc32_GPR10 100
++#define OFFSET_ppc32_CIA 1296
++#define OFFSET_ppc32_CR0_0 1313
+ #define OFFSET_ppc64_GPR0 16
+ #define OFFSET_ppc64_GPR1 24
+ #define OFFSET_ppc64_GPR2 32
+diff --git a/aclocal.m4 b/aclocal.m4
+index dd17e75..6dd95e1 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -13,8 +13,8 @@
+ 
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+-[m4_warning([this file was generated for autoconf 2.65.
++m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
++[m4_warning([this file was generated for autoconf 2.68.
+ You have another version of autoconf.  It may work, but is not guaranteed to.
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically `autoreconf'.])])
+diff --git a/config.h b/config.h
+index 73ee55e..f808d85 100644
+--- a/config.h
++++ b/config.h
+@@ -32,7 +32,7 @@
+ /* #undef GLIBC_2_10 */
+ 
+ /* Define to 1 if you're using glibc 2.11.x */
+-#define GLIBC_2_11 1
++/* #undef GLIBC_2_11 */
+ 
+ /* Define to 1 if you're using glibc 2.12.x */
+ /* #undef GLIBC_2_12 */
+@@ -41,7 +41,7 @@
+ /* #undef GLIBC_2_13 */
+ 
+ /* Define to 1 if you're using glibc 2.14.x */
+-/* #undef GLIBC_2_14 */
++#define GLIBC_2_14 1
+ 
+ /* Define to 1 if you're using glibc 2.15.x */
+ /* #undef GLIBC_2_15 */
+@@ -74,13 +74,16 @@
+ /* #undef GLIBC_2_9 */
+ 
+ /* Define to 1 if gcc/as can do Altivec. */
+-/* #undef HAS_ALTIVEC */
++#define HAS_ALTIVEC 1
++
++/* Define to 1 if gcc/as can do SPE. */
++/* #undef HAS_SPE */
+ 
+ /* Define to 1 if you have the <asm/unistd.h> header file. */
+ #define HAVE_ASM_UNISTD_H 1
+ 
+ /* Define to 1 if as supports mtocrf/mfocrf. */
+-/* #undef HAVE_AS_PPC_MFTOCRF */
++#define HAVE_AS_PPC_MFTOCRF 1
+ 
+ /* Define to 1 if gcc supports __sync_bool_compare_and_swap() and
+    __sync_add_and_fetch() for the primary target */
+@@ -212,7 +215,7 @@
+ #define HAVE_SEMTIMEDOP 1
+ 
+ /* Define to 1 if libstd++ supports annotating shared pointers */
+-/* #undef HAVE_SHARED_POINTER_ANNOTATION */
++#define HAVE_SHARED_POINTER_ANNOTATION 1
+ 
+ /* Define to 1 if you have the `signalfd' function. */
+ #define HAVE_SIGNALFD 1
+@@ -305,7 +308,7 @@
+ #define KERNEL_2_6 1
+ 
+ /* configured default page size 4k */
+-#define MIPS_PAGE_SHIFT 12
++#define MIPS_PAGE_SHIFT 16
+ 
+ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
+ /* #undef NO_MINUS_C_MINUS_O */
+@@ -314,13 +317,13 @@
+ #define PACKAGE "valgrind"
+ 
+ /* Define to the address where bug reports for this package should be sent. */
+-#define PACKAGE_BUGREPORT "valgrind-users at lists.sourceforge.net"
++#define PACKAGE_BUGREPORT "support at freescale.com"
+ 
+ /* Define to the full name of this package. */
+ #define PACKAGE_NAME "Valgrind"
+ 
+ /* Define to the full name and version of this package. */
+-#define PACKAGE_STRING "Valgrind 3.8.1"
++#define PACKAGE_STRING "Valgrind 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013"
+ 
+ /* Define to the one symbol short name of this package. */
+ #define PACKAGE_TARNAME "valgrind"
+@@ -329,7 +332,7 @@
+ #define PACKAGE_URL ""
+ 
+ /* Define to the version of this package. */
+-#define PACKAGE_VERSION "3.8.1"
++#define PACKAGE_VERSION "3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013"
+ 
+ /* configured memory alignment 2*PAGE_SIZE */
+ #define SHM_ALIGNMENT 2*(1UL << MIPS_PAGE_SHIFT)
+@@ -341,7 +344,7 @@
+ #define TIME_WITH_SYS_TIME 1
+ 
+ /* Version number of package */
+-#define VERSION "3.8.1"
++#define VERSION "3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013"
+ 
+ /* Temporary files directory */
+ #define VG_TMPDIR "/tmp"
+diff --git a/config.h.in b/config.h.in
+index 60d9d69..b34c21c 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -75,6 +75,9 @@
+ /* Define to 1 if gcc/as can do Altivec. */
+ #undef HAS_ALTIVEC
+ 
++/* Define to 1 if gcc/as can do SPE. */
++#undef HAS_SPE
++
+ /* Define to 1 if you have the <asm/unistd.h> header file. */
+ #undef HAVE_ASM_UNISTD_H
+ 
+diff --git a/configure b/configure
+index 90afc06..82f6b06 100755
+--- a/configure
++++ b/configure
+@@ -1,13 +1,13 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.65 for Valgrind 3.8.1.
++# Generated by GNU Autoconf 2.68 for Valgrind 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013.
+ #
+-# Report bugs to <valgrind-users at lists.sourceforge.net>.
++# Report bugs to <support at freescale.com>.
+ #
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+-# Inc.
++# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
++# Foundation, Inc.
+ #
+ #
+ # This configure script is free software; the Free Software Foundation
+@@ -91,6 +91,7 @@ fi
+ IFS=" ""	$as_nl"
+ 
+ # Find who we are.  Look in the path if we contain no directory separator.
++as_myself=
+ case $0 in #((
+   *[\\/]* ) as_myself=$0 ;;
+   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+@@ -216,11 +217,18 @@ IFS=$as_save_IFS
+   # We cannot yet assume a decent shell, so we have to provide a
+ 	# neutralization value for shells without unset; and this also
+ 	# works around shells that cannot unset nonexistent variables.
++	# Preserve -v and -x to the replacement shell.
+ 	BASH_ENV=/dev/null
+ 	ENV=/dev/null
+ 	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ 	export CONFIG_SHELL
+-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
++	case $- in # ((((
++	  *v*x* | *x*v* ) as_opts=-vx ;;
++	  *v* ) as_opts=-v ;;
++	  *x* ) as_opts=-x ;;
++	  * ) as_opts= ;;
++	esac
++	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ fi
+ 
+     if test x$as_have_required = xno; then :
+@@ -231,10 +239,10 @@ fi
+     $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+   else
+     $as_echo "$0: Please tell bug-autoconf at gnu.org and
+-$0: valgrind-users at lists.sourceforge.net about your system,
+-$0: including any error possibly output before this
+-$0: message. Then install a modern shell, or manually run
+-$0: the script under such a shell if you do have one."
++$0: support at freescale.com about your system, including any
++$0: error possibly output before this message. Then install
++$0: a modern shell, or manually run the script under such a
++$0: shell if you do have one."
+   fi
+   exit 1
+ fi
+@@ -319,7 +327,7 @@ $as_echo X"$as_dir" |
+       test -d "$as_dir" && break
+     done
+     test -z "$as_dirs" || eval "mkdir $as_dirs"
+-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
++  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+ 
+ 
+ } # as_fn_mkdir_p
+@@ -359,19 +367,19 @@ else
+ fi # as_fn_arith
+ 
+ 
+-# as_fn_error ERROR [LINENO LOG_FD]
+-# ---------------------------------
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
+ # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+ # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+-# script with status $?, using 1 if that was 0.
++# script with STATUS, using 1 if that was 0.
+ as_fn_error ()
+ {
+-  as_status=$?; test $as_status -eq 0 && as_status=1
+-  if test "$3"; then
+-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
++  as_status=$1; test $as_status -eq 0 && as_status=1
++  if test "$4"; then
++    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+   fi
+-  $as_echo "$as_me: error: $1" >&2
++  $as_echo "$as_me: error: $2" >&2
+   as_fn_exit $as_status
+ } # as_fn_error
+ 
+@@ -533,7 +541,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
+ exec 6>&1
+ 
+ # Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+ # so uname gets run too.
+ ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+ 
+@@ -552,9 +560,9 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='Valgrind'
+ PACKAGE_TARNAME='valgrind'
+-PACKAGE_VERSION='3.8.1'
+-PACKAGE_STRING='Valgrind 3.8.1'
+-PACKAGE_BUGREPORT='valgrind-users at lists.sourceforge.net'
++PACKAGE_VERSION='3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013'
++PACKAGE_STRING='Valgrind 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013'
++PACKAGE_BUGREPORT='support at freescale.com'
+ PACKAGE_URL=''
+ 
+ ac_unique_file="coregrind/m_main.c"
+@@ -670,6 +678,8 @@ HAVE_PTHREAD_CREATE_GLIBC_2_0_FALSE
+ HAVE_PTHREAD_CREATE_GLIBC_2_0_TRUE
+ HAS_DFP_FALSE
+ HAS_DFP_TRUE
++HAS_SPE_FALSE
++HAS_SPE_TRUE
+ HAS_VSX_FALSE
+ HAS_VSX_TRUE
+ HAS_ALTIVEC_FALSE
+@@ -926,8 +936,9 @@ do
+   fi
+ 
+   case $ac_option in
+-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+-  *)	ac_optarg=yes ;;
++  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
++  *=)   ac_optarg= ;;
++  *)    ac_optarg=yes ;;
+   esac
+ 
+   # Accept the important Cygnus configure options, so we can diagnose typos.
+@@ -972,7 +983,7 @@ do
+     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+-      as_fn_error "invalid feature name: $ac_useropt"
++      as_fn_error $? "invalid feature name: $ac_useropt"
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+@@ -998,7 +1009,7 @@ do
+     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+-      as_fn_error "invalid feature name: $ac_useropt"
++      as_fn_error $? "invalid feature name: $ac_useropt"
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+@@ -1202,7 +1213,7 @@ do
+     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+-      as_fn_error "invalid package name: $ac_useropt"
++      as_fn_error $? "invalid package name: $ac_useropt"
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+@@ -1218,7 +1229,7 @@ do
+     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+-      as_fn_error "invalid package name: $ac_useropt"
++      as_fn_error $? "invalid package name: $ac_useropt"
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+@@ -1248,8 +1259,8 @@ do
+   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+     x_libraries=$ac_optarg ;;
+ 
+-  -*) as_fn_error "unrecognized option: \`$ac_option'
+-Try \`$0 --help' for more information."
++  -*) as_fn_error $? "unrecognized option: \`$ac_option'
++Try \`$0 --help' for more information"
+     ;;
+ 
+   *=*)
+@@ -1257,7 +1268,7 @@ Try \`$0 --help' for more information."
+     # Reject names that are not valid shell variable names.
+     case $ac_envvar in #(
+       '' | [0-9]* | *[!_$as_cr_alnum]* )
+-      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
++      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+     esac
+     eval $ac_envvar=\$ac_optarg
+     export $ac_envvar ;;
+@@ -1267,7 +1278,7 @@ Try \`$0 --help' for more information."
+     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
++    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+     ;;
+ 
+   esac
+@@ -1275,13 +1286,13 @@ done
+ 
+ if test -n "$ac_prev"; then
+   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+-  as_fn_error "missing argument to $ac_option"
++  as_fn_error $? "missing argument to $ac_option"
+ fi
+ 
+ if test -n "$ac_unrecognized_opts"; then
+   case $enable_option_checking in
+     no) ;;
+-    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
++    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+   esac
+ fi
+@@ -1304,7 +1315,7 @@ do
+     [\\/$]* | ?:[\\/]* )  continue;;
+     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+   esac
+-  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
++  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+ done
+ 
+ # There might be people who depend on the old broken behavior: `$host'
+@@ -1318,8 +1329,8 @@ target=$target_alias
+ if test "x$host_alias" != x; then
+   if test "x$build_alias" = x; then
+     cross_compiling=maybe
+-    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+-    If a cross compiler is detected then cross compile mode will be used." >&2
++    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
++    If a cross compiler is detected then cross compile mode will be used" >&2
+   elif test "x$build_alias" != "x$host_alias"; then
+     cross_compiling=yes
+   fi
+@@ -1334,9 +1345,9 @@ test "$silent" = yes && exec 6>/dev/null
+ ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ ac_ls_di=`ls -di .` &&
+ ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+-  as_fn_error "working directory cannot be determined"
++  as_fn_error $? "working directory cannot be determined"
+ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+-  as_fn_error "pwd does not report name of working directory"
++  as_fn_error $? "pwd does not report name of working directory"
+ 
+ 
+ # Find the source files, if location was not specified.
+@@ -1375,11 +1386,11 @@ else
+ fi
+ if test ! -r "$srcdir/$ac_unique_file"; then
+   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+-  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
++  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+ fi
+ ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ ac_abs_confdir=`(
+-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
++	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ 	pwd)`
+ # When building in place, set srcdir=.
+ if test "$ac_abs_confdir" = "$ac_pwd"; then
+@@ -1405,7 +1416,7 @@ if test "$ac_init_help" = "long"; then
+   # Omit some internal or obsolete options to make the list less imposing.
+   # This message is too long to be a string in the A/UX 3.1 sh.
+   cat <<_ACEOF
+-\`configure' configures Valgrind 3.8.1 to adapt to many kinds of systems.
++\`configure' configures Valgrind 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013 to adapt to many kinds of systems.
+ 
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+ 
+@@ -1419,7 +1430,7 @@ Configuration:
+       --help=short        display options specific to this package
+       --help=recursive    display the short help of all the included packages
+   -V, --version           display version information and exit
+-  -q, --quiet, --silent   do not print \`checking...' messages
++  -q, --quiet, --silent   do not print \`checking ...' messages
+       --cache-file=FILE   cache test results in FILE [disabled]
+   -C, --config-cache      alias for \`--cache-file=config.cache'
+   -n, --no-create         do not create output files
+@@ -1475,7 +1486,7 @@ fi
+ 
+ if test -n "$ac_init_help"; then
+   case $ac_init_help in
+-     short | recursive ) echo "Configuration of Valgrind 3.8.1:";;
++     short | recursive ) echo "Configuration of Valgrind 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013:";;
+    esac
+   cat <<\_ACEOF
+ 
+@@ -1518,7 +1529,7 @@ Some influential environment variables:
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+ 
+-Report bugs to <valgrind-users at lists.sourceforge.net>.
++Report bugs to <support at freescale.com>.
+ _ACEOF
+ ac_status=$?
+ fi
+@@ -1581,10 +1592,10 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+   cat <<\_ACEOF
+-Valgrind configure 3.8.1
+-generated by GNU Autoconf 2.65
++Valgrind configure 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
++generated by GNU Autoconf 2.68
+ 
+-Copyright (C) 2009 Free Software Foundation, Inc.
++Copyright (C) 2010 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+@@ -1628,7 +1639,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_retval=1
+ fi
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_compile
+@@ -1654,7 +1665,7 @@ $as_echo "$ac_try_echo"; } >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+-  test $ac_status = 0; } >/dev/null && {
++  test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+@@ -1665,7 +1676,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+@@ -1703,7 +1714,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_retval=1
+ fi
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_cxx_try_compile
+@@ -1749,7 +1760,7 @@ fi
+   # interfere with the next link command; also delete a directory that is
+   # left behind by Apple's compiler.  We do this before executing the actions.
+   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_link
+@@ -1762,10 +1773,10 @@ fi
+ ac_fn_c_check_header_mongrel ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++  if eval \${$3+:} false; then :
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$3+:} false; then :
+   $as_echo_n "(cached) " >&6
+ fi
+ eval ac_res=\$$3
+@@ -1801,7 +1812,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
+ else
+   ac_header_preproc=no
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+@@ -1824,17 +1835,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ $as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+-( cat <<\_ASBOX
+-## --------------------------------------------------- ##
+-## Report this to valgrind-users at lists.sourceforge.net ##
+-## --------------------------------------------------- ##
+-_ASBOX
++( $as_echo "## ------------------------------------ ##
++## Report this to support at freescale.com ##
++## ------------------------------------ ##"
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$3+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$3=\$ac_header_compiler"
+@@ -1843,7 +1852,7 @@ eval ac_res=\$$3
+ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ fi
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ 
+ } # ac_fn_c_check_header_mongrel
+ 
+@@ -1884,7 +1893,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
+        ac_retval=$ac_status
+ fi
+   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_run
+@@ -1898,7 +1907,7 @@ ac_fn_c_check_header_compile ()
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$3+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -1916,7 +1925,7 @@ fi
+ eval ac_res=\$$3
+ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ 
+ } # ac_fn_c_check_header_compile
+ 
+@@ -1929,7 +1938,7 @@ ac_fn_c_check_member ()
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+ $as_echo_n "checking for $2.$3... " >&6; }
+-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$4+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -1973,7 +1982,7 @@ fi
+ eval ac_res=\$$4
+ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ 
+ } # ac_fn_c_check_member
+ 
+@@ -1986,7 +1995,7 @@ ac_fn_c_check_type ()
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$3+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$3=no"
+@@ -2027,7 +2036,7 @@ fi
+ eval ac_res=\$$3
+ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ 
+ } # ac_fn_c_check_type
+ 
+@@ -2039,7 +2048,7 @@ ac_fn_c_check_func ()
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ $as_echo_n "checking for $2... " >&6; }
+-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${$3+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -2094,7 +2103,7 @@ fi
+ eval ac_res=\$$3
+ 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ 
+ } # ac_fn_c_check_func
+ 
+@@ -2139,7 +2148,7 @@ fi
+   # interfere with the next link command; also delete a directory that is
+   # left behind by Apple's compiler.  We do this before executing the actions.
+   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_cxx_try_link
+@@ -2147,8 +2156,8 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ 
+-It was created by Valgrind $as_me 3.8.1, which was
+-generated by GNU Autoconf 2.65.  Invocation command line was
++It was created by Valgrind $as_me 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013, which was
++generated by GNU Autoconf 2.68.  Invocation command line was
+ 
+   $ $0 $@
+ 
+@@ -2258,11 +2267,9 @@ trap 'exit_status=$?
+   {
+     echo
+ 
+-    cat <<\_ASBOX
+-## ---------------- ##
++    $as_echo "## ---------------- ##
+ ## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
++## ---------------- ##"
+     echo
+     # The following way of writing the cache mishandles newlines in values,
+ (
+@@ -2296,11 +2303,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ )
+     echo
+ 
+-    cat <<\_ASBOX
+-## ----------------- ##
++    $as_echo "## ----------------- ##
+ ## Output variables. ##
+-## ----------------- ##
+-_ASBOX
++## ----------------- ##"
+     echo
+     for ac_var in $ac_subst_vars
+     do
+@@ -2313,11 +2318,9 @@ _ASBOX
+     echo
+ 
+     if test -n "$ac_subst_files"; then
+-      cat <<\_ASBOX
+-## ------------------- ##
++      $as_echo "## ------------------- ##
+ ## File substitutions. ##
+-## ------------------- ##
+-_ASBOX
++## ------------------- ##"
+       echo
+       for ac_var in $ac_subst_files
+       do
+@@ -2331,11 +2334,9 @@ _ASBOX
+     fi
+ 
+     if test -s confdefs.h; then
+-      cat <<\_ASBOX
+-## ----------- ##
++      $as_echo "## ----------- ##
+ ## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
++## ----------- ##"
+       echo
+       cat confdefs.h
+       echo
+@@ -2390,7 +2391,12 @@ _ACEOF
+ ac_site_file1=NONE
+ ac_site_file2=NONE
+ if test -n "$CONFIG_SITE"; then
+-  ac_site_file1=$CONFIG_SITE
++  # We do not want a PATH search for config.site.
++  case $CONFIG_SITE in #((
++    -*)  ac_site_file1=./$CONFIG_SITE;;
++    */*) ac_site_file1=$CONFIG_SITE;;
++    *)   ac_site_file1=./$CONFIG_SITE;;
++  esac
+ elif test "x$prefix" != xNONE; then
+   ac_site_file1=$prefix/share/config.site
+   ac_site_file2=$prefix/etc/config.site
+@@ -2405,7 +2411,11 @@ do
+     { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
+     sed 's/^/| /' "$ac_site_file" >&5
+-    . "$ac_site_file"
++    . "$ac_site_file" \
++      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "failed to load site script $ac_site_file
++See \`config.log' for more details" "$LINENO" 5; }
+   fi
+ done
+ 
+@@ -2484,7 +2494,7 @@ if $ac_cache_corrupted; then
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+   { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+ $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
++  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ fi
+ ## -------------------- ##
+ ## Main body of script. ##
+@@ -2504,16 +2514,22 @@ am__api_version='1.11'
+ 
+ ac_aux_dir=
+ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+-  for ac_t in install-sh install.sh shtool; do
+-    if test -f "$ac_dir/$ac_t"; then
+-      ac_aux_dir=$ac_dir
+-      ac_install_sh="$ac_aux_dir/$ac_t -c"
+-      break 2
+-    fi
+-  done
++  if test -f "$ac_dir/install-sh"; then
++    ac_aux_dir=$ac_dir
++    ac_install_sh="$ac_aux_dir/install-sh -c"
++    break
++  elif test -f "$ac_dir/install.sh"; then
++    ac_aux_dir=$ac_dir
++    ac_install_sh="$ac_aux_dir/install.sh -c"
++    break
++  elif test -f "$ac_dir/shtool"; then
++    ac_aux_dir=$ac_dir
++    ac_install_sh="$ac_aux_dir/shtool install -c"
++    break
++  fi
+ done
+ if test -z "$ac_aux_dir"; then
+-  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
++  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+ fi
+ 
+ # These three variables are undocumented and unsupported,
+@@ -2542,7 +2558,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+ $as_echo_n "checking for a BSD-compatible install... " >&6; }
+ if test -z "$INSTALL"; then
+-if test "${ac_cv_path_install+set}" = set; then :
++if ${ac_cv_path_install+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+@@ -2629,11 +2645,11 @@ am_lf='
+ '
+ case `pwd` in
+   *[\\\"\#\$\&\'\`$am_lf]*)
+-    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
++    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+ esac
+ case $srcdir in
+   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+-    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
++    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+ esac
+ 
+ # Do `set' in a subshell so we don't clobber the current shell's
+@@ -2655,7 +2671,7 @@ if (
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+-      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
++      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+    fi
+ 
+@@ -2665,7 +2681,7 @@ then
+    # Ok.
+    :
+ else
+-   as_fn_error "newly created file is older than distributed files!
++   as_fn_error $? "newly created file is older than distributed files!
+ Check your system clock" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+@@ -2719,7 +2735,7 @@ if test "$cross_compiling" != no; then
+ set dummy ${ac_tool_prefix}strip; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_STRIP+set}" = set; then :
++if ${ac_cv_prog_STRIP+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$STRIP"; then
+@@ -2759,7 +2775,7 @@ if test -z "$ac_cv_prog_STRIP"; then
+ set dummy strip; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
++if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_STRIP"; then
+@@ -2812,7 +2828,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+ $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+ if test -z "$MKDIR_P"; then
+-  if test "${ac_cv_path_mkdir+set}" = set; then :
++  if ${ac_cv_path_mkdir+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+@@ -2863,7 +2879,7 @@ do
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_AWK+set}" = set; then :
++if ${ac_cv_prog_AWK+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AWK"; then
+@@ -2903,7 +2919,7 @@ done
+ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+ set x ${MAKE-make}
+ ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.make <<\_ACEOF
+@@ -2911,7 +2927,7 @@ SHELL = /bin/sh
+ all:
+ 	@echo '@@@%%%=$(MAKE)=@@@%%%'
+ _ACEOF
+-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+ case `${MAKE-make} -f conftest.make 2>/dev/null` in
+   *@@@%%%=?*=@@@%%%*)
+     eval ac_cv_prog_make_${ac_make}_set=yes;;
+@@ -2945,7 +2961,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
+   am__isrc=' -I$(srcdir)'
+   # test to see if srcdir already configured
+   if test -f $srcdir/config.status; then
+-    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
++    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+   fi
+ fi
+ 
+@@ -2961,7 +2977,7 @@ fi
+ 
+ # Define the identity of the package.
+  PACKAGE='valgrind'
+- VERSION='3.8.1'
++ VERSION='3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013'
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+@@ -3052,7 +3068,7 @@ if test -n "$ac_tool_prefix"; then
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then :
++if ${ac_cv_prog_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+@@ -3092,7 +3108,7 @@ if test -z "$ac_cv_prog_CC"; then
+ set dummy gcc; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_CC"; then
+@@ -3145,7 +3161,7 @@ if test -z "$CC"; then
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then :
++if ${ac_cv_prog_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+@@ -3185,7 +3201,7 @@ if test -z "$CC"; then
+ set dummy cc; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then :
++if ${ac_cv_prog_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+@@ -3244,7 +3260,7 @@ if test -z "$CC"; then
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CC+set}" = set; then :
++if ${ac_cv_prog_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+@@ -3288,7 +3304,7 @@ do
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_CC"; then
+@@ -3342,8 +3358,8 @@ fi
+ 
+ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "no acceptable C compiler found in \$PATH
++See \`config.log' for more details" "$LINENO" 5; }
+ 
+ # Provide some information about the compiler.
+ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+@@ -3457,9 +3473,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ as_fn_set_status 77
+-as_fn_error "C compiler cannot create executables
+-See \`config.log' for more details." "$LINENO" 5; }; }
++as_fn_error 77 "C compiler cannot create executables
++See \`config.log' for more details" "$LINENO" 5; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+@@ -3501,8 +3516,8 @@ done
+ else
+   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "cannot compute suffix of executables: cannot compile and link
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ rm -f conftest conftest$ac_cv_exeext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+@@ -3559,9 +3574,9 @@ $as_echo "$ac_try_echo"; } >&5
+     else
+ 	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "cannot run C compiled programs.
++as_fn_error $? "cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." "$LINENO" 5; }
++See \`config.log' for more details" "$LINENO" 5; }
+     fi
+   fi
+ fi
+@@ -3572,7 +3587,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ ac_clean_files=$ac_clean_files_save
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+ $as_echo_n "checking for suffix of object files... " >&6; }
+-if test "${ac_cv_objext+set}" = set; then :
++if ${ac_cv_objext+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -3612,8 +3627,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "cannot compute suffix of object files: cannot compile
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+@@ -3623,7 +3638,7 @@ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+ $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
++if ${ac_cv_c_compiler_gnu+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -3660,7 +3675,7 @@ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+ $as_echo_n "checking whether $CC accepts -g... " >&6; }
+-if test "${ac_cv_prog_cc_g+set}" = set; then :
++if ${ac_cv_prog_cc_g+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_save_c_werror_flag=$ac_c_werror_flag
+@@ -3738,7 +3753,7 @@ else
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+ $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+-if test "${ac_cv_prog_cc_c89+set}" = set; then :
++if ${ac_cv_prog_cc_c89+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_prog_cc_c89=no
+@@ -3899,7 +3914,7 @@ depcc="$CC"   am_compiler_list=
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+ $as_echo_n "checking dependency style of $depcc... " >&6; }
+-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
++if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+@@ -4031,7 +4046,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+ fi
+ set dummy $CC; ac_cc=`$as_echo "$2" |
+ 		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+-if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
++if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -4160,7 +4175,7 @@ if test -n "$CPP" && test -d "$CPP"; then
+   CPP=
+ fi
+ if test -z "$CPP"; then
+-  if test "${ac_cv_prog_CPP+set}" = set; then :
++  if ${ac_cv_prog_CPP+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+       # Double quotes because CPP needs to be expanded
+@@ -4190,7 +4205,7 @@ else
+   # Broken: fails on valid input.
+ continue
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ 
+   # OK, works on sane cases.  Now check whether nonexistent headers
+   # can be detected and how.
+@@ -4206,11 +4221,11 @@ else
+ ac_preproc_ok=:
+ break
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ 
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.i conftest.err conftest.$ac_ext
+ if $ac_preproc_ok; then :
+   break
+ fi
+@@ -4249,7 +4264,7 @@ else
+   # Broken: fails on valid input.
+ continue
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ 
+   # OK, works on sane cases.  Now check whether nonexistent headers
+   # can be detected and how.
+@@ -4265,18 +4280,18 @@ else
+ ac_preproc_ok=:
+ break
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.err conftest.i conftest.$ac_ext
+ 
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.i conftest.err conftest.$ac_ext
+ if $ac_preproc_ok; then :
+ 
+ else
+   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error "C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." "$LINENO" 5; }
++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ 
+ ac_ext=c
+@@ -4301,7 +4316,7 @@ if test -z "$CXX"; then
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_CXX+set}" = set; then :
++if ${ac_cv_prog_CXX+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CXX"; then
+@@ -4345,7 +4360,7 @@ do
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
++if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_CXX"; then
+@@ -4423,7 +4438,7 @@ done
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+ $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
++if ${ac_cv_cxx_compiler_gnu+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -4460,7 +4475,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set}
+ ac_save_CXXFLAGS=$CXXFLAGS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+ $as_echo_n "checking whether $CXX accepts -g... " >&6; }
+-if test "${ac_cv_prog_cxx_g+set}" = set; then :
++if ${ac_cv_prog_cxx_g+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+@@ -4546,7 +4561,7 @@ depcc="$CXX"  am_compiler_list=
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+ $as_echo_n "checking dependency style of $depcc... " >&6; }
+-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
++if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+@@ -4687,7 +4702,7 @@ if test -n "$ac_tool_prefix"; then
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_RANLIB+set}" = set; then :
++if ${ac_cv_prog_RANLIB+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$RANLIB"; then
+@@ -4727,7 +4742,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
+ set dummy ranlib; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
++if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_RANLIB"; then
+@@ -4779,7 +4794,7 @@ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+ $as_echo_n "checking for a sed that does not truncate output... " >&6; }
+-if test "${ac_cv_path_SED+set}" = set; then :
++if ${ac_cv_path_SED+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+@@ -4834,7 +4849,7 @@ esac
+   done
+ IFS=$as_save_IFS
+   if test -z "$ac_cv_path_SED"; then
+-    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
++    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+   fi
+ else
+   ac_cv_path_SED=$SED
+@@ -4856,7 +4871,7 @@ do
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_path_AR+set}" = set; then :
++if ${ac_cv_path_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   case $AR in
+@@ -4901,7 +4916,7 @@ fi
+ 
+ # Check for the compiler support
+ if test "${GCC}" != "yes" ; then
+-   as_fn_error "Valgrind relies on GCC to be compiled" "$LINENO" 5
++   as_fn_error $? "Valgrind relies on GCC to be compiled" "$LINENO" 5
+ fi
+ 
+ # figure out where perl lives
+@@ -4909,7 +4924,7 @@ fi
+ set dummy perl; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_path_PERL+set}" = set; then :
++if ${ac_cv_path_PERL+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   case $PERL in
+@@ -4951,7 +4966,7 @@ fi
+ set dummy gdb; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+-if test "${ac_cv_path_GDB+set}" = set; then :
++if ${ac_cv_path_GDB+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   case $GDB in
+@@ -5006,7 +5021,7 @@ depcc="$CCAS"   am_compiler_list=
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+ $as_echo_n "checking dependency style of $depcc... " >&6; }
+-if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then :
++if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+@@ -5199,7 +5214,7 @@ $as_echo "ok (clang-${gcc_version})" >&6; }
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no (${gcc_version})" >&5
+ $as_echo "no (${gcc_version})" >&6; }
+-	as_fn_error "please use gcc >= 3.0 or clang >= 2.9" "$LINENO" 5
++	as_fn_error $? "please use gcc >= 3.0 or clang >= 2.9" "$LINENO" 5
+ 	;;
+ esac
+ 
+@@ -5213,27 +5228,27 @@ esac
+ 
+ # Make sure we can run config.sub.
+ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+-  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
++  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+ $as_echo_n "checking build system type... " >&6; }
+-if test "${ac_cv_build+set}" = set; then :
++if ${ac_cv_build+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_build_alias=$build_alias
+ test "x$ac_build_alias" = x &&
+   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ test "x$ac_build_alias" = x &&
+-  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
++  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+-  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
++  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ 
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+ $as_echo "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
++*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+ esac
+ build=$ac_cv_build
+ ac_save_IFS=$IFS; IFS='-'
+@@ -5251,14 +5266,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+ $as_echo_n "checking host system type... " >&6; }
+-if test "${ac_cv_host+set}" = set; then :
++if ${ac_cv_host+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test "x$host_alias" = x; then
+   ac_cv_host=$ac_cv_build
+ else
+   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+-    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
++    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ fi
+ 
+ fi
+@@ -5266,7 +5281,7 @@ fi
+ $as_echo "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
++*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+ esac
+ host=$ac_cv_host
+ ac_save_IFS=$IFS; IFS='-'
+@@ -5349,7 +5364,7 @@ $as_echo "ok (${host_cpu})" >&6; }
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no (${host_cpu})" >&5
+ $as_echo "no (${host_cpu})" >&6; }
+-	as_fn_error "Unsupported host architecture. Sorry" "$LINENO" 5
++	as_fn_error $? "Unsupported host architecture. Sorry" "$LINENO" 5
+ 	;;
+ esac
+ 
+@@ -5366,7 +5381,7 @@ esac
+ # Check if a 64-bit only build has been requested
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a 64-bit only build" >&5
+ $as_echo_n "checking for a 64-bit only build... " >&6; }
+-if test "${vg_cv_only64bit+set}" = set; then :
++if ${vg_cv_only64bit+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   # Check whether --enable-only64bit was given.
+@@ -5383,7 +5398,7 @@ $as_echo "$vg_cv_only64bit" >&6; }
+ # Check if a 32-bit only build has been requested
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a 32-bit only build" >&5
+ $as_echo_n "checking for a 32-bit only build... " >&6; }
+-if test "${vg_cv_only32bit+set}" = set; then :
++if ${vg_cv_only32bit+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   # Check whether --enable-only32bit was given.
+@@ -5399,7 +5414,7 @@ $as_echo "$vg_cv_only32bit" >&6; }
+ 
+ # Stay sane
+ if test x$vg_cv_only64bit = xyes -a x$vg_cv_only32bit = xyes; then
+-   as_fn_error "Nonsensical: both --enable-only64bit and --enable-only32bit." "$LINENO" 5
++   as_fn_error $? "Nonsensical: both --enable-only64bit and --enable-only32bit." "$LINENO" 5
+ fi
+ 
+ #----------------------------------------------------------------------------
+@@ -5445,7 +5460,7 @@ $as_echo "#define KERNEL_2_4 1" >>confdefs.h
+              *)
+         	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported (${kernel})" >&5
+ $as_echo "unsupported (${kernel})" >&6; }
+-        	    as_fn_error "Valgrind works on kernels 2.4, 2.6" "$LINENO" 5
++        	    as_fn_error $? "Valgrind works on kernels 2.4, 2.6" "$LINENO" 5
+         	    ;;
+         esac
+ 
+@@ -5528,7 +5543,7 @@ $as_echo "#define DARWIN_VERS DARWIN_10_8" >>confdefs.h
+              *)
+ 		  { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported (${kernel})" >&5
+ $as_echo "unsupported (${kernel})" >&6; }
+-		  as_fn_error "Valgrind works on Darwin 10.x and 11.x (Mac OS X 10.6/7)" "$LINENO" 5
++		  as_fn_error $? "Valgrind works on Darwin 10.x and 11.x (Mac OS X 10.6/7)" "$LINENO" 5
+ 		  ;;
+ 	esac
+         ;;
+@@ -5536,7 +5551,7 @@ $as_echo "unsupported (${kernel})" >&6; }
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no (${host_os})" >&5
+ $as_echo "no (${host_os})" >&6; }
+-	as_fn_error "Valgrind is operating system specific. Sorry." "$LINENO" 5
++	as_fn_error $? "Valgrind is operating system specific. Sorry." "$LINENO" 5
+ 	;;
+ esac
+ 
+@@ -5584,7 +5599,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ esac
+ 
+ if test x$vg_cv_only64bit = xyes -a x$vg_cv_only32bit = xyes; then
+-   as_fn_error "--enable-only32bit was specified but system does not support 32 bit builds" "$LINENO" 5
++   as_fn_error $? "--enable-only32bit was specified but system does not support 32 bit builds" "$LINENO" 5
+ fi
+ 
+ #----------------------------------------------------------------------------
+@@ -5804,7 +5819,7 @@ $as_echo "ok (${host_cpu}-${host_os})" >&6; }
+         valt_load_address_sec_inner="0xUNSET"
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (${ARCH_MAX}-${VGCONF_OS})" >&5
+ $as_echo "no (${ARCH_MAX}-${VGCONF_OS})" >&6; }
+-        as_fn_error "Valgrind is platform specific. Sorry. Please consider doing a port." "$LINENO" 5
++        as_fn_error $? "Valgrind is platform specific. Sorry. Please consider doing a port." "$LINENO" 5
+         ;;
+ esac
+ 
+@@ -6006,7 +6021,7 @@ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for use as an inner Valgrind" >&5
+ $as_echo_n "checking for use as an inner Valgrind... " >&6; }
+-if test "${vg_cv_inner+set}" = set; then :
++if ${vg_cv_inner+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   # Check whether --enable-inner was given.
+@@ -6095,7 +6110,7 @@ $as_echo "checking for shared memory alignment... 2*PAGE_SIZE" >&6; }
+ elif test "$mod" = "0"; then
+     if test $align -lt $psz;
+     then
+-        as_fn_error "Alignment must be >= PAGE_SIZE" "$LINENO" 5
++        as_fn_error $? "Alignment must be >= PAGE_SIZE" "$LINENO" 5
+     else
+ 
+ cat >>confdefs.h <<_ACEOF
+@@ -6106,7 +6121,7 @@ _ACEOF
+ $as_echo "checking for shared memory alignment... ${align}" >&6; }
+     fi
+ else
+-    as_fn_error "Alignment % 1024 must be zero" "$LINENO" 5
++    as_fn_error $? "Alignment % 1024 must be zero" "$LINENO" 5
+ fi
+ 
+ 
+@@ -6137,7 +6152,7 @@ _ACEOF
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+ $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+-if test "${ac_cv_path_GREP+set}" = set; then :
++if ${ac_cv_path_GREP+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$GREP"; then
+@@ -6186,7 +6201,7 @@ esac
+   done
+ IFS=$as_save_IFS
+   if test -z "$ac_cv_path_GREP"; then
+-    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+   fi
+ else
+   ac_cv_path_GREP=$GREP
+@@ -6200,7 +6215,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+ $as_echo_n "checking for egrep... " >&6; }
+-if test "${ac_cv_path_EGREP+set}" = set; then :
++if ${ac_cv_path_EGREP+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+@@ -6252,7 +6267,7 @@ esac
+   done
+ IFS=$as_save_IFS
+   if test -z "$ac_cv_path_EGREP"; then
+-    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+   fi
+ else
+   ac_cv_path_EGREP=$EGREP
+@@ -6267,7 +6282,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+ $as_echo_n "checking for ANSI C header files... " >&6; }
+-if test "${ac_cv_header_stdc+set}" = set; then :
++if ${ac_cv_header_stdc+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -6384,8 +6399,7 @@ do :
+   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ "
+-eval as_val=\$$as_ac_Header
+-   if test "x$as_val" = x""yes; then :
++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+@@ -6396,7 +6410,7 @@ done
+ 
+ 
+ ac_fn_c_check_header_mongrel "$LINENO" "features.h" "ac_cv_header_features_h" "$ac_includes_default"
+-if test "x$ac_cv_header_features_h" = x""yes; then :
++if test "x$ac_cv_header_features_h" = xyes; then :
+ 
+ fi
+ 
+@@ -6624,8 +6638,8 @@ $as_echo "#define BIONIC_LIBC 1" >>confdefs.h
+      *)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
+ $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
+-	as_fn_error "Valgrind requires glibc version 2.2 - 2.16" "$LINENO" 5
+-	as_fn_error "or Darwin libc" "$LINENO" 5
++	as_fn_error $? "Valgrind requires glibc version 2.2 - 2.16" "$LINENO" 5
++	as_fn_error $? "or Darwin libc" "$LINENO" 5
+ 	;;
+ esac
+ 
+@@ -6948,7 +6962,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 
+ ac_fn_c_check_member "$LINENO" "pthread_mutex_t" "__m_kind" "ac_cv_member_pthread_mutex_t___m_kind" "#include <pthread.h>
+ "
+-if test "x$ac_cv_member_pthread_mutex_t___m_kind" = x""yes; then :
++if test "x$ac_cv_member_pthread_mutex_t___m_kind" = xyes; then :
+ 
+ $as_echo "#define HAVE_PTHREAD_MUTEX_T__M_KIND 1" >>confdefs.h
+ 
+@@ -6961,7 +6975,7 @@ fi
+ 
+ ac_fn_c_check_member "$LINENO" "pthread_mutex_t" "__data.__kind" "ac_cv_member_pthread_mutex_t___data___kind" "#include <pthread.h>
+ "
+-if test "x$ac_cv_member_pthread_mutex_t___data___kind" = x""yes; then :
++if test "x$ac_cv_member_pthread_mutex_t___data___kind" = xyes; then :
+ 
+ $as_echo "#define HAVE_PTHREAD_MUTEX_T__DATA__KIND 1" >>confdefs.h
+ 
+@@ -7078,6 +7092,62 @@ else
+ fi
+ 
+ 
++# Check for SPE:
++# Does this compiler support -mspe?
++# Can we include the header <spe.h>?
++# Can we compile SPE instructions?
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPE" >&5
++$as_echo_n "checking for SPE... " >&6; }
++
++safe_CFLAGS=$CFLAGS
++CFLAGS="-mspe"
++
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++#include <spe.h>
++
++int
++main ()
++{
++
++  __ev64_u16__ s = (__ev64_u16__) { 0xdead, 0xbeef, 0xdead, 0xbeef };
++  __ev64_u16__ t = (__ev64_u16__) { 0xffff, 0xffff, 0xffff, 0xffff };
++
++  t = __ev_ldd (&s, 0);
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++ac_have_spe=yes
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAS_SPE 1" >>confdefs.h
++
++
++else
++
++ac_have_spe=no
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS=$safe_CFLAGS
++
++ if test x$ac_have_spe = xyes; then
++  HAS_SPE_TRUE=
++  HAS_SPE_FALSE='#'
++else
++  HAS_SPE_TRUE='#'
++  HAS_SPE_FALSE=
++fi
++
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking that assembler knows DFP" >&5
+ $as_echo_n "checking that assembler knows DFP... " >&6; }
+@@ -8445,7 +8515,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ # Cross-compiling: check whether linking a program using TLS succeeds.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS support" >&5
+ $as_echo_n "checking for TLS support... " >&6; }
+-if test "${vg_cv_tls+set}" = set; then :
++if ${vg_cv_tls+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   # Check whether --enable-tls was given.
+@@ -8494,7 +8564,7 @@ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+ $as_echo_n "checking for ANSI C header files... " >&6; }
+-if test "${ac_cv_header_stdc+set}" = set; then :
++if ${ac_cv_header_stdc+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -8622,8 +8692,7 @@ for ac_header in        \
+ do :
+   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+-eval as_val=\$$as_ac_Header
+-   if test "x$as_val" = x""yes; then :
++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+@@ -8675,7 +8744,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ #----------------------------------------------------------------------------
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+ $as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+-if test "${ac_cv_type_uid_t+set}" = set; then :
++if ${ac_cv_type_uid_t+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -8704,7 +8773,7 @@ $as_echo "#define gid_t int" >>confdefs.h
+ fi
+ 
+ ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+-if test "x$ac_cv_type_off_t" = x""yes; then :
++if test "x$ac_cv_type_off_t" = xyes; then :
+ 
+ else
+ 
+@@ -8715,7 +8784,7 @@ _ACEOF
+ fi
+ 
+ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+-if test "x$ac_cv_type_size_t" = x""yes; then :
++if test "x$ac_cv_type_size_t" = xyes; then :
+ 
+ else
+ 
+@@ -8727,7 +8796,7 @@ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
+ $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
+-if test "${ac_cv_header_time+set}" = set; then :
++if ${ac_cv_header_time+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -8767,7 +8836,7 @@ fi
+ #----------------------------------------------------------------------------
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5
+ $as_echo_n "checking for working memcmp... " >&6; }
+-if test "${ac_cv_func_memcmp_working+set}" = set; then :
++if ${ac_cv_func_memcmp_working+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then :
+@@ -8835,8 +8904,7 @@ do :
+   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ "
+-eval as_val=\$$as_ac_Header
+-   if test "x$as_val" = x""yes; then :
++if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+@@ -8855,7 +8923,7 @@ done
+ for ac_func in getpagesize
+ do :
+   ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+-if test "x$ac_cv_func_getpagesize" = x""yes; then :
++if test "x$ac_cv_func_getpagesize" = xyes; then :
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_GETPAGESIZE 1
+ _ACEOF
+@@ -8865,7 +8933,7 @@ done
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
+ $as_echo_n "checking for working mmap... " >&6; }
+-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
++if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then :
+@@ -9032,7 +9100,7 @@ rm -f conftest.mmap conftest.txt
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
+ $as_echo_n "checking for pthread_create in -lpthread... " >&6; }
+-if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then :
++if ${ac_cv_lib_pthread_pthread_create+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+@@ -9066,7 +9134,7 @@ LIBS=$ac_check_lib_save_LIBS
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
+ $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
+-if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then :
++if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then :
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_LIBPTHREAD 1
+ _ACEOF
+@@ -9077,7 +9145,7 @@ fi
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
+ $as_echo_n "checking for clock_gettime in -lrt... " >&6; }
+-if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then :
++if ${ac_cv_lib_rt_clock_gettime+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+@@ -9111,7 +9179,7 @@ LIBS=$ac_check_lib_save_LIBS
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
+ $as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
+-if test "x$ac_cv_lib_rt_clock_gettime" = x""yes; then :
++if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_LIBRT 1
+ _ACEOF
+@@ -9156,8 +9224,7 @@ for ac_func in      \
+ do :
+   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+-eval as_val=\$$as_ac_var
+-   if test "x$as_val" = x""yes; then :
++if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+@@ -9989,10 +10056,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      :end' >>confcache
+ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+   if test -w "$cache_file"; then
+-    test "x$cache_file" != "x/dev/null" &&
++    if test "x$cache_file" != "x/dev/null"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+ $as_echo "$as_me: updating cache $cache_file" >&6;}
+-    cat confcache >$cache_file
++      if test ! -f "$cache_file" || test -h "$cache_file"; then
++	cat confcache >"$cache_file"
++      else
++        case $cache_file in #(
++        */* | ?:*)
++	  mv -f confcache "$cache_file"$$ &&
++	  mv -f "$cache_file"$$ "$cache_file" ;; #(
++        *)
++	  mv -f confcache "$cache_file" ;;
++	esac
++      fi
++    fi
+   else
+     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+@@ -10008,6 +10086,7 @@ DEFS=-DHAVE_CONFIG_H
+ 
+ ac_libobjs=
+ ac_ltlibobjs=
++U=
+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+   # 1. Remove the extension, and $U if already installed.
+   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+@@ -10031,223 +10110,227 @@ else
+ fi
+ 
+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+-  as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
++  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+-  as_fn_error "conditional \"AMDEP\" was never defined.
++  as_fn_error $? "conditional \"AMDEP\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-  as_fn_error "conditional \"am__fastdepCC\" was never defined.
++  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+-  as_fn_error "conditional \"am__fastdepCXX\" was never defined.
++  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
+-  as_fn_error "conditional \"am__fastdepCCAS\" was never defined.
++  as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_X86_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_X86_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_X86\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_X86\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_AMD64_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_AMD64_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_AMD64\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_AMD64\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_PPC32_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_PPC32_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_PPC32\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_PPC32\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_PPC64_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_PPC64_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_PPC64\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_PPC64\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_ARM_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_ARM_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_ARM\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_ARM\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_S390X_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_S390X_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_S390X\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_S390X\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_ARCHS_INCLUDE_MIPS32_TRUE}" && test -z "${VGCONF_ARCHS_INCLUDE_MIPS32_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_ARCHS_INCLUDE_MIPS32\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_ARCHS_INCLUDE_MIPS32\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_X86_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_X86_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_X86_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_X86_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_ARM_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_ARM_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_ARM_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_S390X_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_S390X_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_S390X_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_S390X_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_MIPS32_LINUX_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_MIPS32_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_MIPS32_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_MIPS32_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_X86_DARWIN_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_X86_DARWIN_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_X86_DARWIN\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_X86_DARWIN\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATFORMS_INCLUDE_AMD64_DARWIN_TRUE}" && test -z "${VGCONF_PLATFORMS_INCLUDE_AMD64_DARWIN_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATFORMS_INCLUDE_AMD64_DARWIN\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATFORMS_INCLUDE_AMD64_DARWIN\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_OS_IS_LINUX_TRUE}" && test -z "${VGCONF_OS_IS_LINUX_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_OS_IS_LINUX\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_OS_IS_LINUX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_OS_IS_DARWIN_TRUE}" && test -z "${VGCONF_OS_IS_DARWIN_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_OS_IS_DARWIN\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_OS_IS_DARWIN\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_HAVE_PLATFORM_SEC_TRUE}" && test -z "${VGCONF_HAVE_PLATFORM_SEC_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_HAVE_PLATFORM_SEC\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_HAVE_PLATFORM_SEC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATVARIANT_IS_VANILLA_TRUE}" && test -z "${VGCONF_PLATVARIANT_IS_VANILLA_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATVARIANT_IS_VANILLA\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATVARIANT_IS_VANILLA\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${VGCONF_PLATVARIANT_IS_ANDROID_TRUE}" && test -z "${VGCONF_PLATVARIANT_IS_ANDROID_FALSE}"; then
+-  as_fn_error "conditional \"VGCONF_PLATVARIANT_IS_ANDROID\" was never defined.
++  as_fn_error $? "conditional \"VGCONF_PLATVARIANT_IS_ANDROID\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAS_ALTIVEC_TRUE}" && test -z "${HAS_ALTIVEC_FALSE}"; then
+-  as_fn_error "conditional \"HAS_ALTIVEC\" was never defined.
++  as_fn_error $? "conditional \"HAS_ALTIVEC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAS_VSX_TRUE}" && test -z "${HAS_VSX_FALSE}"; then
+-  as_fn_error "conditional \"HAS_VSX\" was never defined.
++  as_fn_error $? "conditional \"HAS_VSX\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
++if test -z "${HAS_SPE_TRUE}" && test -z "${HAS_SPE_FALSE}"; then
++  as_fn_error $? "conditional \"HAS_SPE\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAS_DFP_TRUE}" && test -z "${HAS_DFP_FALSE}"; then
+-  as_fn_error "conditional \"HAS_DFP\" was never defined.
++  as_fn_error $? "conditional \"HAS_DFP\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_PTHREAD_CREATE_GLIBC_2_0_TRUE}" && test -z "${HAVE_PTHREAD_CREATE_GLIBC_2_0_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_PTHREAD_CREATE_GLIBC_2_0\" was never defined.
++  as_fn_error $? "conditional \"HAVE_PTHREAD_CREATE_GLIBC_2_0\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${DWARF4_TRUE}" && test -z "${DWARF4_FALSE}"; then
+-  as_fn_error "conditional \"DWARF4\" was never defined.
++  as_fn_error $? "conditional \"DWARF4\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_SSE3_TESTS_TRUE}" && test -z "${BUILD_SSE3_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_SSE3_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_SSE3_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_SSSE3_TESTS_TRUE}" && test -z "${BUILD_SSSE3_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_SSSE3_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_SSSE3_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_PCLMULQDQ_TESTS_TRUE}" && test -z "${BUILD_PCLMULQDQ_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_PCLMULQDQ_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_PCLMULQDQ_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_VPCLMULQDQ_TESTS_TRUE}" && test -z "${BUILD_VPCLMULQDQ_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_VPCLMULQDQ_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_VPCLMULQDQ_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_LZCNT_TESTS_TRUE}" && test -z "${BUILD_LZCNT_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_LZCNT_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_LZCNT_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_SSE42_TESTS_TRUE}" && test -z "${BUILD_SSE42_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_SSE42_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_SSE42_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_AVX_TESTS_TRUE}" && test -z "${BUILD_AVX_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_AVX_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_AVX_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_MOVBE_TESTS_TRUE}" && test -z "${BUILD_MOVBE_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_MOVBE_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_MOVBE_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_IFUNC_TESTS_TRUE}" && test -z "${BUILD_IFUNC_TESTS_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_IFUNC_TESTS\" was never defined.
++  as_fn_error $? "conditional \"BUILD_IFUNC_TESTS\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_PTHREAD_BARRIER_TRUE}" && test -z "${HAVE_PTHREAD_BARRIER_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_PTHREAD_BARRIER\" was never defined.
++  as_fn_error $? "conditional \"HAVE_PTHREAD_BARRIER\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_PTHREAD_MUTEX_TIMEDLOCK_TRUE}" && test -z "${HAVE_PTHREAD_MUTEX_TIMEDLOCK_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_PTHREAD_MUTEX_TIMEDLOCK\" was never defined.
++  as_fn_error $? "conditional \"HAVE_PTHREAD_MUTEX_TIMEDLOCK\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_PTHREAD_SPINLOCK_TRUE}" && test -z "${HAVE_PTHREAD_SPINLOCK_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_PTHREAD_SPINLOCK\" was never defined.
++  as_fn_error $? "conditional \"HAVE_PTHREAD_SPINLOCK\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_MPIWRAP_PRI_TRUE}" && test -z "${BUILD_MPIWRAP_PRI_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_MPIWRAP_PRI\" was never defined.
++  as_fn_error $? "conditional \"BUILD_MPIWRAP_PRI\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${BUILD_MPIWRAP_SEC_TRUE}" && test -z "${BUILD_MPIWRAP_SEC_FALSE}"; then
+-  as_fn_error "conditional \"BUILD_MPIWRAP_SEC\" was never defined.
++  as_fn_error $? "conditional \"BUILD_MPIWRAP_SEC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_BOOST_1_35_TRUE}" && test -z "${HAVE_BOOST_1_35_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_BOOST_1_35\" was never defined.
++  as_fn_error $? "conditional \"HAVE_BOOST_1_35\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_OPENMP_TRUE}" && test -z "${HAVE_OPENMP_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_OPENMP\" was never defined.
++  as_fn_error $? "conditional \"HAVE_OPENMP\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_BUILTIN_ATOMIC_TRUE}" && test -z "${HAVE_BUILTIN_ATOMIC_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_BUILTIN_ATOMIC\" was never defined.
++  as_fn_error $? "conditional \"HAVE_BUILTIN_ATOMIC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_BUILTIN_ATOMIC_SECONDARY_TRUE}" && test -z "${HAVE_BUILTIN_ATOMIC_SECONDARY_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_BUILTIN_ATOMIC_SECONDARY\" was never defined.
++  as_fn_error $? "conditional \"HAVE_BUILTIN_ATOMIC_SECONDARY\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_BUILTIN_ATOMIC64_TRUE}" && test -z "${HAVE_BUILTIN_ATOMIC64_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_BUILTIN_ATOMIC64\" was never defined.
++  as_fn_error $? "conditional \"HAVE_BUILTIN_ATOMIC64\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_BUILTIN_ATOMIC_CXX_TRUE}" && test -z "${HAVE_BUILTIN_ATOMIC_CXX_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_BUILTIN_ATOMIC_CXX\" was never defined.
++  as_fn_error $? "conditional \"HAVE_BUILTIN_ATOMIC_CXX\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${ENABLE_LINUX_TICKET_LOCK_PRIMARY_TRUE}" && test -z "${ENABLE_LINUX_TICKET_LOCK_PRIMARY_FALSE}"; then
+-  as_fn_error "conditional \"ENABLE_LINUX_TICKET_LOCK_PRIMARY\" was never defined.
++  as_fn_error $? "conditional \"ENABLE_LINUX_TICKET_LOCK_PRIMARY\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${ENABLE_LINUX_TICKET_LOCK_SECONDARY_TRUE}" && test -z "${ENABLE_LINUX_TICKET_LOCK_SECONDARY_FALSE}"; then
+-  as_fn_error "conditional \"ENABLE_LINUX_TICKET_LOCK_SECONDARY\" was never defined.
++  as_fn_error $? "conditional \"ENABLE_LINUX_TICKET_LOCK_SECONDARY\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ if test -z "${HAVE_SHARED_POINTER_ANNOTATION_TRUE}" && test -z "${HAVE_SHARED_POINTER_ANNOTATION_FALSE}"; then
+-  as_fn_error "conditional \"HAVE_SHARED_POINTER_ANNOTATION\" was never defined.
++  as_fn_error $? "conditional \"HAVE_SHARED_POINTER_ANNOTATION\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
+ 
+-: ${CONFIG_STATUS=./config.status}
++: "${CONFIG_STATUS=./config.status}"
+ ac_write_fail=0
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+@@ -10348,6 +10431,7 @@ fi
+ IFS=" ""	$as_nl"
+ 
+ # Find who we are.  Look in the path if we contain no directory separator.
++as_myself=
+ case $0 in #((
+   *[\\/]* ) as_myself=$0 ;;
+   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+@@ -10393,19 +10477,19 @@ export LANGUAGE
+ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+ 
+ 
+-# as_fn_error ERROR [LINENO LOG_FD]
+-# ---------------------------------
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
+ # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+ # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+-# script with status $?, using 1 if that was 0.
++# script with STATUS, using 1 if that was 0.
+ as_fn_error ()
+ {
+-  as_status=$?; test $as_status -eq 0 && as_status=1
+-  if test "$3"; then
+-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
++  as_status=$1; test $as_status -eq 0 && as_status=1
++  if test "$4"; then
++    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+   fi
+-  $as_echo "$as_me: error: $1" >&2
++  $as_echo "$as_me: error: $2" >&2
+   as_fn_exit $as_status
+ } # as_fn_error
+ 
+@@ -10601,7 +10685,7 @@ $as_echo X"$as_dir" |
+       test -d "$as_dir" && break
+     done
+     test -z "$as_dirs" || eval "mkdir $as_dirs"
+-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
++  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+ 
+ 
+ } # as_fn_mkdir_p
+@@ -10654,8 +10738,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by Valgrind $as_me 3.8.1, which was
+-generated by GNU Autoconf 2.65.  Invocation command line was
++This file was extended by Valgrind $as_me 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013, which was
++generated by GNU Autoconf 2.68.  Invocation command line was
+ 
+   CONFIG_FILES    = $CONFIG_FILES
+   CONFIG_HEADERS  = $CONFIG_HEADERS
+@@ -10714,17 +10798,17 @@ $config_headers
+ Configuration commands:
+ $config_commands
+ 
+-Report bugs to <valgrind-users at lists.sourceforge.net>."
++Report bugs to <support at freescale.com>."
+ 
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-Valgrind config.status 3.8.1
+-configured by $0, generated by GNU Autoconf 2.65,
++Valgrind config.status 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
++configured by $0, generated by GNU Autoconf 2.68,
+   with options \\"\$ac_cs_config\\"
+ 
+-Copyright (C) 2009 Free Software Foundation, Inc.
++Copyright (C) 2010 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+ 
+@@ -10742,11 +10826,16 @@ ac_need_defaults=:
+ while test $# != 0
+ do
+   case $1 in
+-  --*=*)
++  --*=?*)
+     ac_option=`expr "X$1" : 'X\([^=]*\)='`
+     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+     ac_shift=:
+     ;;
++  --*=)
++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
++    ac_optarg=
++    ac_shift=:
++    ;;
+   *)
+     ac_option=$1
+     ac_optarg=$2
+@@ -10768,6 +10857,7 @@ do
+     $ac_shift
+     case $ac_optarg in
+     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    '') as_fn_error $? "missing file argument" ;;
+     esac
+     as_fn_append CONFIG_FILES " '$ac_optarg'"
+     ac_need_defaults=false;;
+@@ -10780,7 +10870,7 @@ do
+     ac_need_defaults=false;;
+   --he | --h)
+     # Conflict between --help and --header
+-    as_fn_error "ambiguous option: \`$1'
++    as_fn_error $? "ambiguous option: \`$1'
+ Try \`$0 --help' for more information.";;
+   --help | --hel | -h )
+     $as_echo "$ac_cs_usage"; exit ;;
+@@ -10789,7 +10879,7 @@ Try \`$0 --help' for more information.";;
+     ac_cs_silent=: ;;
+ 
+   # This is an error.
+-  -*) as_fn_error "unrecognized option: \`$1'
++  -*) as_fn_error $? "unrecognized option: \`$1'
+ Try \`$0 --help' for more information." ;;
+ 
+   *) as_fn_append ac_config_targets " $1"
+@@ -10916,7 +11006,7 @@ do
+     "coregrind/link_tool_exe_linux") CONFIG_FILES="$CONFIG_FILES coregrind/link_tool_exe_linux" ;;
+     "coregrind/link_tool_exe_darwin") CONFIG_FILES="$CONFIG_FILES coregrind/link_tool_exe_darwin" ;;
+ 
+-  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
++  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+   esac
+ done
+ 
+@@ -10939,9 +11029,10 @@ fi
+ # after its creation but before its name has been assigned to `$tmp'.
+ $debug ||
+ {
+-  tmp=
++  tmp= ac_tmp=
+   trap 'exit_status=$?
+-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
++  : "${ac_tmp:=$tmp}"
++  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+ ' 0
+   trap 'as_fn_exit 1' 1 2 13 15
+ }
+@@ -10949,12 +11040,13 @@ $debug ||
+ 
+ {
+   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+-  test -n "$tmp" && test -d "$tmp"
++  test -d "$tmp"
+ }  ||
+ {
+   tmp=./conf$$-$RANDOM
+   (umask 077 && mkdir "$tmp")
+-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
++ac_tmp=$tmp
+ 
+ # Set up the scripts for CONFIG_FILES section.
+ # No need to generate them if there are no CONFIG_FILES.
+@@ -10971,12 +11063,12 @@ if test "x$ac_cr" = x; then
+ fi
+ ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+ if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+-  ac_cs_awk_cr='\r'
++  ac_cs_awk_cr='\\r'
+ else
+   ac_cs_awk_cr=$ac_cr
+ fi
+ 
+-echo 'BEGIN {' >"$tmp/subs1.awk" &&
++echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+ _ACEOF
+ 
+ 
+@@ -10985,18 +11077,18 @@ _ACEOF
+   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+   echo "_ACEOF"
+ } >conf$$subs.sh ||
+-  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
++  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+   . ./conf$$subs.sh ||
+-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
++    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ 
+   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+   if test $ac_delim_n = $ac_delim_num; then
+     break
+   elif $ac_last_try; then
+-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
++    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+   else
+     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+   fi
+@@ -11004,7 +11096,7 @@ done
+ rm -f conf$$subs.sh
+ 
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
++cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+ _ACEOF
+ sed -n '
+ h
+@@ -11052,7 +11144,7 @@ t delim
+ rm -f conf$$subs.awk
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ _ACAWK
+-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
++cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+   for (key in S) S_is_set[key] = 1
+   FS = ""
+ 
+@@ -11084,21 +11176,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+ else
+   cat
+-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+-  || as_fn_error "could not setup config files machinery" "$LINENO" 5
++fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
++  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+ _ACEOF
+ 
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
++# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+ # trailing colons and then remove the whole line if VPATH becomes empty
+ # (actually we leave an empty line to preserve line numbers).
+ if test "x$srcdir" = x.; then
+-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+-s/:*\$(srcdir):*/:/
+-s/:*\${srcdir}:*/:/
+-s/:*@srcdir@:*/:/
+-s/^\([^=]*=[	 ]*\):*/\1/
++  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
++h
++s///
++s/^/:/
++s/[	 ]*$/:/
++s/:\$(srcdir):/:/g
++s/:\${srcdir}:/:/g
++s/:@srcdir@:/:/g
++s/^:*//
+ s/:*$//
++x
++s/\(=[	 ]*\).*/\1/
++G
++s/\n//
+ s/^[^=]*=[	 ]*$//
+ }'
+ fi
+@@ -11110,7 +11210,7 @@ fi # test -n "$CONFIG_FILES"
+ # No need to generate them if there are no CONFIG_HEADERS.
+ # This happens for instance with `./config.status Makefile'.
+ if test -n "$CONFIG_HEADERS"; then
+-cat >"$tmp/defines.awk" <<\_ACAWK ||
++cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+ BEGIN {
+ _ACEOF
+ 
+@@ -11122,11 +11222,11 @@ _ACEOF
+ # handling of long lines.
+ ac_delim='%!_!# '
+ for ac_last_try in false false :; do
+-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+-  if test -z "$ac_t"; then
++  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
++  if test -z "$ac_tt"; then
+     break
+   elif $ac_last_try; then
+-    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
++    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+   else
+     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+   fi
+@@ -11211,7 +11311,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ _ACAWK
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+-  as_fn_error "could not setup config headers machinery" "$LINENO" 5
++  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+ fi # test -n "$CONFIG_HEADERS"
+ 
+ 
+@@ -11224,7 +11324,7 @@ do
+   esac
+   case $ac_mode$ac_tag in
+   :[FHL]*:*);;
+-  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
++  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+   :[FH]-) ac_tag=-:-;;
+   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+   esac
+@@ -11243,7 +11343,7 @@ do
+     for ac_f
+     do
+       case $ac_f in
+-      -) ac_f="$tmp/stdin";;
++      -) ac_f="$ac_tmp/stdin";;
+       *) # Look for the file first in the build tree, then in the source tree
+ 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+ 	 # because $ac_f cannot contain `:'.
+@@ -11252,7 +11352,7 @@ do
+ 	   [\\/$]*) false;;
+ 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ 	   esac ||
+-	   as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
++	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+       esac
+       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+       as_fn_append ac_file_inputs " '$ac_f'"
+@@ -11278,8 +11378,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
+     esac
+ 
+     case $ac_tag in
+-    *:-:* | *:-) cat >"$tmp/stdin" \
+-      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
++    *:-:* | *:-) cat >"$ac_tmp/stdin" \
++      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+     esac
+     ;;
+   esac
+@@ -11415,23 +11515,24 @@ s&@INSTALL@&$ac_INSTALL&;t t
+ s&@MKDIR_P@&$ac_MKDIR_P&;t t
+ $ac_datarootdir_hack
+ "
+-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+-  || as_fn_error "could not create $ac_file" "$LINENO" 5
++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
++  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ 
+ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
++  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
++      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined.  Please make sure it is defined." >&5
++which seems to be undefined.  Please make sure it is defined" >&5
+ $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+-which seems to be undefined.  Please make sure it is defined." >&2;}
++which seems to be undefined.  Please make sure it is defined" >&2;}
+ 
+-  rm -f "$tmp/stdin"
++  rm -f "$ac_tmp/stdin"
+   case $ac_file in
+-  -) cat "$tmp/out" && rm -f "$tmp/out";;
+-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
++  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
++  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+   esac \
+-  || as_fn_error "could not create $ac_file" "$LINENO" 5
++  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+  ;;
+   :H)
+   #
+@@ -11440,21 +11541,21 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
+   if test x"$ac_file" != x-; then
+     {
+       $as_echo "/* $configure_input  */" \
+-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+-    } >"$tmp/config.h" \
+-      || as_fn_error "could not create $ac_file" "$LINENO" 5
+-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
++      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
++    } >"$ac_tmp/config.h" \
++      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
++    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+ $as_echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       rm -f "$ac_file"
+-      mv "$tmp/config.h" "$ac_file" \
+-	|| as_fn_error "could not create $ac_file" "$LINENO" 5
++      mv "$ac_tmp/config.h" "$ac_file" \
++	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+     fi
+   else
+     $as_echo "/* $configure_input  */" \
+-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+-      || as_fn_error "could not create -" "$LINENO" 5
++      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
++      || as_fn_error $? "could not create -" "$LINENO" 5
+   fi
+ # Compute "$ac_file"'s index in $config_headers.
+ _am_arg="$ac_file"
+@@ -11606,7 +11707,7 @@ _ACEOF
+ ac_clean_files=$ac_clean_files_save
+ 
+ test $ac_write_fail = 0 ||
+-  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
++  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ 
+ 
+ # configure is writing to config.log, and then calls config.status.
+@@ -11627,7 +11728,7 @@ if test "$no_create" != yes; then
+   exec 5>>config.log
+   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+   # would make configure fail if this is the last instruction.
+-  $ac_cs_success || as_fn_exit $?
++  $ac_cs_success || as_fn_exit 1
+ fi
+ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+diff --git a/docs/callgrind_annotate.1 b/docs/callgrind_annotate.1
+deleted file mode 100644
+index e1a43db..0000000
+--- a/docs/callgrind_annotate.1
++++ /dev/null
+@@ -1,102 +0,0 @@
+-'\" t
+-.\"     Title: Callgrind Annotate
+-.\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2012
+-.\"    Manual: Release 3.8.0
+-.\"    Source: Release 3.8.0
+-.\"  Language: English
+-.\"
+-.TH "CALLGRIND ANNOTATE" "1" "09/18/2012" "Release 3.8.0" "Release 3.8.0"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el       .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-callgrind_annotate \- post\-processing tool for the Callgrind
+-.SH "SYNOPSIS"
+-.HP \w'\fBcallgrind_annotate\fR\ 'u
+-\fBcallgrind_annotate\fR [\fIoptions\fR] [\fIcallgrind\-out\-file\fR\ [\fIsource\-files\fR...]]
+-.SH "DESCRIPTION"
+-.PP
+-\fBcallgrind_annotate\fR
+-takes an output file produced by the Valgrind tool Callgrind and prints the information in an easy\-to\-read form\&.
+-.SH "OPTIONS"
+-.PP
+-\fB\-h \-\-help\fR
+-.RS 4
+-Show summary of options\&.
+-.RE
+-.PP
+-\fB\-\-version\fR
+-.RS 4
+-Show version of callgrind_annotate\&.
+-.RE
+-.PP
+-\fB\-\-show=A,B,C [default: all]\fR
+-.RS 4
+-Only show figures for events A,B,C\&.
+-.RE
+-.PP
+-\fB\-\-sort=A,B,C\fR
+-.RS 4
+-Sort columns by events A,B,C [event column order]\&.
+-.RE
+-.PP
+-\fB\-\-threshold=<0\-\-100> [default: 99%] \fR
+-.RS 4
+-Percentage of counts (of primary sort event) we are interested in\&.
+-.RE
+-.PP
+-\fB\-\-auto=<yes|no> [default: no] \fR
+-.RS 4
+-Annotate all source files containing functions that helped reach the event count threshold\&.
+-.RE
+-.PP
+-\fB\-\-context=N [default: 8] \fR
+-.RS 4
+-Print N lines of context before and after annotated lines\&.
+-.RE
+-.PP
+-\fB\-\-inclusive=<yes|no> [default: no] \fR
+-.RS 4
+-Add subroutine costs to functions calls\&.
+-.RE
+-.PP
+-\fB\-\-tree=<none|caller|calling|both> [default: none] \fR
+-.RS 4
+-Print for each function their callers, the called functions or both\&.
+-.RE
+-.PP
+-\fB\-I, \-\-include=<dir> \fR
+-.RS 4
+-Add
+-\fBdir\fR
+-to the list of directories to search for source files\&.
+-.RE
+-.SH "SEE ALSO"
+-.PP
+-valgrind(1),
+-$INSTALL/share/doc/valgrind/html/index\&.html
+-or
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "AUTHOR"
+-.PP
+-Josef Weidendorfer <Josef\&.Weidendorfer at gmx\&.de>\&.
+-.PP
+-This manual page was written by Philipp Frauenfelder <pfrauenf at debian\&.org>\&.
+diff --git a/docs/callgrind_control.1 b/docs/callgrind_control.1
+deleted file mode 100644
+index d0bc603..0000000
+--- a/docs/callgrind_control.1
++++ /dev/null
+@@ -1,107 +0,0 @@
+-'\" t
+-.\"     Title: Callgrind Control
+-.\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2012
+-.\"    Manual: Release 3.8.0
+-.\"    Source: Release 3.8.0
+-.\"  Language: English
+-.\"
+-.TH "CALLGRIND CONTROL" "1" "09/18/2012" "Release 3.8.0" "Release 3.8.0"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el       .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-callgrind_control \- observe and control programs being run by Callgrind
+-.SH "SYNOPSIS"
+-.HP \w'\fBcallgrind_control\fR\ 'u
+-\fBcallgrind_control\fR [\fIoptions\fR] [\fIpid|program\-name\fR...]
+-.SH "DESCRIPTION"
+-.PP
+-
+-\fBcallgrind_control\fR
+-controls programs being run by the Valgrind tool Callgrind\&. When a
+-\fBpid/program name\fR
+-argument is not specified, all applications currently being run by Callgrind on this system will be used for actions given by the specified option(s)\&. The default action is to give some brief information about the applications being run by Callgrind\&.
+-.SH "OPTIONS"
+-.PP
+-\fB\-h \-\-help\fR
+-.RS 4
+-Show a short description, usage, and summary of options\&.
+-.RE
+-.PP
+-\fB\-\-version\fR
+-.RS 4
+-Show version of callgrind_control\&.
+-.RE
+-.PP
+-\fB\-l \-\-long\fR
+-.RS 4
+-Show also the working directory, in addition to the brief information given by default\&.
+-.RE
+-.PP
+-\fB\-s \-\-stat\fR
+-.RS 4
+-Show statistics information about active Callgrind runs\&.
+-.RE
+-.PP
+-\fB\-b \-\-back\fR
+-.RS 4
+-Show stack/back traces of each thread in active Callgrind runs\&. For each active function in the stack trace, also the number of invocations since program start (or last dump) is shown\&. This option can be combined with \-e to show inclusive cost of active functions\&.
+-.RE
+-.PP
+-\fB\-e [A,B,\&.\&.\&.] \fR (default: all)
+-.RS 4
+-Show the current per\-thread, exclusive cost values of event counters\&. If no explicit event names are given, figures for all event types which are collected in the given Callgrind run are shown\&. Otherwise, only figures for event types A, B, \&.\&.\&. are shown\&. If this option is combined with \-b, inclusive cost for the functions of each active stack frame is provided, too\&.
+-.RE
+-.PP
+-\fB\-\-dump[=<desc>] \fR (default: no description)
+-.RS 4
+-Request the dumping of profile information\&. Optionally, a description can be specified which is written into the dump as part of the information giving the reason which triggered the dump action\&. This can be used to distinguish multiple dumps\&.
+-.RE
+-.PP
+-\fB\-z \-\-zero\fR
+-.RS 4
+-Zero all event counters\&.
+-.RE
+-.PP
+-\fB\-k \-\-kill\fR
+-.RS 4
+-Force a Callgrind run to be terminated\&.
+-.RE
+-.PP
+-\fB\-\-instr=<on|off>\fR
+-.RS 4
+-Switch instrumentation mode on or off\&. If a Callgrind run has instrumentation disabled, no simulation is done and no events are counted\&. This is useful to skip uninteresting program parts, as there is much less slowdown (same as with the Valgrind tool "none")\&. See also the Callgrind option
+-\fB\-\-instr\-atstart\fR\&.
+-.RE
+-.PP
+-\fB\-w=<dir>\fR
+-.RS 4
+-Specify the startup directory of an active Callgrind run\&. On some systems, active Callgrind runs can not be detected\&. To be able to control these, the failed auto\-detection can be worked around by specifying the directory where a Callgrind run was started\&.
+-.RE
+-.SH "SEE ALSO"
+-.PP
+-valgrind(1),
+-$INSTALL/share/doc/valgrind/html/index\&.html
+-or
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "AUTHOR"
+-.PP
+-Josef Weidendorfer <Josef\&.Weidendorfer at gmx\&.de>\&.
+diff --git a/docs/cg_annotate.1 b/docs/cg_annotate.1
+deleted file mode 100644
+index e146488..0000000
+--- a/docs/cg_annotate.1
++++ /dev/null
+@@ -1,99 +0,0 @@
+-'\" t
+-.\"     Title: cg_annotate
+-.\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2012
+-.\"    Manual: Release 3.8.0
+-.\"    Source: Release 3.8.0
+-.\"  Language: English
+-.\"
+-.TH "CG_ANNOTATE" "1" "09/18/2012" "Release 3.8.0" "Release 3.8.0"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el       .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-cg_annotate \- post\-processing tool for Cachegrind
+-.SH "SYNOPSIS"
+-.HP \w'\fBcg_annotate\fR\ 'u
+-\fBcg_annotate\fR [\fIoptions\fR] \fIcachegrind\-out\-file\fR [\fIsource\-files\fR...]
+-.SH "DESCRIPTION"
+-.PP
+-\fBcg_annotate\fR
+-takes an output file produced by the Valgrind tool Cachegrind and prints the information in an easy\-to\-read form\&.
+-.SH "OPTIONS"
+-.PP
+-\fB\-h \-\-help \fR
+-.RS 4
+-Show the help message\&.
+-.RE
+-.PP
+-\fB\-\-version \fR
+-.RS 4
+-Show the version number\&.
+-.RE
+-.PP
+-\fB\-\-show=A,B,C [default: all, using order in cachegrind\&.out\&.<pid>] \fR
+-.RS 4
+-Specifies which events to show (and the column order)\&. Default is to use all present in the
+-cachegrind\&.out\&.<pid>
+-file (and use the order in the file)\&. Useful if you want to concentrate on, for example, I cache misses (\fB\-\-show=I1mr,ILmr\fR), or data read misses (\fB\-\-show=D1mr,DLmr\fR), or LL data misses (\fB\-\-show=DLmr,DLmw\fR)\&. Best used in conjunction with
+-\fB\-\-sort\fR\&.
+-.RE
+-.PP
+-\fB\-\-sort=A,B,C [default: order in cachegrind\&.out\&.<pid>] \fR
+-.RS 4
+-Specifies the events upon which the sorting of the function\-by\-function entries will be based\&.
+-.RE
+-.PP
+-\fB\-\-threshold=X [default: 0\&.1%] \fR
+-.RS 4
+-Sets the threshold for the function\-by\-function summary\&. A function is shown if it accounts for more than X% of the counts for the primary sort event\&. If auto\-annotating, also affects which files are annotated\&.
+-.sp
+-Note: thresholds can be set for more than one of the events by appending any events for the
+-\fB\-\-sort\fR
+-option with a colon and a number (no spaces, though)\&. E\&.g\&. if you want to see each function that covers more than 1% of LL read misses or 1% of LL write misses, use this option:
+-.sp
+-\fB\-\-sort=DLmr:1,DLmw:1\fR
+-.RE
+-.PP
+-\fB\-\-auto=<no|yes> [default: no] \fR
+-.RS 4
+-When enabled, automatically annotates every file that is mentioned in the function\-by\-function summary that can be found\&. Also gives a list of those that couldn\*(Aqt be found\&.
+-.RE
+-.PP
+-\fB\-\-context=N [default: 8] \fR
+-.RS 4
+-Print N lines of context before and after each annotated line\&. Avoids printing large sections of source files that were not executed\&. Use a large number (e\&.g\&. 100000) to show all source lines\&.
+-.RE
+-.PP
+-\fB\-I<dir> \-\-include=<dir> [default: none] \fR
+-.RS 4
+-Adds a directory to the list in which to search for files\&. Multiple
+-\fB\-I\fR/\fB\-\-include\fR
+-options can be given to add multiple directories\&.
+-.RE
+-.SH "SEE ALSO"
+-.PP
+-valgrind(1),
+-$INSTALL/share/doc/valgrind/html/index\&.html
+-or
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "AUTHOR"
+-.PP
+-Nicholas Nethercote\&.
+diff --git a/docs/html/FAQ.html b/docs/html/FAQ.html
+deleted file mode 100644
+index f06da0d..0000000
+--- a/docs/html/FAQ.html
++++ /dev/null
+@@ -1,51 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind FAQ</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="nl-manual.html" title="14. Nulgrind: the minimal Valgrind tool">
+-<link rel="next" href="faq.html" title="Valgrind Frequently Asked Questions">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="nl-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="faq.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="Valgrind FAQ">
+-<div class="titlepage">
+-<div>
+-<div><h1 class="title">
+-<a name="FAQ"></a>Valgrind FAQ</h1></div>
+-<div><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div><p class="copyright">Copyright © 2000-2012 <a class="ulink" href="http://www.valgrind.org/info/developers.html" target="_top">Valgrind Developers</a></p></div>
+-<div><div class="legalnotice" title="Legal Notice">
+-<a name="id558921"></a><p>Email: <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a></p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl><dt><span class="article"><a href="faq.html">Valgrind Frequently Asked Questions</a></span></dt></dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="nl-manual.html"><< 14. Nulgrind: the minimal Valgrind tool</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="faq.html">Valgrind Frequently Asked Questions >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/QuickStart.html b/docs/html/QuickStart.html
+deleted file mode 100644
+index f7a36f5..0000000
+--- a/docs/html/QuickStart.html
++++ /dev/null
+@@ -1,61 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>The Valgrind Quick Start Guide</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="index.html" title="Valgrind Documentation">
+-<link rel="next" href="quick-start.html" title="The Valgrind Quick Start Guide">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="index.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="quick-start.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="The Valgrind Quick Start Guide">
+-<div class="titlepage">
+-<div>
+-<div><h1 class="title">
+-<a name="QuickStart"></a>The Valgrind Quick Start Guide</h1></div>
+-<div><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div><p class="copyright">Copyright © 2000-2012 <a class="ulink" href="http://www.valgrind.org/info/developers.html" target="_top">Valgrind Developers</a></p></div>
+-<div><div class="legalnotice" title="Legal Notice">
+-<a name="id574210"></a><p>Email: <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a></p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="article"><a href="quick-start.html">The Valgrind Quick Start Guide</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.intro">1. Introduction</a></span></dt>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.prepare">2. Preparing your program</a></span></dt>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.mcrun">3. Running your program under Memcheck</a></span></dt>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.interpret">4. Interpreting Memcheck's output</a></span></dt>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.caveats">5. Caveats</a></span></dt>
+-<dt><span class="sect1"><a href="quick-start.html#quick-start.info">6. More information</a></span></dt>
+-</dl></dd>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="index.html"><< Valgrind Documentation</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="quick-start.html">The Valgrind Quick Start Guide >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/bbv-manual.html b/docs/html/bbv-manual.html
+deleted file mode 100644
+index 9c215b7..0000000
+--- a/docs/html/bbv-manual.html
++++ /dev/null
+@@ -1,366 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>12. BBV: an experimental basic block vector generation tool</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="sg-manual.html" title="11. SGCheck: an experimental stack and global array overrun detector">
+-<link rel="next" href="lk-manual.html" title="13. Lackey: an example tool">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="sg-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="lk-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="12. BBV: an experimental basic block vector generation tool">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="bbv-manual"></a>12. BBV: an experimental basic block vector generation tool</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.overview">12.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.quickstart">12.2. Using Basic Block Vectors to create SimPoints</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.usage">12.3. BBV Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.fileformat">12.4. Basic Block Vector File Format</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.implementation">12.5. Implementation</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.threadsupport">12.6. Threaded Executable Support</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.validation">12.7. Validation</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.performance">12.8. Performance</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=exp-bbv</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="12.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.overview"></a>12.1. Overview</h2></div></div></div>
+-<p>
+-   A basic block is a linear section of code with one entry point and one exit
+-   point.  A <span class="emphasis"><em>basic block vector</em></span> (BBV) is a list of all
+-   basic blocks entered during program execution, and a count of how many
+-   times each basic block was run.
+-</p>
+-<p>
+-   BBV is a tool that generates basic block vectors for use with the 
+-   <a class="ulink" href="http://www.cse.ucsd.edu/~calder/simpoint/" target="_top">SimPoint</a>
+-   analysis tool. 
+-   The SimPoint methodology enables speeding up architectural 
+-   simulations by only running a small portion of a program
+-   and then extrapolating total behavior from this
+-   small portion.  Most programs exhibit phase-based behavior, which
+-   means that at various times during execution a program will encounter 
+-   intervals of time where the code behaves similarly to a previous
+-   interval.  If you can detect these intervals and group them together, 
+-   an approximation of the total program behavior can be obtained
+-   by only simulating a bare minimum number of intervals, and then scaling 
+-   the results.
+-</p>
+-<p>
+-  In computer architecture research, running a 
+-  benchmark on a cycle-accurate simulator can cause slowdowns on the order
+-  of 1000 times, making it take days, weeks, or even longer to run full
+-  benchmarks.  By utilizing SimPoint this can be reduced significantly,
+-  usually by 90-95%, while still retaining reasonable accuracy.
+-</p>
+-<p>
+-   A more complete introduction to how SimPoint works can be 
+-   found in the paper "Automatically Characterizing Large Scale 
+-   Program Behavior" by T. Sherwood, E. Perelman, G. Hamerly, and 
+-   B. Calder.  
+-</p>
+-</div>
+-<div class="sect1" title="12.2. Using Basic Block Vectors to create SimPoints">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.quickstart"></a>12.2. Using Basic Block Vectors to create SimPoints</h2></div></div></div>
+-<p>
+-   To quickly create a basic block vector file, you will call Valgrind
+-   like this:
+-
+-   </p>
+-<pre class="programlisting">valgrind --tool=exp-bbv /bin/ls</pre>
+-<p>
+-
+-   In this case we are running on <code class="filename">/bin/ls</code>,
+-   but this can be any program.  By default a file called
+-   <code class="computeroutput">bb.out.PID</code> will be created,
+-   where PID is replaced by the process ID of the running process.
+-   This file contains the basic block vector.  For long-running programs
+-   this file can be quite large, so it might be wise to compress
+-   it with gzip or some other compression program.
+-</p>
+-<p>
+-   To create actual SimPoint results, you will need the SimPoint utility,
+-   available from the 
+-   <a class="ulink" href="http://www.cse.ucsd.edu/~calder/simpoint/" target="_top">SimPoint webpage</a>.
+-   Assuming you have downloaded SimPoint 3.2 and compiled it,
+-   create SimPoint results with a command like the following:
+-      
+-   </p>
+-<pre class="programlisting">
+-./SimPoint.3.2/bin/simpoint -inputVectorsGzipped \
+-    -loadFVFile bb.out.1234.gz \
+-    -k 5 -saveSimpoints results.simpts \
+-    -saveSimpointWeights results.weights</pre>
+-<p>
+-
+-   where bb.out.1234.gz is your compressed basic block vector file
+-   generated by BBV.
+-</p>
+-<p>   
+-   The SimPoint utility does random linear projection using 15-dimensions,
+-   then does k-mean clustering to calculate which intervals are 
+-   of interest.  In this example we specify 5 intervals with the 
+-   -k 5 option.   
+-</p>
+-<p>   
+-   The outputs from the SimPoint run are the 
+-   <code class="computeroutput">results.simpts</code>
+-   and <code class="computeroutput">results.weights</code> files.
+-   The first holds the 5 most relevant intervals of the program.
+-   The seconds holds the weight to scale each interval by when
+-   extrapolating full-program behavior.  The intervals and the weights
+-   can be used in conjunction with a simulator that supports
+-   fast-forwarding; you fast-forward to the interval of interest,
+-   collect stats for the desired interval length, then use
+-   statistics gathered in conjunction with the weights to 
+-   calculate your results.
+-</p>
+-</div>
+-<div class="sect1" title="12.3. BBV Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.usage"></a>12.3. BBV Command-line Options</h2></div></div></div>
+-<p> BBV-specific command-line options are:</p>
+-<div class="variablelist">
+-<a name="bbv.opts.list"></a><dl>
+-<dt>
+-<a name="opt.bb-out-file"></a><span class="term">
+-        <code class="option">--bb-out-file=<name> [default: bb.out.%p] </code>
+-     </span>
+-</dt>
+-<dd><p>
+-           This option selects the name of the basic block vector file.  The
+-           <code class="option">%p</code> and <code class="option">%q</code> format specifiers can be
+-           used to embed the process ID and/or the contents of an environment
+-           variable in the name, as is the case for the core option
+-           <code class="option"><a class="xref" href="manual-core.html#opt.log-file">--log-file</a></code>.
+-        </p></dd>
+-<dt>
+-<a name="opt.pc-out-file"></a><span class="term">
+-        <code class="option">--pc-out-file=<name> [default: pc.out.%p] </code>
+-     </span>
+-</dt>
+-<dd><p>
+-           This option selects the name of the PC file.  
+-           This file holds program counter addresses
+-           and function name info for the various basic blocks.
+-           This can be used in conjunction
+-           with the basic block vector file to fast-forward via function names
+-           instead of just instruction counts.  The 
+-           <code class="option">%p</code> and <code class="option">%q</code> format specifiers can be
+-           used to embed the process ID and/or the contents of an environment
+-           variable in the name, as is the case for the core option
+-           <code class="option"><a class="xref" href="manual-core.html#opt.log-file">--log-file</a></code>.
+-        </p></dd>
+-<dt>
+-<a name="opt.interval-size"></a><span class="term">
+-        <code class="option">--interval-size=<number> [default: 100000000] </code>
+-      </span>
+-</dt>
+-<dd><p>
+-         This option selects the size of the interval to use.  
+-         The default is 100 
+-         million instructions, which is a commonly used value.  
+-         Other sizes can be used; smaller intervals can help programs
+-         with finer-grained phases.  However smaller interval size
+-         can lead to accuracy issues due to warm-up effects 
+-         (When fast-forwarding the various architectural features
+-         will be un-initialized, and it will take some number
+-         of instructions before they "warm up" to the state a 
+-         full simulation would be at without the fast-forwarding.
+-         Large interval sizes tend to mitigate this.)
+-      </p></dd>
+-<dt>
+-<a name="opt.instr-count-only"></a><span class="term">
+-        <code class="option">--instr-count-only [default: no] </code>
+-     </span>
+-</dt>
+-<dd><p>
+-           This option tells the tool to only display instruction count
+-           totals, and to not generate the actual basic block vector file.
+-           This is useful for debugging, and for gathering instruction count
+-           info without generating the large basic block vector files.
+-        </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="12.4. Basic Block Vector File Format">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.fileformat"></a>12.4. Basic Block Vector File Format</h2></div></div></div>
+-<p>  
+-  The Basic Block Vector is dumped at fixed intervals.  This
+-  is commonly done every 100 million instructions; the 
+-  <code class="option">--interval-size</code> option can be 
+-  used to change this.
+-</p>
+-<p>
+-  The output file looks like this:
+-</p>
+-<pre class="programlisting">
+-T:45:1024 :189:99343
+-T:11:78573 :15:1353  :56:1
+-T:18:45 :12:135353 :56:78 314:4324263</pre>
+-<p>
+-  Each new interval starts with a T.   This is followed on the same line
+-  by a series of basic block and frequency pairs, one for each
+-  basic block that was entered during the interval.  The format for
+-  each block/frequency pair is a colon, followed by a number that
+-  uniquely identifies the basic block, another colon, and then
+-  the frequency (which is the number of times the block was entered,
+-  multiplied by the number of instructions in the block).  The
+-  pairs are separated from each other by a space.
+-</p>
+-<p>
+-  The frequency count is multiplied by the number of instructions that are 
+-  in the basic block, in order to weigh the count so that instructions in 
+-  small basic blocks aren't counted as more important than instructions 
+-  in large basic blocks.
+-</p>
+-<p>
+-  The SimPoint program only processes lines that start with a "T".  All
+-  other lines are ignored.  Traditionally comments are indicated by
+-  starting a line with a "#" character.  Some other BBV generation tools,
+-  such as PinPoints, generate lines beginning with letters other than "T"
+-  to indicate more information about the program being run.  We do
+-  not generate these, as the SimPoint utility ignores them.
+-</p>
+-</div>
+-<div class="sect1" title="12.5. Implementation">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.implementation"></a>12.5. Implementation</h2></div></div></div>
+-<p>
+-   Valgrind provides all of the information necessary to create
+-   BBV files.  In the current implementation, all instructions
+-   are instrumented.  This is slower (by approximately a factor
+-   of two) than a method that instruments at the basic block level, 
+-   but there are some complications (especially with rep prefix
+-   detection) that make that method more difficult.
+-</p>
+-<p>
+-   Valgrind actually provides instrumentation at a superblock level.
+-   A superblock has one entry point but unlike basic blocks can
+-   have multiple exit points.  Once a branch occurs into the middle
+-   of a block, it is split into a new basic block.  Because
+-   Valgrind cannot produce "true" basic blocks, the generated
+-   BBV vectors will be different than those generated by other tools.
+-   In practice this does not seem to affect the accuracy of the
+-   SimPoint results.  We do internally force the
+-   <code class="option">--vex-guest-chase-thresh=0</code>
+-   option to Valgrind which forces a more basic-block-like
+-   behavior.
+-</p>
+-<p>
+-   When a superblock is run for the first time, it is instrumented
+-   with our BBV routine.  A block info (bbInfo) structure is allocated
+-   which holds the various information and statistics for the block.
+-   A unique block ID is assigned to the block, and then the
+-   structure is placed into an ordered set.
+-   Then each native instruction in the block is instrumented to
+-   call an instruction counting routine with a pointer to the block
+-   info structure as an argument.
+-</p>
+-<p>
+-   At run-time, our instruction counting routines are called once
+-   per native instruction.  The relevant block info structure is accessed
+-   and the block count and total instruction count is updated.   
+-   If the total instruction count overflows the interval size 
+-   then we walk the ordered set, writing out the statistics for
+-   any block that was accessed in the interval, then resetting the
+-   block counters to zero.
+-</p>
+-<p>
+-   On the x86 and amd64 architectures the counting code has extra
+-   code to handle rep-prefixed string instructions.  This is because 
+-   actual hardware counts a rep-prefixed instruction 
+-   as one instruction, while a naive Valgrind implementation
+-   would count it as many (possibly hundreds, thousands or even millions)
+-   of instructions.  We handle rep-prefixed instructions specially,
+-   in order to make the results match those obtained with hardware performance
+-   counters.
+-</p>
+-<p>
+-   BBV also counts the fldcw instruction.  This instruction is used on 
+-   x86 machines in various ways; it is most commonly found when converting 
+-   floating point values into integers.
+-   On Pentium 4 systems the retired instruction performance
+-   counter counts this instruction as two instructions (all other 
+-   known processors only count it as one).
+-   This can affect results when using SimPoint on Pentium 4 systems.
+-   We provide the fldcw count so that users can evaluate whether it
+-   will impact their results enough to avoid using Pentium 4 machines
+-   for their experiments.  It would be possible to add an option to 
+-   this tool that mimics the double-counting so that the generated BBV
+-   files would be usable for experiments using hardware performance
+-   counters on Pentium 4 systems.
+-</p>
+-</div>
+-<div class="sect1" title="12.6. Threaded Executable Support">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.threadsupport"></a>12.6. Threaded Executable Support</h2></div></div></div>
+-<p>
+-   BBV supports threaded programs.  When a program has multiple threads,
+-   an additional basic block vector file is created for each thread (each
+-   additional file is the specified filename with the thread number
+-   appended at the end).
+-</p>
+-<p>
+-   There is no official method of using SimPoint with
+-   threaded workloads.  The most common method is to run
+-   SimPoint on each thread's results independently, and use 
+-   some method of deterministic execution to try to match the
+-   original workload.  This should be possible with the current
+-   BBV.
+-</p>
+-</div>
+-<div class="sect1" title="12.7. Validation">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.validation"></a>12.7. Validation</h2></div></div></div>
+-<p>
+-   BBV has been tested on x86, amd64, and ppc32 platforms.
+-   An earlier version of BBV was tested in detail using
+-   hardware performance counters, this work is described in a paper 
+-   from the HiPEAC'08 conference, "Using Dynamic Binary Instrumentation 
+-   to Generate Multi-Platform SimPoints: Methodology and Accuracy" by
+-   V.M. Weaver and S.A. McKee.
+-</p>
+-</div>
+-<div class="sect1" title="12.8. Performance">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="bbv-manual.performance"></a>12.8. Performance</h2></div></div></div>
+-<p>
+-  Using this program slows down execution by roughly a factor of 40
+-  over native execution.  This varies depending on the machine
+-  used and the benchmark being run.
+-  On the SPEC CPU 2000 benchmarks running on a 3.4GHz Pentium D 
+-  processor, the slowdown ranges from 24x (mcf) to 340x (vortex.2).
+-</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="sg-manual.html"><< 11. SGCheck: an experimental stack and global array overrun detector</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="lk-manual.html">13. Lackey: an example tool >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/cg-manual.html b/docs/html/cg-manual.html
+deleted file mode 100644
+index 1902a66..0000000
+--- a/docs/html/cg-manual.html
++++ /dev/null
+@@ -1,1176 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>5. Cachegrind: a cache and branch-prediction profiler</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="mc-manual.html" title="4. Memcheck: a memory error detector">
+-<link rel="next" href="cl-manual.html" title="6. Callgrind: a call-graph generating cache and branch prediction profiler">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="mc-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="cl-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="5. Cachegrind: a cache and branch-prediction profiler">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="cg-manual"></a>5. Cachegrind: a cache and branch-prediction profiler</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.overview">5.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.profile">5.2. Using Cachegrind, cg_annotate and cg_merge</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.running-cachegrind">5.2.1. Running Cachegrind</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.outputfile">5.2.2. Output File</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.running-cg_annotate">5.2.3. Running cg_annotate</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.the-output-preamble">5.2.4. The Output Preamble</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.the-global">5.2.5. The Global and Function-level Counts</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.line-by-line">5.2.6. Line-by-line Counts</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.assembler">5.2.7. Annotating Assembly Code Programs</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#ms-manual.forkingprograms">5.2.8. Forking Programs</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.warnings">5.2.9. cg_annotate Warnings</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.things-to-watch-out-for">5.2.10. Unusual Annotation Cases</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.cg_merge">5.2.11. Merging Profiles with cg_merge</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.cg_diff">5.2.12. Differencing Profiles with cg_diff</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.cgopts">5.3. Cachegrind Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.annopts">5.4. cg_annotate Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.diffopts">5.5. cg_diff Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.acting-on">5.6. Acting on Cachegrind's Information</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.sim-details">5.7. Simulation Details</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cache-sim">5.7.1. Cache Simulation Specifics</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#branch-sim">5.7.2. Branch Simulation Specifics</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.accuracy">5.7.3. Accuracy</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.impl-details">5.8. Implementation Details</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.impl-details.how-cg-works">5.8.1. How Cachegrind Works</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.impl-details.file-format">5.8.2. Cachegrind Output File Format</a></span></dt>
+-</dl></dd>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=cachegrind</code> on the
+-Valgrind command line.</p>
+-<div class="sect1" title="5.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.overview"></a>5.1. Overview</h2></div></div></div>
+-<p>Cachegrind simulates how your program interacts with a machine's cache
+-hierarchy and (optionally) branch predictor.  It simulates a machine with
+-independent first-level instruction and data caches (I1 and D1), backed by a
+-unified second-level cache (L2).  This exactly matches the configuration of
+-many modern machines.</p>
+-<p>However, some modern machines have three levels of cache.  For these
+-machines (in the cases where Cachegrind can auto-detect the cache
+-configuration) Cachegrind simulates the first-level and third-level caches.
+-The reason for this choice is that the L3 cache has the most influence on
+-runtime, as it masks accesses to main memory.  Furthermore, the L1 caches
+-often have low associativity, so simulating them can detect cases where the
+-code interacts badly with this cache (eg. traversing a matrix column-wise
+-with the row length being a power of 2).</p>
+-<p>Therefore, Cachegrind always refers to the I1, D1 and LL (last-level)
+-caches.</p>
+-<p>
+-Cachegrind gathers the following statistics (abbreviations used for each statistic
+-is given in parentheses):</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>I cache reads (<code class="computeroutput">Ir</code>,
+-    which equals the number of instructions executed),
+-    I1 cache read misses (<code class="computeroutput">I1mr</code>) and
+-    LL cache instruction read misses (<code class="computeroutput">ILmr</code>).
+-    </p></li>
+-<li class="listitem"><p>D cache reads (<code class="computeroutput">Dr</code>, which
+-    equals the number of memory reads),
+-    D1 cache read misses (<code class="computeroutput">D1mr</code>), and
+-    LL cache data read misses (<code class="computeroutput">DLmr</code>).
+-    </p></li>
+-<li class="listitem"><p>D cache writes (<code class="computeroutput">Dw</code>, which equals
+-    the number of memory writes),
+-    D1 cache write misses (<code class="computeroutput">D1mw</code>), and
+-    LL cache data write misses (<code class="computeroutput">DLmw</code>).
+-    </p></li>
+-<li class="listitem"><p>Conditional branches executed (<code class="computeroutput">Bc</code>) and
+-    conditional branches mispredicted (<code class="computeroutput">Bcm</code>).
+-    </p></li>
+-<li class="listitem"><p>Indirect branches executed (<code class="computeroutput">Bi</code>) and
+-    indirect branches mispredicted (<code class="computeroutput">Bim</code>).
+-    </p></li>
+-</ul></div>
+-<p>Note that D1 total accesses is given by
+-<code class="computeroutput">D1mr</code> +
+-<code class="computeroutput">D1mw</code>, and that LL total
+-accesses is given by <code class="computeroutput">ILmr</code> +
+-<code class="computeroutput">DLmr</code> +
+-<code class="computeroutput">DLmw</code>.
+-</p>
+-<p>These statistics are presented for the entire program and for each
+-function in the program.  You can also annotate each line of source code in
+-the program with the counts that were caused directly by it.</p>
+-<p>On a modern machine, an L1 miss will typically cost
+-around 10 cycles, an LL miss can cost as much as 200
+-cycles, and a mispredicted branch costs in the region of 10
+-to 30 cycles.  Detailed cache and branch profiling can be very useful
+-for understanding how your program interacts with the machine and thus how
+-to make it faster.</p>
+-<p>Also, since one instruction cache read is performed per
+-instruction executed, you can find out how many instructions are
+-executed per line, which can be useful for traditional profiling.</p>
+-</div>
+-<div class="sect1" title="5.2. Using Cachegrind, cg_annotate and cg_merge">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.profile"></a>5.2. Using Cachegrind, cg_annotate and cg_merge</h2></div></div></div>
+-<p>First off, as for normal Valgrind use, you probably want to
+-compile with debugging info (the
+-<code class="option">-g</code> option).  But by contrast with
+-normal Valgrind use, you probably do want to turn
+-optimisation on, since you should profile your program as it will
+-be normally run.</p>
+-<p>Then, you need to run Cachegrind itself to gather the profiling
+-information, and then run cg_annotate to get a detailed presentation of that
+-information.  As an optional intermediate step, you can use cg_merge to sum
+-together the outputs of multiple Cachegrind runs into a single file which
+-you then use as the input for cg_annotate.  Alternatively, you can use
+-cg_diff to difference the outputs of two Cachegrind runs into a signel file
+-which you then use as the input for cg_annotate.</p>
+-<div class="sect2" title="5.2.1. Running Cachegrind">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.running-cachegrind"></a>5.2.1. Running Cachegrind</h3></div></div></div>
+-<p>To run Cachegrind on a program <code class="filename">prog</code>, run:</p>
+-<pre class="screen">
+-valgrind --tool=cachegrind prog
+-</pre>
+-<p>The program will execute (slowly).  Upon completion,
+-summary statistics that look like this will be printed:</p>
+-<pre class="programlisting">
+-==31751== I   refs:      27,742,716
+-==31751== I1  misses:           276
+-==31751== LLi misses:           275
+-==31751== I1  miss rate:        0.0%
+-==31751== LLi miss rate:        0.0%
+-==31751== 
+-==31751== D   refs:      15,430,290  (10,955,517 rd + 4,474,773 wr)
+-==31751== D1  misses:        41,185  (    21,905 rd +    19,280 wr)
+-==31751== LLd misses:        23,085  (     3,987 rd +    19,098 wr)
+-==31751== D1  miss rate:        0.2% (       0.1%   +       0.4%)
+-==31751== LLd miss rate:        0.1% (       0.0%   +       0.4%)
+-==31751== 
+-==31751== LL misses:         23,360  (     4,262 rd +    19,098 wr)
+-==31751== LL miss rate:         0.0% (       0.0%   +       0.4%)</pre>
+-<p>Cache accesses for instruction fetches are summarised
+-first, giving the number of fetches made (this is the number of
+-instructions executed, which can be useful to know in its own
+-right), the number of I1 misses, and the number of LL instruction
+-(<code class="computeroutput">LLi</code>) misses.</p>
+-<p>Cache accesses for data follow. The information is similar
+-to that of the instruction fetches, except that the values are
+-also shown split between reads and writes (note each row's
+-<code class="computeroutput">rd</code> and
+-<code class="computeroutput">wr</code> values add up to the row's
+-total).</p>
+-<p>Combined instruction and data figures for the LL cache
+-follow that.  Note that the LL miss rate is computed relative to the total
+-number of memory accesses, not the number of L1 misses.  I.e.  it is
+-<code class="computeroutput">(ILmr + DLmr + DLmw) / (Ir + Dr + Dw)</code>
+-not
+-<code class="computeroutput">(ILmr + DLmr + DLmw) / (I1mr + D1mr + D1mw)</code>
+-</p>
+-<p>Branch prediction statistics are not collected by default.
+-To do so, add the option <code class="option">--branch-sim=yes</code>.</p>
+-</div>
+-<div class="sect2" title="5.2.2. Output File">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.outputfile"></a>5.2.2. Output File</h3></div></div></div>
+-<p>As well as printing summary information, Cachegrind also writes
+-more detailed profiling information to a file.  By default this file is named
+-<code class="filename">cachegrind.out.<pid></code> (where
+-<code class="filename"><pid></code> is the program's process ID), but its name
+-can be changed with the <code class="option">--cachegrind-out-file</code> option.  This
+-file is human-readable, but is intended to be interpreted by the
+-accompanying program cg_annotate, described in the next section.</p>
+-<p>The default <code class="computeroutput">.<pid></code> suffix
+-on the output file name serves two purposes.  Firstly, it means you 
+-don't have to rename old log files that you don't want to overwrite.  
+-Secondly, and more importantly, it allows correct profiling with the
+-<code class="option">--trace-children=yes</code> option of
+-programs that spawn child processes.</p>
+-<p>The output file can be big, many megabytes for large applications
+-built with full debugging information.</p>
+-</div>
+-<div class="sect2" title="5.2.3. Running cg_annotate">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.running-cg_annotate"></a>5.2.3. Running cg_annotate</h3></div></div></div>
+-<p>Before using cg_annotate,
+-it is worth widening your window to be at least 120-characters
+-wide if possible, as the output lines can be quite long.</p>
+-<p>To get a function-by-function summary, run:</p>
+-<pre class="screen">cg_annotate <filename></pre>
+-<p>on a Cachegrind output file.</p>
+-</div>
+-<div class="sect2" title="5.2.4. The Output Preamble">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.the-output-preamble"></a>5.2.4. The Output Preamble</h3></div></div></div>
+-<p>The first part of the output looks like this:</p>
+-<pre class="programlisting">
+---------------------------------------------------------------------------------
+-I1 cache:              65536 B, 64 B, 2-way associative
+-D1 cache:              65536 B, 64 B, 2-way associative
+-LL cache:              262144 B, 64 B, 8-way associative
+-Command:               concord vg_to_ucode.c
+-Events recorded:       Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw
+-Events shown:          Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw
+-Event sort order:      Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw
+-Threshold:             99%
+-Chosen for annotation:
+-Auto-annotation:       off
+-</pre>
+-<p>This is a summary of the annotation options:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>I1 cache, D1 cache, LL cache: cache configuration.  So
+-    you know the configuration with which these results were
+-    obtained.</p></li>
+-<li class="listitem"><p>Command: the command line invocation of the program
+-      under examination.</p></li>
+-<li class="listitem"><p>Events recorded: which events were recorded.</p></li>
+-<li class="listitem"><p>Events shown: the events shown, which is a subset of the events
+-   gathered.  This can be adjusted with the
+-   <code class="option">--show</code> option.</p></li>
+-<li class="listitem">
+-<p>Event sort order: the sort order in which functions are
+-    shown.  For example, in this case the functions are sorted
+-    from highest <code class="computeroutput">Ir</code> counts to
+-    lowest.  If two functions have identical
+-    <code class="computeroutput">Ir</code> counts, they will then be
+-    sorted by <code class="computeroutput">I1mr</code> counts, and
+-    so on.  This order can be adjusted with the
+-    <code class="option">--sort</code> option.</p>
+-<p>Note that this dictates the order the functions appear.
+-    It is <span class="emphasis"><em>not</em></span> the order in which the columns
+-    appear; that is dictated by the "events shown" line (and can
+-    be changed with the <code class="option">--show</code>
+-    option).</p>
+-</li>
+-<li class="listitem"><p>Threshold: cg_annotate
+-    by default omits functions that cause very low counts
+-    to avoid drowning you in information.  In this case,
+-    cg_annotate shows summaries the functions that account for
+-    99% of the <code class="computeroutput">Ir</code> counts;
+-    <code class="computeroutput">Ir</code> is chosen as the
+-    threshold event since it is the primary sort event.  The
+-    threshold can be adjusted with the
+-    <code class="option">--threshold</code>
+-    option.</p></li>
+-<li class="listitem"><p>Chosen for annotation: names of files specified
+-    manually for annotation; in this case none.</p></li>
+-<li class="listitem"><p>Auto-annotation: whether auto-annotation was requested
+-    via the <code class="option">--auto=yes</code>
+-    option. In this case no.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="5.2.5. The Global and Function-level Counts">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.the-global"></a>5.2.5. The Global and Function-level Counts</h3></div></div></div>
+-<p>Then follows summary statistics for the whole
+-program:</p>
+-<pre class="programlisting">
+---------------------------------------------------------------------------------
+-Ir         I1mr ILmr Dr         D1mr   DLmr  Dw        D1mw   DLmw
+---------------------------------------------------------------------------------
+-27,742,716  276  275 10,955,517 21,905 3,987 4,474,773 19,280 19,098  PROGRAM TOTALS</pre>
+-<p>
+-These are similar to the summary provided when Cachegrind finishes running.
+-</p>
+-<p>Then comes function-by-function statistics:</p>
+-<pre class="programlisting">
+---------------------------------------------------------------------------------
+-Ir        I1mr ILmr Dr        D1mr  DLmr  Dw        D1mw   DLmw    file:function
+---------------------------------------------------------------------------------
+-8,821,482    5    5 2,242,702 1,621    73 1,794,230      0      0  getc.c:_IO_getc
+-5,222,023    4    4 2,276,334    16    12   875,959      1      1  concord.c:get_word
+-2,649,248    2    2 1,344,810 7,326 1,385         .      .      .  vg_main.c:strcmp
+-2,521,927    2    2   591,215     0     0   179,398      0      0  concord.c:hash
+-2,242,740    2    2 1,046,612   568    22   448,548      0      0  ctype.c:tolower
+-1,496,937    4    4   630,874 9,000 1,400   279,388      0      0  concord.c:insert
+-  897,991   51   51   897,831    95    30        62      1      1  ???:???
+-  598,068    1    1   299,034     0     0   149,517      0      0  ../sysdeps/generic/lockfile.c:__flockfile
+-  598,068    0    0   299,034     0     0   149,517      0      0  ../sysdeps/generic/lockfile.c:__funlockfile
+-  598,024    4    4   213,580    35    16   149,506      0      0  vg_clientmalloc.c:malloc
+-  446,587    1    1   215,973 2,167   430   129,948 14,057 13,957  concord.c:add_existing
+-  341,760    2    2   128,160     0     0   128,160      0      0  vg_clientmalloc.c:vg_trap_here_WRAPPER
+-  320,782    4    4   150,711   276     0    56,027     53     53  concord.c:init_hash_table
+-  298,998    1    1   106,785     0     0    64,071      1      1  concord.c:create
+-  149,518    0    0   149,516     0     0         1      0      0  ???:tolower@@GLIBC_2.0
+-  149,518    0    0   149,516     0     0         1      0      0  ???:fgetc@@GLIBC_2.0
+-   95,983    4    4    38,031     0     0    34,409  3,152  3,150  concord.c:new_word_node
+-   85,440    0    0    42,720     0     0    21,360      0      0  vg_clientmalloc.c:vg_bogus_epilogue</pre>
+-<p>Each function
+-is identified by a
+-<code class="computeroutput">file_name:function_name</code> pair. If
+-a column contains only a dot it means the function never performs
+-that event (e.g. the third row shows that
+-<code class="computeroutput">strcmp()</code> contains no
+-instructions that write to memory). The name
+-<code class="computeroutput">???</code> is used if the the file name
+-and/or function name could not be determined from debugging
+-information. If most of the entries have the form
+-<code class="computeroutput">???:???</code> the program probably
+-wasn't compiled with <code class="option">-g</code>.</p>
+-<p>It is worth noting that functions will come both from
+-the profiled program (e.g. <code class="filename">concord.c</code>)
+-and from libraries (e.g. <code class="filename">getc.c</code>)</p>
+-</div>
+-<div class="sect2" title="5.2.6. Line-by-line Counts">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.line-by-line"></a>5.2.6. Line-by-line Counts</h3></div></div></div>
+-<p>There are two ways to annotate source files -- by specifying them
+-manually as arguments to cg_annotate, or with the
+-<code class="option">--auto=yes</code> option.  For example, the output from running
+-<code class="filename">cg_annotate <filename> concord.c</code> for our example
+-produces the same output as above followed by an annotated version of
+-<code class="filename">concord.c</code>, a section of which looks like:</p>
+-<pre class="programlisting">
+---------------------------------------------------------------------------------
+--- User-annotated source: concord.c
+---------------------------------------------------------------------------------
+-Ir        I1mr ILmr Dr      D1mr  DLmr  Dw      D1mw   DLmw
+-
+-        .    .    .       .     .     .       .      .      .  void init_hash_table(char *file_name, Word_Node *table[])
+-        3    1    1       .     .     .       1      0      0  {
+-        .    .    .       .     .     .       .      .      .      FILE *file_ptr;
+-        .    .    .       .     .     .       .      .      .      Word_Info *data;
+-        1    0    0       .     .     .       1      1      1      int line = 1, i;
+-        .    .    .       .     .     .       .      .      .
+-        5    0    0       .     .     .       3      0      0      data = (Word_Info *) create(sizeof(Word_Info));
+-        .    .    .       .     .     .       .      .      .
+-    4,991    0    0   1,995     0     0     998      0      0      for (i = 0; i < TABLE_SIZE; i++)
+-    3,988    1    1   1,994     0     0     997     53     52          table[i] = NULL;
+-        .    .    .       .     .     .       .      .      .
+-        .    .    .       .     .     .       .      .      .      /* Open file, check it. */
+-        6    0    0       1     0     0       4      0      0      file_ptr = fopen(file_name, "r");
+-        2    0    0       1     0     0       .      .      .      if (!(file_ptr)) {
+-        .    .    .       .     .     .       .      .      .          fprintf(stderr, "Couldn't open '%s'.\n", file_name);
+-        1    1    1       .     .     .       .      .      .          exit(EXIT_FAILURE);
+-        .    .    .       .     .     .       .      .      .      }
+-        .    .    .       .     .     .       .      .      .
+-  165,062    1    1  73,360     0     0  91,700      0      0      while ((line = get_word(data, line, file_ptr)) != EOF)
+-  146,712    0    0  73,356     0     0  73,356      0      0          insert(data->;word, data->line, table);
+-        .    .    .       .     .     .       .      .      .
+-        4    0    0       1     0     0       2      0      0      free(data);
+-        4    0    0       1     0     0       2      0      0      fclose(file_ptr);
+-        3    0    0       2     0     0       .      .      .  }</pre>
+-<p>(Although column widths are automatically minimised, a wide
+-terminal is clearly useful.)</p>
+-<p>Each source file is clearly marked
+-(<code class="computeroutput">User-annotated source</code>) as
+-having been chosen manually for annotation.  If the file was
+-found in one of the directories specified with the
+-<code class="option">-I</code>/<code class="option">--include</code> option, the directory
+-and file are both given.</p>
+-<p>Each line is annotated with its event counts.  Events not
+-applicable for a line are represented by a dot.  This is useful
+-for distinguishing between an event which cannot happen, and one
+-which can but did not.</p>
+-<p>Sometimes only a small section of a source file is
+-executed.  To minimise uninteresting output, Cachegrind only shows
+-annotated lines and lines within a small distance of annotated
+-lines.  Gaps are marked with the line numbers so you know which
+-part of a file the shown code comes from, eg:</p>
+-<pre class="programlisting">
+-(figures and code for line 704)
+--- line 704 ----------------------------------------
+--- line 878 ----------------------------------------
+-(figures and code for line 878)</pre>
+-<p>The amount of context to show around annotated lines is
+-controlled by the <code class="option">--context</code>
+-option.</p>
+-<p>To get automatic annotation, use the <code class="option">--auto=yes</code> option.
+-cg_annotate will automatically annotate every source file it can
+-find that is mentioned in the function-by-function summary.
+-Therefore, the files chosen for auto-annotation are affected by
+-the <code class="option">--sort</code> and
+-<code class="option">--threshold</code> options.  Each
+-source file is clearly marked (<code class="computeroutput">Auto-annotated
+-source</code>) as being chosen automatically.  Any
+-files that could not be found are mentioned at the end of the
+-output, eg:</p>
+-<pre class="programlisting">
+-------------------------------------------------------------------
+-The following files chosen for auto-annotation could not be found:
+-------------------------------------------------------------------
+-  getc.c
+-  ctype.c
+-  ../sysdeps/generic/lockfile.c</pre>
+-<p>This is quite common for library files, since libraries are
+-usually compiled with debugging information, but the source files
+-are often not present on a system.  If a file is chosen for
+-annotation both manually and automatically, it
+-is marked as <code class="computeroutput">User-annotated
+-source</code>. Use the
+-<code class="option">-I</code>/<code class="option">--include</code> option to tell Valgrind where
+-to look for source files if the filenames found from the debugging
+-information aren't specific enough.</p>
+-<p>Beware that cg_annotate can take some time to digest large
+-<code class="filename">cachegrind.out.<pid></code> files,
+-e.g. 30 seconds or more.  Also beware that auto-annotation can
+-produce a lot of output if your program is large!</p>
+-</div>
+-<div class="sect2" title="5.2.7. Annotating Assembly Code Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.assembler"></a>5.2.7. Annotating Assembly Code Programs</h3></div></div></div>
+-<p>Valgrind can annotate assembly code programs too, or annotate
+-the assembly code generated for your C program.  Sometimes this is
+-useful for understanding what is really happening when an
+-interesting line of C code is translated into multiple
+-instructions.</p>
+-<p>To do this, you just need to assemble your
+-<code class="computeroutput">.s</code> files with assembly-level debug
+-information.  You can use compile with the <code class="option">-S</code> to compile C/C++
+-programs to assembly code, and then assemble the assembly code files with
+-<code class="option">-g</code> to achieve this.  You can then profile and annotate the
+-assembly code source files in the same way as C/C++ source files.</p>
+-</div>
+-<div class="sect2" title="5.2.8. Forking Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.forkingprograms"></a>5.2.8. Forking Programs</h3></div></div></div>
+-<p>If your program forks, the child will inherit all the profiling data that
+-has been gathered for the parent.</p>
+-<p>If the output file format string (controlled by
+-<code class="option">--cachegrind-out-file</code>) does not contain <code class="option">%p</code>,
+-then the outputs from the parent and child will be intermingled in a single
+-output file, which will almost certainly make it unreadable by
+-cg_annotate.</p>
+-</div>
+-<div class="sect2" title="5.2.9. cg_annotate Warnings">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.annopts.warnings"></a>5.2.9. cg_annotate Warnings</h3></div></div></div>
+-<p>There are a couple of situations in which
+-cg_annotate issues warnings.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>If a source file is more recent than the
+-    <code class="filename">cachegrind.out.<pid></code> file.
+-    This is because the information in
+-    <code class="filename">cachegrind.out.<pid></code> is only
+-    recorded with line numbers, so if the line numbers change at
+-    all in the source (e.g.  lines added, deleted, swapped), any
+-    annotations will be incorrect.</p></li>
+-<li class="listitem"><p>If information is recorded about line numbers past the
+-    end of a file.  This can be caused by the above problem,
+-    i.e. shortening the source file while using an old
+-    <code class="filename">cachegrind.out.<pid></code> file.  If
+-    this happens, the figures for the bogus lines are printed
+-    anyway (clearly marked as bogus) in case they are
+-    important.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="5.2.10. Unusual Annotation Cases">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.annopts.things-to-watch-out-for"></a>5.2.10. Unusual Annotation Cases</h3></div></div></div>
+-<p>Some odd things that can occur during annotation:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>If annotating at the assembler level, you might see
+-    something like this:</p>
+-<pre class="programlisting">
+-      1    0    0  .    .    .  .    .    .          leal -12(%ebp),%eax
+-      1    0    0  .    .    .  1    0    0          movl %eax,84(%ebx)
+-      2    0    0  0    0    0  1    0    0          movl $1,-20(%ebp)
+-      .    .    .  .    .    .  .    .    .          .align 4,0x90
+-      1    0    0  .    .    .  .    .    .          movl $.LnrB,%eax
+-      1    0    0  .    .    .  1    0    0          movl %eax,-16(%ebp)</pre>
+-<p>How can the third instruction be executed twice when
+-    the others are executed only once?  As it turns out, it
+-    isn't.  Here's a dump of the executable, using
+-    <code class="computeroutput">objdump -d</code>:</p>
+-<pre class="programlisting">
+-      8048f25:       8d 45 f4                lea    0xfffffff4(%ebp),%eax
+-      8048f28:       89 43 54                mov    %eax,0x54(%ebx)
+-      8048f2b:       c7 45 ec 01 00 00 00    movl   $0x1,0xffffffec(%ebp)
+-      8048f32:       89 f6                   mov    %esi,%esi
+-      8048f34:       b8 08 8b 07 08          mov    $0x8078b08,%eax
+-      8048f39:       89 45 f0                mov    %eax,0xfffffff0(%ebp)</pre>
+-<p>Notice the extra <code class="computeroutput">mov
+-    %esi,%esi</code> instruction.  Where did this come
+-    from?  The GNU assembler inserted it to serve as the two
+-    bytes of padding needed to align the <code class="computeroutput">movl
+-    $.LnrB,%eax</code> instruction on a four-byte
+-    boundary, but pretended it didn't exist when adding debug
+-    information.  Thus when Valgrind reads the debug info it
+-    thinks that the <code class="computeroutput">movl
+-    $0x1,0xffffffec(%ebp)</code> instruction covers the
+-    address range 0x8048f2b--0x804833 by itself, and attributes
+-    the counts for the <code class="computeroutput">mov
+-    %esi,%esi</code> to it.</p>
+-</li>
+-<li class="listitem"><p>Sometimes, the same filename might be represented with
+-    a relative name and with an absolute name in different parts
+-    of the debug info, eg:
+-    <code class="filename">/home/user/proj/proj.h</code> and
+-    <code class="filename">../proj.h</code>.  In this case, if you use
+-    auto-annotation, the file will be annotated twice with the
+-    counts split between the two.</p></li>
+-<li class="listitem">
+-<p>Files with more than 65,535 lines cause difficulties
+-    for the Stabs-format debug info reader.  This is because the line
+-    number in the <code class="computeroutput">struct nlist</code>
+-    defined in <code class="filename">a.out.h</code> under Linux is only a
+-    16-bit value.  Valgrind can handle some files with more than
+-    65,535 lines correctly by making some guesses to identify
+-    line number overflows.  But some cases are beyond it, in
+-    which case you'll get a warning message explaining that
+-    annotations for the file might be incorrect.</p>
+-<p>If you are using GCC 3.1 or later, this is most likely
+-    irrelevant, since GCC switched to using the more modern DWARF2 
+-    format by default at version 3.1.  DWARF2 does not have any such
+-    limitations on line numbers.</p>
+-</li>
+-<li class="listitem"><p>If you compile some files with
+-    <code class="option">-g</code> and some without, some
+-    events that take place in a file without debug info could be
+-    attributed to the last line of a file with debug info
+-    (whichever one gets placed before the non-debug-info file in
+-    the executable).</p></li>
+-</ul></div>
+-<p>This list looks long, but these cases should be fairly
+-rare.</p>
+-</div>
+-<div class="sect2" title="5.2.11. Merging Profiles with cg_merge">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.cg_merge"></a>5.2.11. Merging Profiles with cg_merge</h3></div></div></div>
+-<p>
+-cg_merge is a simple program which
+-reads multiple profile files, as created by Cachegrind, merges them
+-together, and writes the results into another file in the same format.
+-You can then examine the merged results using
+-<code class="computeroutput">cg_annotate <filename></code>, as
+-described above.  The merging functionality might be useful if you
+-want to aggregate costs over multiple runs of the same program, or
+-from a single parallel run with multiple instances of the same
+-program.</p>
+-<p>
+-cg_merge is invoked as follows:
+-</p>
+-<pre class="programlisting">
+-cg_merge -o outputfile file1 file2 file3 ...</pre>
+-<p>
+-It reads and checks <code class="computeroutput">file1</code>, then read
+-and checks <code class="computeroutput">file2</code> and merges it into
+-the running totals, then the same with
+-<code class="computeroutput">file3</code>, etc.  The final results are
+-written to <code class="computeroutput">outputfile</code>, or to standard
+-out if no output file is specified.</p>
+-<p>
+-Costs are summed on a per-function, per-line and per-instruction
+-basis.  Because of this, the order in which the input files does not
+-matter, although you should take care to only mention each file once,
+-since any file mentioned twice will be added in twice.</p>
+-<p>
+-cg_merge does not attempt to check
+-that the input files come from runs of the same executable.  It will
+-happily merge together profile files from completely unrelated
+-programs.  It does however check that the
+-<code class="computeroutput">Events:</code> lines of all the inputs are
+-identical, so as to ensure that the addition of costs makes sense.
+-For example, it would be nonsensical for it to add a number indicating
+-D1 read references to a number from a different file indicating LL
+-write misses.</p>
+-<p>
+-A number of other syntax and sanity checks are done whilst reading the
+-inputs.  cg_merge will stop and
+-attempt to print a helpful error message if any of the input files
+-fail these checks.</p>
+-</div>
+-<div class="sect2" title="5.2.12. Differencing Profiles with cg_diff">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.cg_diff"></a>5.2.12. Differencing Profiles with cg_diff</h3></div></div></div>
+-<p>
+-cg_diff is a simple program which
+-reads two profile files, as created by Cachegrind, finds the difference
+-between them, and writes the results into another file in the same format.
+-You can then examine the merged results using
+-<code class="computeroutput">cg_annotate <filename></code>, as
+-described above.  This is very useful if you want to measure how a change to
+-a program affected its performance.
+-</p>
+-<p>
+-cg_diff is invoked as follows:
+-</p>
+-<pre class="programlisting">
+-cg_diff file1 file2</pre>
+-<p>
+-It reads and checks <code class="computeroutput">file1</code>, then read
+-and checks <code class="computeroutput">file2</code>, then computes the
+-difference (effectively <code class="computeroutput">file1</code> -
+-<code class="computeroutput">file2</code>).  The final results are written to
+-standard output.</p>
+-<p>
+-Costs are summed on a per-function basis.  Per-line costs are not summed,
+-because doing so is too difficult.  For example, consider differencing two
+-profiles, one from a single-file program A, and one from the same program A
+-where a single blank line was inserted at the top of the file.  Every single
+-per-line count has changed.  In comparison, the per-function counts have not
+-changed.  The per-function count differences are still very useful for
+-determining differences between programs.  Note that because the result is
+-the difference of two profiles, many of the counts will be negative;  this
+-indicates that the counts for the relevant function are fewer in the second
+-version than those in the first version.</p>
+-<p>
+-cg_diff does not attempt to check
+-that the input files come from runs of the same executable.  It will
+-happily merge together profile files from completely unrelated
+-programs.  It does however check that the
+-<code class="computeroutput">Events:</code> lines of all the inputs are
+-identical, so as to ensure that the addition of costs makes sense.
+-For example, it would be nonsensical for it to add a number indicating
+-D1 read references to a number from a different file indicating LL
+-write misses.</p>
+-<p>
+-A number of other syntax and sanity checks are done whilst reading the
+-inputs.  cg_diff will stop and
+-attempt to print a helpful error message if any of the input files
+-fail these checks.</p>
+-<p>
+-Sometimes you will want to compare Cachegrind profiles of two versions of a
+-program that you have sitting side-by-side.  For example, you might have
+-<code class="computeroutput">version1/prog.c</code> and
+-<code class="computeroutput">version2/prog.c</code>, where the second is
+-slightly different to the first.  A straight comparison of the two will not
+-be useful -- because functions are qualified with filenames, a function
+-<code class="function">f</code> will be listed as
+-<code class="computeroutput">version1/prog.c:f</code> for the first version but
+-<code class="computeroutput">version2/prog.c:f</code> for the second
+-version.</p>
+-<p>
+-When this happens, you can use the <code class="option">--mod-filename</code> option.
+-Its argument is a Perl search-and-replace expression that will be applied
+-to all the filenames in both Cachegrind output files.  It can be used to
+-remove minor differences in filenames.  For example, the option
+-<code class="option">--mod-filename='s/version[0-9]/versionN/'</code> will suffice for
+-this case.</p>
+-<p>
+-Similarly, sometimes compilers auto-generate certain functions and give them
+-randomized names.  For example, GCC sometimes auto-generates functions with
+-names like <code class="function">T.1234</code>, and the suffixes vary from build to
+-build.  You can use the <code class="option">--mod-funcname</code> option to remove
+-small differences like these;  it works in the same way as
+-<code class="option">--mod-filename</code>.</p>
+-</div>
+-</div>
+-<div class="sect1" title="5.3. Cachegrind Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.cgopts"></a>5.3. Cachegrind Command-line Options</h2></div></div></div>
+-<p>Cachegrind-specific options are:</p>
+-<div class="variablelist">
+-<a name="cg.opts.list"></a><dl>
+-<dt>
+-<a name="opt.I1"></a><span class="term">
+-      <code class="option">--I1=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the level 1
+-      instruction cache.  </p></dd>
+-<dt>
+-<a name="opt.D1"></a><span class="term">
+-      <code class="option">--D1=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the level 1
+-      data cache.</p></dd>
+-<dt>
+-<a name="opt.LL"></a><span class="term">
+-      <code class="option">--LL=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the last-level
+-      cache.</p></dd>
+-<dt>
+-<a name="opt.cache-sim"></a><span class="term">
+-      <code class="option">--cache-sim=no|yes [yes] </code>
+-    </span>
+-</dt>
+-<dd><p>Enables or disables collection of cache access and miss
+-            counts.</p></dd>
+-<dt>
+-<a name="opt.branch-sim"></a><span class="term">
+-      <code class="option">--branch-sim=no|yes [no] </code>
+-    </span>
+-</dt>
+-<dd><p>Enables or disables collection of branch instruction and
+-            misprediction counts.  By default this is disabled as it
+-            slows Cachegrind down by approximately 25%.  Note that you
+-            cannot specify <code class="option">--cache-sim=no</code>
+-            and <code class="option">--branch-sim=no</code>
+-            together, as that would leave Cachegrind with no
+-            information to collect.</p></dd>
+-<dt>
+-<a name="opt.cachegrind-out-file"></a><span class="term">
+-      <code class="option">--cachegrind-out-file=<file> </code>
+-    </span>
+-</dt>
+-<dd><p>Write the profile data to 
+-            <code class="computeroutput">file</code> rather than to the default
+-            output file,
+-            <code class="filename">cachegrind.out.<pid></code>.  The
+-            <code class="option">%p</code> and <code class="option">%q</code> format specifiers
+-            can be used to embed the process ID and/or the contents of an
+-            environment variable in the name, as is the case for the core
+-            option <code class="option"><a class="xref" href="manual-core.html#opt.log-file">--log-file</a></code>.
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="5.4. cg_annotate Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.annopts"></a>5.4. cg_annotate Command-line Options</h2></div></div></div>
+-<div class="variablelist">
+-<a name="cg_annotate.opts.list"></a><dl>
+-<dt><span class="term">
+-      <code class="option">-h --help </code>
+-    </span></dt>
+-<dd><p>Show the help message.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--version </code>
+-    </span></dt>
+-<dd><p>Show the version number.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--show=A,B,C [default: all, using order in
+-      cachegrind.out.<pid>] </code>
+-    </span></dt>
+-<dd><p>Specifies which events to show (and the column
+-      order). Default is to use all present in the
+-      <code class="filename">cachegrind.out.<pid></code> file (and
+-      use the order in the file).  Useful if you want to concentrate on, for
+-      example, I cache misses (<code class="option">--show=I1mr,ILmr</code>), or data
+-      read misses (<code class="option">--show=D1mr,DLmr</code>), or LL data misses
+-      (<code class="option">--show=DLmr,DLmw</code>).  Best used in conjunction with
+-      <code class="option">--sort</code>.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--sort=A,B,C [default: order in
+-      cachegrind.out.<pid>] </code>
+-    </span></dt>
+-<dd><p>Specifies the events upon which the sorting of the
+-      function-by-function entries will be based.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--threshold=X [default: 0.1%] </code>
+-    </span></dt>
+-<dd>
+-<p>Sets the threshold for the function-by-function
+-      summary.  A function is shown if it accounts for more than X%
+-      of the counts for the primary sort event.  If auto-annotating, also
+-      affects which files are annotated.</p>
+-<p>Note: thresholds can be set for more than one of the
+-      events by appending any events for the
+-      <code class="option">--sort</code> option with a colon
+-      and a number (no spaces, though).  E.g. if you want to see
+-      each function that covers more than 1% of LL read misses or 1% of LL
+-      write misses, use this option:</p>
+-<p><code class="option">--sort=DLmr:1,DLmw:1</code></p>
+-</dd>
+-<dt><span class="term">
+-      <code class="option">--auto=<no|yes> [default: no] </code>
+-    </span></dt>
+-<dd><p>When enabled, automatically annotates every file that
+-      is mentioned in the function-by-function summary that can be
+-      found.  Also gives a list of those that couldn't be found.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--context=N [default: 8] </code>
+-    </span></dt>
+-<dd><p>Print N lines of context before and after each
+-      annotated line.  Avoids printing large sections of source
+-      files that were not executed.  Use a large number
+-      (e.g. 100000) to show all source lines.</p></dd>
+-<dt><span class="term">
+-      <code class="option">-I<dir> --include=<dir> [default: none] </code>
+-    </span></dt>
+-<dd><p>Adds a directory to the list in which to search for
+-      files.  Multiple <code class="option">-I</code>/<code class="option">--include</code>
+-      options can be given to add multiple directories.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="5.5. cg_diff Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.diffopts"></a>5.5. cg_diff Command-line Options</h2></div></div></div>
+-<div class="variablelist">
+-<a name="cg_diff.opts.list"></a><dl>
+-<dt><span class="term">
+-      <code class="option">-h --help </code>
+-    </span></dt>
+-<dd><p>Show the help message.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--version </code>
+-    </span></dt>
+-<dd><p>Show the version number.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--mod-filename=<expr> [default: none]</code>
+-    </span></dt>
+-<dd><p>Specifies a Perl search-and-replace expression that is applied
+-      to all filenames.  Useful for removing minor differences in paths
+-      between two different versions of a program that are sitting in
+-      different directories.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--mod-funcname=<expr> [default: none]</code>
+-    </span></dt>
+-<dd><p>Like <code class="option">--mod-filename</code>, but for filenames.
+-      Useful for removing minor differences in randomized names of
+-      auto-generated functions generated by some compilers.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="5.6. Acting on Cachegrind's Information">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.acting-on"></a>5.6. Acting on Cachegrind's Information</h2></div></div></div>
+-<p>
+-Cachegrind gives you lots of information, but acting on that information
+-isn't always easy.  Here are some rules of thumb that we have found to be
+-useful.</p>
+-<p>
+-First of all, the global hit/miss counts and miss rates are not that useful.
+-If you have multiple programs or multiple runs of a program, comparing the
+-numbers might identify if any are outliers and worthy of closer
+-investigation.  Otherwise, they're not enough to act on.</p>
+-<p>
+-The function-by-function counts are more useful to look at, as they pinpoint
+-which functions are causing large numbers of counts.  However, beware that
+-inlining can make these counts misleading.  If a function
+-<code class="function">f</code> is always inlined, counts will be attributed to the
+-functions it is inlined into, rather than itself.  However, if you look at
+-the line-by-line annotations for <code class="function">f</code> you'll see the
+-counts that belong to <code class="function">f</code>.  (This is hard to avoid, it's
+-how the debug info is structured.)  So it's worth looking for large numbers
+-in the line-by-line annotations.</p>
+-<p>
+-The line-by-line source code annotations are much more useful.  In our
+-experience, the best place to start is by looking at the
+-<code class="computeroutput">Ir</code> numbers.  They simply measure how many
+-instructions were executed for each line, and don't include any cache
+-information, but they can still be very useful for identifying
+-bottlenecks.</p>
+-<p>
+-After that, we have found that LL misses are typically a much bigger source
+-of slow-downs than L1 misses.  So it's worth looking for any snippets of
+-code with high <code class="computeroutput">DLmr</code> or
+-<code class="computeroutput">DLmw</code> counts.  (You can use
+-<code class="option">--show=DLmr
+---sort=DLmr</code> with cg_annotate to focus just on
+-<code class="literal">DLmr</code> counts, for example.) If you find any, it's still
+-not always easy to work out how to improve things.  You need to have a
+-reasonable understanding of how caches work, the principles of locality, and
+-your program's data access patterns.  Improving things may require
+-redesigning a data structure, for example.</p>
+-<p>
+-Looking at the <code class="computeroutput">Bcm</code> and
+-<code class="computeroutput">Bim</code> misses can also be helpful.
+-In particular, <code class="computeroutput">Bim</code> misses are often caused
+-by <code class="literal">switch</code> statements, and in some cases these
+-<code class="literal">switch</code> statements can be replaced with table-driven code.
+-For example, you might replace code like this:</p>
+-<pre class="programlisting">
+-enum E { A, B, C };
+-enum E e;
+-int i;
+-...
+-switch (e)
+-{
+-    case A: i += 1; break;
+-    case B: i += 2; break;
+-    case C: i += 3; break;
+-}
+-</pre>
+-<p>with code like this:</p>
+-<pre class="programlisting">
+-enum E { A, B, C };
+-enum E e;
+-enum E table[] = { 1, 2, 3 };
+-int i;
+-...
+-i += table[e];
+-</pre>
+-<p>
+-This is obviously a contrived example, but the basic principle applies in a
+-wide variety of situations.</p>
+-<p>
+-In short, Cachegrind can tell you where some of the bottlenecks in your code
+-are, but it can't tell you how to fix them.  You have to work that out for
+-yourself.  But at least you have the information!
+-</p>
+-</div>
+-<div class="sect1" title="5.7. Simulation Details">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.sim-details"></a>5.7. Simulation Details</h2></div></div></div>
+-<p>
+-This section talks about details you don't need to know about in order to
+-use Cachegrind, but may be of interest to some people.
+-</p>
+-<div class="sect2" title="5.7.1. Cache Simulation Specifics">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cache-sim"></a>5.7.1. Cache Simulation Specifics</h3></div></div></div>
+-<p>Specific characteristics of the cache simulation are as
+-follows:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Write-allocate: when a write miss occurs, the block
+-    written to is brought into the D1 cache.  Most modern caches
+-    have this property.</p></li>
+-<li class="listitem">
+-<p>Bit-selection hash function: the set of line(s) in the cache
+-    to which a memory block maps is chosen by the middle bits
+-    M--(M+N-1) of the byte address, where:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+-<li class="listitem"><p>line size = 2^M bytes</p></li>
+-<li class="listitem"><p>(cache size / line size / associativity) = 2^N bytes</p></li>
+-</ul></div>
+-</li>
+-<li class="listitem"><p>Inclusive LL cache: the LL cache typically replicates all
+-    the entries of the L1 caches, because fetching into L1 involves
+-    fetching into LL first (this does not guarantee strict inclusiveness,
+-    as lines evicted from LL still could reside in L1).  This is
+-    standard on Pentium chips, but AMD Opterons, Athlons and Durons
+-    use an exclusive LL cache that only holds
+-    blocks evicted from L1.  Ditto most modern VIA CPUs.</p></li>
+-</ul></div>
+-<p>The cache configuration simulated (cache size,
+-associativity and line size) is determined automatically using
+-the x86 CPUID instruction.  If you have a machine that (a)
+-doesn't support the CPUID instruction, or (b) supports it in an
+-early incarnation that doesn't give any cache information, then
+-Cachegrind will fall back to using a default configuration (that
+-of a model 3/4 Athlon).  Cachegrind will tell you if this
+-happens.  You can manually specify one, two or all three levels
+-(I1/D1/LL) of the cache from the command line using the
+-<code class="option">--I1</code>,
+-<code class="option">--D1</code> and
+-<code class="option">--LL</code> options.
+-For cache parameters to be valid for simulation, the number
+-of sets (with associativity being the number of cache lines in
+-each set) has to be a power of two.</p>
+-<p>On PowerPC platforms
+-Cachegrind cannot automatically 
+-determine the cache configuration, so you will 
+-need to specify it with the
+-<code class="option">--I1</code>,
+-<code class="option">--D1</code> and
+-<code class="option">--LL</code> options.</p>
+-<p>Other noteworthy behaviour:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>References that straddle two cache lines are treated as
+-    follows:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+-<li class="listitem"><p>If both blocks hit --> counted as one hit</p></li>
+-<li class="listitem"><p>If one block hits, the other misses --> counted
+-        as one miss.</p></li>
+-<li class="listitem"><p>If both blocks miss --> counted as one miss (not
+-        two)</p></li>
+-</ul></div>
+-</li>
+-<li class="listitem">
+-<p>Instructions that modify a memory location
+-    (e.g. <code class="computeroutput">inc</code> and
+-    <code class="computeroutput">dec</code>) are counted as doing
+-    just a read, i.e. a single data reference.  This may seem
+-    strange, but since the write can never cause a miss (the read
+-    guarantees the block is in the cache) it's not very
+-    interesting.</p>
+-<p>Thus it measures not the number of times the data cache
+-    is accessed, but the number of times a data cache miss could
+-    occur.</p>
+-</li>
+-</ul></div>
+-<p>If you are interested in simulating a cache with different
+-properties, it is not particularly hard to write your own cache
+-simulator, or to modify the existing ones in
+-<code class="computeroutput">cg_sim.c</code>. We'd be
+-interested to hear from anyone who does.</p>
+-</div>
+-<div class="sect2" title="5.7.2. Branch Simulation Specifics">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="branch-sim"></a>5.7.2. Branch Simulation Specifics</h3></div></div></div>
+-<p>Cachegrind simulates branch predictors intended to be
+-typical of mainstream desktop/server processors of around 2004.</p>
+-<p>Conditional branches are predicted using an array of 16384 2-bit
+-saturating counters.  The array index used for a branch instruction is
+-computed partly from the low-order bits of the branch instruction's
+-address and partly using the taken/not-taken behaviour of the last few
+-conditional branches.  As a result the predictions for any specific
+-branch depend both on its own history and the behaviour of previous
+-branches.  This is a standard technique for improving prediction
+-accuracy.</p>
+-<p>For indirect branches (that is, jumps to unknown destinations)
+-Cachegrind uses a simple branch target address predictor.  Targets are
+-predicted using an array of 512 entries indexed by the low order 9
+-bits of the branch instruction's address.  Each branch is predicted to
+-jump to the same address it did last time.  Any other behaviour causes
+-a mispredict.</p>
+-<p>More recent processors have better branch predictors, in
+-particular better indirect branch predictors.  Cachegrind's predictor
+-design is deliberately conservative so as to be representative of the
+-large installed base of processors which pre-date widespread
+-deployment of more sophisticated indirect branch predictors.  In
+-particular, late model Pentium 4s (Prescott), Pentium M, Core and Core
+-2 have more sophisticated indirect branch predictors than modelled by
+-Cachegrind.  </p>
+-<p>Cachegrind does not simulate a return stack predictor.  It
+-assumes that processors perfectly predict function return addresses,
+-an assumption which is probably close to being true.</p>
+-<p>See Hennessy and Patterson's classic text "Computer
+-Architecture: A Quantitative Approach", 4th edition (2007), Section
+-2.3 (pages 80-89) for background on modern branch predictors.</p>
+-</div>
+-<div class="sect2" title="5.7.3. Accuracy">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.annopts.accuracy"></a>5.7.3. Accuracy</h3></div></div></div>
+-<p>Valgrind's cache profiling has a number of
+-shortcomings:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>It doesn't account for kernel activity -- the effect of system
+-    calls on the cache and branch predictor contents is ignored.</p></li>
+-<li class="listitem"><p>It doesn't account for other process activity.
+-    This is probably desirable when considering a single
+-    program.</p></li>
+-<li class="listitem"><p>It doesn't account for virtual-to-physical address
+-    mappings.  Hence the simulation is not a true
+-    representation of what's happening in the
+-    cache.  Most caches and branch predictors are physically indexed, but
+-    Cachegrind simulates caches using virtual addresses.</p></li>
+-<li class="listitem"><p>It doesn't account for cache misses not visible at the
+-    instruction level, e.g. those arising from TLB misses, or
+-    speculative execution.</p></li>
+-<li class="listitem"><p>Valgrind will schedule
+-    threads differently from how they would be when running natively.
+-    This could warp the results for threaded programs.</p></li>
+-<li class="listitem">
+-<p>The x86/amd64 instructions <code class="computeroutput">bts</code>,
+-    <code class="computeroutput">btr</code> and
+-    <code class="computeroutput">btc</code> will incorrectly be
+-    counted as doing a data read if both the arguments are
+-    registers, eg:</p>
+-<pre class="programlisting">
+-    btsl %eax, %edx</pre>
+-<p>This should only happen rarely.</p>
+-</li>
+-<li class="listitem"><p>x86/amd64 FPU instructions with data sizes of 28 and 108 bytes
+-    (e.g.  <code class="computeroutput">fsave</code>) are treated as
+-    though they only access 16 bytes.  These instructions seem to
+-    be rare so hopefully this won't affect accuracy much.</p></li>
+-</ul></div>
+-<p>Another thing worth noting is that results are very sensitive.
+-Changing the size of the the executable being profiled, or the sizes
+-of any of the shared libraries it uses, or even the length of their
+-file names, can perturb the results.  Variations will be small, but
+-don't expect perfectly repeatable results if your program changes at
+-all.</p>
+-<p>More recent GNU/Linux distributions do address space
+-randomisation, in which identical runs of the same program have their
+-shared libraries loaded at different locations, as a security measure.
+-This also perturbs the results.</p>
+-<p>While these factors mean you shouldn't trust the results to
+-be super-accurate, they should be close enough to be useful.</p>
+-</div>
+-</div>
+-<div class="sect1" title="5.8. Implementation Details">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cg-manual.impl-details"></a>5.8. Implementation Details</h2></div></div></div>
+-<p>
+-This section talks about details you don't need to know about in order to
+-use Cachegrind, but may be of interest to some people.
+-</p>
+-<div class="sect2" title="5.8.1. How Cachegrind Works">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.impl-details.how-cg-works"></a>5.8.1. How Cachegrind Works</h3></div></div></div>
+-<p>The best reference for understanding how Cachegrind works is chapter 3 of
+-"Dynamic Binary Analysis and Instrumentation", by Nicholas Nethercote.  It
+-is available on the <a class="ulink" href="http://www.valgrind.org/docs/pubs.html" target="_top">Valgrind publications
+-page</a>.</p>
+-</div>
+-<div class="sect2" title="5.8.2. Cachegrind Output File Format">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cg-manual.impl-details.file-format"></a>5.8.2. Cachegrind Output File Format</h3></div></div></div>
+-<p>The file format is fairly straightforward, basically giving the
+-cost centre for every line, grouped by files and
+-functions.  It's also totally generic and self-describing, in the sense that
+-it can be used for any events that can be counted on a line-by-line basis,
+-not just cache and branch predictor events.  For example, earlier versions
+-of Cachegrind didn't have a branch predictor simulation.  When this was
+-added, the file format didn't need to change at all.  So the format (and
+-consequently, cg_annotate) could be used by other tools.</p>
+-<p>The file format:</p>
+-<pre class="programlisting">
+-file         ::= desc_line* cmd_line events_line data_line+ summary_line
+-desc_line    ::= "desc:" ws? non_nl_string
+-cmd_line     ::= "cmd:" ws? cmd
+-events_line  ::= "events:" ws? (event ws)+
+-data_line    ::= file_line | fn_line | count_line
+-file_line    ::= "fl=" filename
+-fn_line      ::= "fn=" fn_name
+-count_line   ::= line_num ws? (count ws)+
+-summary_line ::= "summary:" ws? (count ws)+
+-count        ::= num | "."</pre>
+-<p>Where:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="computeroutput">non_nl_string</code> is any
+-    string not containing a newline.</p></li>
+-<li class="listitem"><p><code class="computeroutput">cmd</code> is a string holding the
+-    command line of the profiled program.</p></li>
+-<li class="listitem"><p><code class="computeroutput">event</code> is a string containing
+-    no whitespace.</p></li>
+-<li class="listitem"><p><code class="computeroutput">filename</code> and
+-    <code class="computeroutput">fn_name</code> are strings.</p></li>
+-<li class="listitem"><p><code class="computeroutput">num</code> and
+-    <code class="computeroutput">line_num</code> are decimal
+-    numbers.</p></li>
+-<li class="listitem"><p><code class="computeroutput">ws</code> is whitespace.</p></li>
+-</ul></div>
+-<p>The contents of the "desc:" lines are printed out at the top
+-of the summary.  This is a generic way of providing simulation
+-specific information, e.g. for giving the cache configuration for
+-cache simulation.</p>
+-<p>More than one line of info can be presented for each file/fn/line number.
+-In such cases, the counts for the named events will be accumulated.</p>
+-<p>Counts can be "." to represent zero.  This makes the files easier for
+-humans to read.</p>
+-<p>The number of counts in each
+-<code class="computeroutput">line</code> and the
+-<code class="computeroutput">summary_line</code> should not exceed
+-the number of events in the
+-<code class="computeroutput">event_line</code>.  If the number in
+-each <code class="computeroutput">line</code> is less, cg_annotate
+-treats those missing as though they were a "." entry.  This saves space.
+-</p>
+-<p>A <code class="computeroutput">file_line</code> changes the
+-current file name.  A <code class="computeroutput">fn_line</code>
+-changes the current function name.  A
+-<code class="computeroutput">count_line</code> contains counts that
+-pertain to the current filename/fn_name.  A "fn="
+-<code class="computeroutput">file_line</code> and a
+-<code class="computeroutput">fn_line</code> must appear before any
+-<code class="computeroutput">count_line</code>s to give the context
+-of the first <code class="computeroutput">count_line</code>s.</p>
+-<p>Each <code class="computeroutput">file_line</code> will normally be
+-immediately followed by a <code class="computeroutput">fn_line</code>.  But it
+-doesn't have to be.</p>
+-<p>The summary line is redundant, because it just holds the total counts
+-for each event.  But this serves as a useful sanity check of the data;  if
+-the totals for each event don't match the summary line, something has gone
+-wrong.</p>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="mc-manual.html"><< 4. Memcheck: a memory error detector</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="cl-manual.html">6. Callgrind: a call-graph generating cache and branch prediction profiler >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/cl-format.html b/docs/html/cl-format.html
+deleted file mode 100644
+index f24bf5c..0000000
+--- a/docs/html/cl-format.html
++++ /dev/null
+@@ -1,623 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>3. Callgrind Format Specification</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="tech-docs.html" title="Valgrind Technical Documentation">
+-<link rel="prev" href="manual-writing-tools.html" title="2. Writing a New Valgrind Tool">
+-<link rel="next" href="dist.html" title="Valgrind Distribution Documents">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="manual-writing-tools.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="tech-docs.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Technical Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="3. Callgrind Format Specification">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="cl-format"></a>3. Callgrind Format Specification</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="cl-format.html#cl-format.overview">3.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.basics">3.1.1. Basic Structure</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.example1">3.1.2. Simple Example</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.associations">3.1.3. Associations</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.example2">3.1.4. Extended Example</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.compression1">3.1.5. Name Compression</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.compression2">3.1.6. Subposition Compression</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.misc">3.1.7. Miscellaneous</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-format.html#cl-format.reference">3.2. Reference</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.grammar">3.2.1. Grammar</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.header">3.2.2. Description of Header Lines</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.body">3.2.3. Description of Body Lines</a></span></dt>
+-</dl></dd>
+-</dl>
+-</div>
+-<p>This chapter describes the Callgrind Profile Format, Version 1.</p>
+-<p>A synonymous name is "Calltree Profile Format". These names actually mean
+-the same since Callgrind was previously named Calltree.</p>
+-<p>The format description is meant for the user to be able to understand the
+-file contents; but more important, it is given for authors of measurement or
+-visualization tools to be able to write and read this format.</p>
+-<div class="sect1" title="3.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-format.overview"></a>3.1. Overview</h2></div></div></div>
+-<p>The profile data format is ASCII based.
+-It is written by Callgrind, and it is upwards compatible
+-to the format used by Cachegrind (ie. Cachegrind uses a subset). It can
+-be read by callgrind_annotate and KCachegrind.</p>
+-<p>This chapter gives on overview of format features and examples.
+-For detailed syntax, look at the format reference.</p>
+-<div class="sect2" title="3.1.1. Basic Structure">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.basics"></a>3.1.1. Basic Structure</h3></div></div></div>
+-<p>Each file has a header part of an arbitrary number of lines of the
+-format "key: value". The lines with key "positions" and "events" define
+-the meaning of cost lines in the second part of the file: the value of
+-"positions" is a list of subpositions, and the value of "events" is a list
+-of event type names. Cost lines consist of subpositions followed by 64-bit
+-counters for the events, in the order specified by the "positions" and "events"
+-header line.</p>
+-<p>The "events" header line is always required in contrast to the optional
+-line for "positions", which defaults to "line", i.e. a line number of some
+-source file. In addition, the second part of the file contains position
+-specifications of the form "spec=name". "spec" can be e.g. "fn" for a
+-function name or "fl" for a file name. Cost lines are always related to
+-the function/file specifications given directly before.</p>
+-</div>
+-<div class="sect2" title="3.1.2. Simple Example">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.example1"></a>3.1.2. Simple Example</h3></div></div></div>
+-<p>The event names in the following example are quite arbitrary, and are not
+-related to event names used by Callgrind. Especially, cycle counts matching
+-real processors probably will never be generated by any Valgrind tools, as these
+-are bound to simulations of simple machine models for acceptable slowdown.
+-However, any profiling tool could use the format described in this chapter.</p>
+-<p>
+-</p>
+-<pre class="screen">events: Cycles Instructions Flops
+-fl=file.f
+-fn=main
+-15 90 14 2
+-16 20 12</pre>
+-<p>The above example gives profile information for event types "Cycles",
+-"Instructions", and "Flops". Thus, cost lines give the number of CPU cycles
+-passed by, number of executed instructions, and number of floating point
+-operations executed while running code corresponding to some source
+-position. As there is no line specifying the value of "positions", it defaults
+-to "line", which means that the first number of a cost line is always a line
+-number.</p>
+-<p>Thus, the first cost line specifies that in line 15 of source file
+-<code class="filename">file.f</code> there is code belonging to function
+-<code class="function">main</code>. While running, 90 CPU cycles passed by, and 2 of
+-the 14 instructions executed were floating point operations. Similarly, the
+-next line specifies that there were 12 instructions executed in the context
+-of function <code class="function">main</code> which can be related to line 16 in
+-file <code class="filename">file.f</code>, taking 20 CPU cycles. If a cost line
+-specifies less event counts than given in the "events" line, the rest is
+-assumed to be zero.  I.e. there was no floating point instruction executed
+-relating to line 16.</p>
+-<p>Note that regular cost lines always give self (also called exclusive)
+-cost of code at a given position. If you specify multiple cost lines for the
+-same position, these will be summed up. On the other hand, in the example above
+-there is no specification of how many times function
+-<code class="function">main</code> actually was
+-called: profile data only contains sums.</p>
+-</div>
+-<div class="sect2" title="3.1.3. Associations">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.associations"></a>3.1.3. Associations</h3></div></div></div>
+-<p>The most important extension to the original format of Cachegrind is the
+-ability to specify call relationship among functions. More generally, you
+-specify associations among positions. For this, the second part of the
+-file also can contain association specifications. These look similar to
+-position specifications, but consist of 2 lines. For calls, the format
+-looks like 
+-</p>
+-<pre class="screen">
+- calls=(Call Count) (Destination position)
+- (Source position) (Inclusive cost of call)
+-</pre>
+-<p>The destination only specifies subpositions like line number. Therefore,
+-to be able to specify a call to another function in another source file, you
+-have to precede the above lines with a "cfn=" specification for the name of the
+-called function, and a "cfl=" specification if the function is in another
+-source file. The 2nd line looks like a regular cost line with the difference
+-that inclusive cost spent inside of the function call has to be specified.</p>
+-<p>Other associations are for example (conditional) jumps. See the
+-reference below for details.</p>
+-</div>
+-<div class="sect2" title="3.1.4. Extended Example">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.example2"></a>3.1.4. Extended Example</h3></div></div></div>
+-<p>The following example shows 3 functions, <code class="function">main</code>,
+-<code class="function">func1</code>, and <code class="function">func2</code>. Function
+-<code class="function">main</code> calls <code class="function">func1</code> once and
+-<code class="function">func2</code> 3 times. <code class="function">func1</code> calls
+-<code class="function">func2</code> 2 times.
+-</p>
+-<pre class="screen">events: Instructions
+-
+-fl=file1.c
+-fn=main
+-16 20
+-cfn=func1
+-calls=1 50
+-16 400
+-cfl=file2.c
+-cfn=func2
+-calls=3 20
+-16 400
+-
+-fn=func1
+-51 100
+-cfl=file2.c
+-cfn=func2
+-calls=2 20
+-51 300
+-
+-fl=file2.c
+-fn=func2
+-20 700</pre>
+-<p>One can see that in <code class="function">main</code> only code from line 16
+-is executed where also the other functions are called. Inclusive cost of
+-<code class="function">main</code> is 820, which is the sum of self cost 20 and costs
+-spent in the calls: 400 for the single call to <code class="function">func1</code>
+-and 400 as sum for the three calls to <code class="function">func2</code>.</p>
+-<p>Function <code class="function">func1</code> is located in
+-<code class="filename">file1.c</code>, the same as <code class="function">main</code>.
+-Therefore, a "cfl=" specification for the call to <code class="function">func1</code>
+-is not needed. The function <code class="function">func1</code> only consists of code
+-at line 51 of <code class="filename">file1.c</code>, where <code class="function">func2</code>
+-is called.</p>
+-</div>
+-<div class="sect2" title="3.1.5. Name Compression">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.compression1"></a>3.1.5. Name Compression</h3></div></div></div>
+-<p>With the introduction of association specifications like calls it is
+-needed to specify the same function or same file name multiple times. As
+-absolute filenames or symbol names in C++ can be quite long, it is advantageous
+-to be able to specify integer IDs for position specifications.
+-Here, the term "position" corresponds to a file name (source or object file)
+-or function name.</p>
+-<p>To support name compression, a position specification can be not only of
+-the format "spec=name", but also "spec=(ID) name" to specify a mapping of an
+-integer ID to a name, and "spec=(ID)" to reference a previously defined ID
+-mapping. There is a separate ID mapping for each position specification,
+-i.e. you can use ID 1 for both a file name and a symbol name.</p>
+-<p>With string compression, the example from 1.4 looks like this:
+-</p>
+-<pre class="screen">events: Instructions
+-
+-fl=(1) file1.c
+-fn=(1) main
+-16 20
+-cfn=(2) func1
+-calls=1 50
+-16 400
+-cfl=(2) file2.c
+-cfn=(3) func2
+-calls=3 20
+-16 400
+-
+-fn=(2)
+-51 100
+-cfl=(2)
+-cfn=(3)
+-calls=2 20
+-51 300
+-
+-fl=(2)
+-fn=(3)
+-20 700</pre>
+-<p>As position specifications carry no information themselves, but only change
+-the meaning of subsequent cost lines or associations, they can appear
+-everywhere in the file without any negative consequence. Especially, you can
+-define name compression mappings directly after the header, and before any cost
+-lines. Thus, the above example can also be written as
+-</p>
+-<pre class="screen">events: Instructions
+-
+-# define file ID mapping
+-fl=(1) file1.c
+-fl=(2) file2.c
+-# define function ID mapping
+-fn=(1) main
+-fn=(2) func1
+-fn=(3) func2
+-
+-fl=(1)
+-fn=(1)
+-16 20
+-...</pre>
+-</div>
+-<div class="sect2" title="3.1.6. Subposition Compression">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.compression2"></a>3.1.6. Subposition Compression</h3></div></div></div>
+-<p>If a Callgrind data file should hold costs for each assembler instruction
+-of a program, you specify subposition "instr" in the "positions:" header line,
+-and each cost line has to include the address of some instruction. Addresses
+-are allowed to have a size of 64 bits to support 64-bit architectures. Thus,
+-repeating similar, long addresses for almost every line in the data file can
+-enlarge the file size quite significantly, and
+-motivates for subposition compression: instead of every cost line starting with
+-a 16 character long address, one is allowed to specify relative addresses.
+-This relative specification is not only allowed for instruction addresses, but
+-also for line numbers; both addresses and line numbers are called "subpositions".</p>
+-<p>A relative subposition always is based on the corresponding subposition
+-of the last cost line, and starts with a "+" to specify a positive difference,
+-a "-" to specify a negative difference, or consists of "*" to specify the same
+-subposition. Because absolute subpositions always are positive (ie. never
+-prefixed by "-"), any relative specification is non-ambiguous; additionally,
+-absolute and relative subposition specifications can be mixed freely.
+-Assume the following example (subpositions can always be specified
+-as hexadecimal numbers, beginning with "0x"):
+-</p>
+-<pre class="screen">positions: instr line
+-events: ticks
+-
+-fn=func
+-0x80001234 90 1
+-0x80001237 90 5
+-0x80001238 91 6</pre>
+-<p>With subposition compression, this looks like
+-</p>
+-<pre class="screen">positions: instr line
+-events: ticks
+-
+-fn=func
+-0x80001234 90 1
+-+3 * 5
+-+1 +1 6</pre>
+-<p>Remark: For assembler annotation to work, instruction addresses have to
+-be corrected to correspond to addresses found in the original binary. I.e. for
+-relocatable shared objects, often a load offset has to be subtracted.</p>
+-</div>
+-<div class="sect2" title="3.1.7. Miscellaneous">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.overview.misc"></a>3.1.7. Miscellaneous</h3></div></div></div>
+-<div class="sect3" title="3.1.7.1. Cost Summary Information">
+-<div class="titlepage"><div><div><h4 class="title">
+-<a name="cl-format.overview.misc.summary"></a>3.1.7.1. Cost Summary Information</h4></div></div></div>
+-<p>For the visualization to be able to show cost percentage, a sum of the
+-cost of the full run has to be known. Usually, it is assumed that this is the
+-sum of all cost lines in a file. But sometimes, this is not correct. Thus, you
+-can specify a "summary:" line in the header giving the full cost for the
+-profile run. This has another effect: a import filter can show a progress bar
+-while loading a large data file if he knows to cost sum in advance.</p>
+-</div>
+-<div class="sect3" title="3.1.7.2. Long Names for Event Types and inherited Types">
+-<div class="titlepage"><div><div><h4 class="title">
+-<a name="cl-format.overview.misc.events"></a>3.1.7.2. Long Names for Event Types and inherited Types</h4></div></div></div>
+-<p>Event types for cost lines are specified in the "events:" line with an
+-abbreviated name. For visualization, it makes sense to be able to specify some
+-longer, more descriptive name. For an event type "Ir" which means "Instruction
+-Fetches", this can be specified the header line
+-</p>
+-<pre class="screen">event: Ir : Instruction Fetches
+-events: Ir Dr</pre>
+-<p>In this example, "Dr" itself has no long name associated. The order of
+-"event:" lines and the "events:" line is of no importance. Additionally,
+-inherited event types can be introduced for which no raw data is available, but
+-which are calculated from given types. Suppose the last example, you could add
+-</p>
+-<pre class="screen">event: Sum = Ir + Dr</pre>
+-<p>
+-to specify an additional event type "Sum", which is calculated by adding costs
+-for "Ir and "Dr".</p>
+-</div>
+-</div>
+-</div>
+-<div class="sect1" title="3.2. Reference">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-format.reference"></a>3.2. Reference</h2></div></div></div>
+-<div class="sect2" title="3.2.1. Grammar">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.reference.grammar"></a>3.2.1. Grammar</h3></div></div></div>
+-<p>
+-</p>
+-<pre class="screen">ProfileDataFile := FormatVersion? Creator? PartData*</pre>
+-<p>
+-</p>
+-<pre class="screen">FormatVersion := "version:" Space* Number "\n"</pre>
+-<p>
+-</p>
+-<pre class="screen">Creator := "creator:" NoNewLineChar* "\n"</pre>
+-<p>
+-</p>
+-<pre class="screen">PartData := (HeaderLine "\n")+ (BodyLine "\n")+</pre>
+-<p>
+-</p>
+-<pre class="screen">HeaderLine := (empty line)
+-  | ('#' NoNewLineChar*)
+-  | PartDetail
+-  | Description
+-  | EventSpecification
+-  | CostLineDef</pre>
+-<p>
+-</p>
+-<pre class="screen">PartDetail := TargetCommand | TargetID</pre>
+-<p>
+-</p>
+-<pre class="screen">TargetCommand := "cmd:" Space* NoNewLineChar*</pre>
+-<p>
+-</p>
+-<pre class="screen">TargetID := ("pid"|"thread"|"part") ":" Space* Number</pre>
+-<p>
+-</p>
+-<pre class="screen">Description := "desc:" Space* Name Space* ":" NoNewLineChar*</pre>
+-<p>
+-</p>
+-<pre class="screen">EventSpecification := "event:" Space* Name InheritedDef? LongNameDef?</pre>
+-<p>
+-</p>
+-<pre class="screen">InheritedDef := "=" InheritedExpr</pre>
+-<p>
+-</p>
+-<pre class="screen">InheritedExpr := Name
+-  | Number Space* ("*" Space*)? Name
+-  | InheritedExpr Space* "+" Space* InheritedExpr</pre>
+-<p>
+-</p>
+-<pre class="screen">LongNameDef := ":" NoNewLineChar*</pre>
+-<p>
+-</p>
+-<pre class="screen">CostLineDef := "events:" Space* Name (Space+ Name)*
+-  | "positions:" "instr"? (Space+ "line")?</pre>
+-<p>
+-</p>
+-<pre class="screen">BodyLine := (empty line)
+-  | ('#' NoNewLineChar*)
+-  | CostLine
+-  | PositionSpecification
+-  | AssociationSpecification</pre>
+-<p>
+-</p>
+-<pre class="screen">CostLine := SubPositionList Costs?</pre>
+-<p>
+-</p>
+-<pre class="screen">SubPositionList := (SubPosition+ Space+)+</pre>
+-<p>
+-</p>
+-<pre class="screen">SubPosition := Number | "+" Number | "-" Number | "*"</pre>
+-<p>
+-</p>
+-<pre class="screen">Costs := (Number Space+)+</pre>
+-<p>
+-</p>
+-<pre class="screen">PositionSpecification := Position "=" Space* PositionName</pre>
+-<p>
+-</p>
+-<pre class="screen">Position := CostPosition | CalledPosition</pre>
+-<p>
+-</p>
+-<pre class="screen">CostPosition := "ob" | "fl" | "fi" | "fe" | "fn"</pre>
+-<p>
+-</p>
+-<pre class="screen">CalledPosition := " "cob" | "cfl" | "cfn"</pre>
+-<p>
+-</p>
+-<pre class="screen">PositionName := ( "(" Number ")" )? (Space* NoNewLineChar* )?</pre>
+-<p>
+-</p>
+-<pre class="screen">AssociationSpecification := CallSpecification
+-  | JumpSpecification</pre>
+-<p>
+-</p>
+-<pre class="screen">CallSpecification := CallLine "\n" CostLine</pre>
+-<p>
+-</p>
+-<pre class="screen">CallLine := "calls=" Space* Number Space+ SubPositionList</pre>
+-<p>
+-</p>
+-<pre class="screen">JumpSpecification := ...</pre>
+-<p>
+-</p>
+-<pre class="screen">Space := " " | "\t"</pre>
+-<p>
+-</p>
+-<pre class="screen">Number := HexNumber | (Digit)+</pre>
+-<p>
+-</p>
+-<pre class="screen">Digit := "0" | ... | "9"</pre>
+-<p>
+-</p>
+-<pre class="screen">HexNumber := "0x" (Digit | HexChar)+</pre>
+-<p>
+-</p>
+-<pre class="screen">HexChar := "a" | ... | "f" | "A" | ... | "F"</pre>
+-<p>
+-</p>
+-<pre class="screen">Name = Alpha (Digit | Alpha)*</pre>
+-<p>
+-</p>
+-<pre class="screen">Alpha = "a" | ... | "z" | "A" | ... | "Z"</pre>
+-<p>
+-</p>
+-<pre class="screen">NoNewLineChar := all characters without "\n"</pre>
+-<p>
+-</p>
+-</div>
+-<div class="sect2" title="3.2.2. Description of Header Lines">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.reference.header"></a>3.2.2. Description of Header Lines</h3></div></div></div>
+-<p>The header has an arbitrary number of lines of the format 
+-"key: value". Possible <span class="emphasis"><em>key</em></span> values for the header are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="computeroutput">version: number</code> [Callgrind]</p>
+-<p>This is used to distinguish future profile data formats.  A 
+-    major version of 0 or 1 is supposed to be upwards compatible with 
+-    Cachegrind's format.  It is optional; if not appearing, version 1 
+-    is supposed.  Otherwise, this has to be the first header line.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">pid: process id</code> [Callgrind]</p>
+-<p>This specifies the process ID of the supervised application 
+-    for which this profile was generated.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">cmd: program name + args</code> [Cachegrind]</p>
+-<p>This specifies the full command line of the supervised
+-    application for which this profile was generated.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">part: number</code> [Callgrind]</p>
+-<p>This specifies a sequentially incremented number for each dump 
+-    generated, starting at 1.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">desc: type: value</code> [Cachegrind]</p>
+-<p>This specifies various information for this dump.  For some 
+-    types, the semantic is defined, but any description type is allowed. 
+-    Unknown types should be ignored.</p>
+-<p>There are the types "I1 cache", "D1 cache", "LL cache", which 
+-    specify parameters used for the cache simulator.  These are the only
+-    types originally used by Cachegrind.  Additionally, Callgrind uses 
+-    the following types:  "Timerange" gives a rough range of the basic
+-    block counter, for which the cost of this dump was collected. 
+-    Type "Trigger" states the reason of why this trace was generated.
+-    E.g. program termination or forced interactive dump.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">positions: [instr] [line]</code> [Callgrind]</p>
+-<p>For cost lines, this defines the semantic of the first numbers. 
+-    Any combination of "instr", "bb" and "line" is allowed, but has to be 
+-    in this order which corresponds to position numbers at the start of 
+-    the cost lines later in the file.</p>
+-<p>If "instr" is specified, the position is the address of an 
+-    instruction whose execution raised the events given later on the 
+-    line.  This address is relative to the offset of the binary/shared 
+-    library file to not have to specify relocation info.  For "line", 
+-    the position is the line number of a source file, which is 
+-    responsible for the events raised. Note that the mapping of "instr"
+-    and "line" positions are given by the debugging line information
+-    produced by the compiler.</p>
+-<p>This field is optional. If not specified, "line" is supposed 
+-    only.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">events: event type abbreviations</code> [Cachegrind]</p>
+-<p>A list of short names of the event types logged in this file. 
+-    The order is the same as in cost lines.  The first event type is the
+-    second or third number in a cost line, depending on the value of 
+-    "positions".  Callgrind does not add additional cost types.  Specify
+-    exactly once.</p>
+-<p>Cost types from original Cachegrind are:
+-      </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+-<li class="listitem"><p><span class="command"><strong>Ir</strong></span>: Instruction read access</p></li>
+-<li class="listitem"><p><span class="command"><strong>I1mr</strong></span>: Instruction Level 1 read cache miss</p></li>
+-<li class="listitem"><p><span class="command"><strong>ILmr</strong></span>: Instruction last-level read cache miss</p></li>
+-<li class="listitem"><p>...</p></li>
+-</ul></div>
+-<p>
+-    </p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">summary: costs</code> [Callgrind]</p>
+-<p><code class="computeroutput">totals: costs</code> [Cachegrind]</p>
+-<p>The value or the total number of events covered by this trace
+-    file.  Both keys have the same meaning, but the "totals:" line 
+-    happens to be at the end of the file, while "summary:" appears in 
+-    the header.  This was added to allow postprocessing tools to know
+-    in advance to total cost. The two lines always give the same cost 
+-    counts.</p>
+-</li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="3.2.3. Description of Body Lines">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-format.reference.body"></a>3.2.3. Description of Body Lines</h3></div></div></div>
+-<p>There exist lines
+-<code class="computeroutput">spec=position</code>.  The values for position
+-specifications are arbitrary strings.  When starting with "(" and a
+-digit, it's a string in compressed format.  Otherwise it's the real
+-position string.  This allows for file and symbol names as position
+-strings, as these never start with "(" + <span class="emphasis"><em>digit</em></span>.
+-The compressed format is either "(" <span class="emphasis"><em>number</em></span> ")"
+-<span class="emphasis"><em>space</em></span> <span class="emphasis"><em>position</em></span> or only 
+-"(" <span class="emphasis"><em>number</em></span> ")".  The first relates
+-<span class="emphasis"><em>position</em></span> to <span class="emphasis"><em>number</em></span> in the
+-context of the given format specification from this line to the end of
+-the file; it makes the (<span class="emphasis"><em>number</em></span>) an alias for
+-<span class="emphasis"><em>position</em></span>.  Compressed format is always
+-optional.</p>
+-<p>Position specifications allowed:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="computeroutput">ob=</code> [Callgrind]</p>
+-<p>The ELF object where the cost of next cost lines happens.</p>
+-</li>
+-<li class="listitem"><p><code class="computeroutput">fl=</code> [Cachegrind]</p></li>
+-<li class="listitem"><p><code class="computeroutput">fi=</code> [Cachegrind]</p></li>
+-<li class="listitem">
+-<p><code class="computeroutput">fe=</code> [Cachegrind]</p>
+-<p>The source file including the code which is responsible for
+-    the cost of next cost lines. "fi="/"fe=" is used when the source
+-    file changes inside of a function, i.e. for inlined code.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">fn=</code> [Cachegrind]</p>
+-<p>The name of the function where the cost of next cost lines 
+-    happens.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">cob=</code> [Callgrind]</p>
+-<p>The ELF object of the target of the next call cost lines.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">cfl=</code> [Callgrind]</p>
+-<p>The source file including the code of the target of the
+-    next call cost lines.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">cfn=</code> [Callgrind]</p>
+-<p>The name of the target function of the next call cost 
+-    lines.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">calls=</code> [Callgrind]</p>
+-<p>The number of nonrecursive calls which are responsible for the 
+-    cost specified by the next call cost line. This is the cost spent 
+-    inside of the called function.</p>
+-<p>After "calls=" there MUST be a cost line. This is the cost
+-    spent in the called function. The first number is the source line 
+-    from where the call happened.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">jump=count target position</code> [Callgrind]</p>
+-<p>Unconditional jump, executed count times, to the given target
+-    position.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">jcnd=exe.count jumpcount target position</code> [Callgrind]</p>
+-<p>Conditional jump, executed exe.count times with jumpcount 
+-    jumps to the given target position.</p>
+-</li>
+-</ul></div>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="manual-writing-tools.html"><< 2. Writing a New Valgrind Tool</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="tech-docs.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.html">Valgrind Distribution Documents >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/cl-manual.html b/docs/html/cl-manual.html
+deleted file mode 100644
+index 7b169a7..0000000
+--- a/docs/html/cl-manual.html
++++ /dev/null
+@@ -1,1116 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>6. Callgrind: a call-graph generating cache and branch prediction profiler</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="cg-manual.html" title="5. Cachegrind: a cache and branch-prediction profiler">
+-<link rel="next" href="hg-manual.html" title="7. Helgrind: a thread error detector">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="cg-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="hg-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="6. Callgrind: a call-graph generating cache and branch prediction profiler">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="cl-manual"></a>6. Callgrind: a call-graph generating cache and branch prediction profiler</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.use">6.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.functionality">6.1.1. Functionality</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.basics">6.1.2. Basic Usage</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.usage">6.2. Advanced Usage</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.dumps">6.2.1. Multiple profiling dumps from one program run</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.limits">6.2.2. Limiting the range of collected events</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.busevents">6.2.3. Counting global bus events</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.cycles">6.2.4. Avoiding cycles</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.forkingprograms">6.2.5. Forking Programs</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.options">6.3. Callgrind Command-line Options</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.creation">6.3.1. Dump creation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.activity">6.3.2. Activity options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.collection">6.3.3. Data collection options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.separation">6.3.4. Cost entity separation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.simulation">6.3.5. Simulation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.cachesimulation">6.3.6. Cache simulation options</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.monitor-commands">6.4. Callgrind Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.clientrequests">6.5. Callgrind specific client requests</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.callgrind_annotate-options">6.6. callgrind_annotate Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.callgrind_control-options">6.7. callgrind_control Command-line Options</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=callgrind</code> on the
+-Valgrind command line.</p>
+-<div class="sect1" title="6.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.use"></a>6.1. Overview</h2></div></div></div>
+-<p>Callgrind is a profiling tool that records the call history among
+-functions in a program's run as a call-graph.
+-By default, the collected data consists of
+-the number of instructions executed, their relationship
+-to source lines, the caller/callee relationship between functions,
+-and the numbers of such calls.
+-Optionally, cache simulation and/or branch prediction (similar to Cachegrind)
+-can produce further information about the runtime behavior of an application.
+-</p>
+-<p>The profile data is written out to a file at program
+-termination. For presentation of the data, and interactive control
+-of the profiling, two command line tools are provided:</p>
+-<div class="variablelist"><dl>
+-<dt><span class="term"><span class="command"><strong>callgrind_annotate</strong></span></span></dt>
+-<dd>
+-<p>This command reads in the profile data, and prints a
+-    sorted lists of functions, optionally with source annotation.</p>
+-<p>For graphical visualization of the data, try
+-    <a class="ulink" href="http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindIndex" target="_top">KCachegrind</a>, which is a KDE/Qt based
+-    GUI that makes it easy to navigate the large amount of data that
+-    Callgrind produces.</p>
+-</dd>
+-<dt><span class="term"><span class="command"><strong>callgrind_control</strong></span></span></dt>
+-<dd><p>This command enables you to interactively observe and control 
+-    the status of a program currently running under Callgrind's control,
+-    without stopping the program.  You can get statistics information as
+-    well as the current stack trace, and you can request zeroing of counters
+-    or dumping of profile data.</p></dd>
+-</dl></div>
+-<div class="sect2" title="6.1.1. Functionality">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.functionality"></a>6.1.1. Functionality</h3></div></div></div>
+-<p>Cachegrind collects flat profile data: event counts (data reads,
+-cache misses, etc.) are attributed directly to the function they
+-occurred in.  This cost attribution mechanism is
+-called <span class="emphasis"><em>self</em></span> or <span class="emphasis"><em>exclusive</em></span>
+-attribution.</p>
+-<p>Callgrind extends this functionality by propagating costs
+-across function call boundaries.  If function <code class="function">foo</code> calls
+-<code class="function">bar</code>, the costs from <code class="function">bar</code> are added into
+-<code class="function">foo</code>'s costs.  When applied to the program as a whole,
+-this builds up a picture of so called <span class="emphasis"><em>inclusive</em></span>
+-costs, that is, where the cost of each function includes the costs of
+-all functions it called, directly or indirectly.</p>
+-<p>As an example, the inclusive cost of
+-<code class="function">main</code> should be almost 100 percent
+-of the total program cost.  Because of costs arising before 
+-<code class="function">main</code> is run, such as
+-initialization of the run time linker and construction of global C++
+-objects, the inclusive cost of <code class="function">main</code>
+-is not exactly 100 percent of the total program cost.</p>
+-<p>Together with the call graph, this allows you to find the
+-specific call chains starting from
+-<code class="function">main</code> in which the majority of the
+-program's costs occur.  Caller/callee cost attribution is also useful
+-for profiling functions called from multiple call sites, and where
+-optimization opportunities depend on changing code in the callers, in
+-particular by reducing the call count.</p>
+-<p>Callgrind's cache simulation is based on that of Cachegrind.
+-Read the documentation for <a class="xref" href="cg-manual.html" title="5. Cachegrind: a cache and branch-prediction profiler">Cachegrind: a cache and branch-prediction profiler</a> first.  The material
+-below describes the features supported in addition to Cachegrind's
+-features.</p>
+-<p>Callgrind's ability to detect function calls and returns depends
+-on the instruction set of the platform it is run on.  It works best on
+-x86 and amd64, and unfortunately currently does not work so well on
+-PowerPC, ARM, Thumb or MIPS code.  This is because there are no explicit
+-call or return instructions in these instruction sets, so Callgrind
+-has to rely on heuristics to detect calls and returns.</p>
+-</div>
+-<div class="sect2" title="6.1.2. Basic Usage">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.basics"></a>6.1.2. Basic Usage</h3></div></div></div>
+-<p>As with Cachegrind, you probably want to compile with debugging info
+-  (the <code class="option">-g</code> option) and with optimization turned on.</p>
+-<p>To start a profile run for a program, execute:
+-  </p>
+-<pre class="screen">valgrind --tool=callgrind [callgrind options] your-program [program options]</pre>
+-<p>
+-  </p>
+-<p>While the simulation is running, you can observe execution with:
+-  </p>
+-<pre class="screen">callgrind_control -b</pre>
+-<p>
+-  This will print out the current backtrace. To annotate the backtrace with
+-  event counts, run
+-  </p>
+-<pre class="screen">callgrind_control -e -b</pre>
+-<p>
+-  </p>
+-<p>After program termination, a profile data file named 
+-  <code class="computeroutput">callgrind.out.<pid></code>
+-  is generated, where <span class="emphasis"><em>pid</em></span> is the process ID 
+-  of the program being profiled.
+-  The data file contains information about the calls made in the
+-  program among the functions executed, together with 
+-  <span class="command"><strong>Instruction Read</strong></span> (Ir) event counts.</p>
+-<p>To generate a function-by-function summary from the profile
+-  data file, use
+-  </p>
+-<pre class="screen">callgrind_annotate [options] callgrind.out.<pid></pre>
+-<p>
+-  This summary is similar to the output you get from a Cachegrind
+-  run with cg_annotate: the list
+-  of functions is ordered by exclusive cost of functions, which also
+-  are the ones that are shown.
+-  Important for the additional features of Callgrind are
+-  the following two options:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="option">--inclusive=yes</code>: Instead of using
+-      exclusive cost of functions as sorting order, use and show
+-      inclusive cost.</p></li>
+-<li class="listitem"><p><code class="option">--tree=both</code>: Interleave into the
+-      top level list of functions, information on the callers and the callees
+-      of each function. In these lines, which represents executed
+-      calls, the cost gives the number of events spent in the call.
+-      Indented, above each function, there is the list of callers,
+-      and below, the list of callees. The sum of events in calls to
+-      a given function (caller lines), as well as the sum of events in
+-      calls from the function (callee lines) together with the self
+-      cost, gives the total inclusive cost of the function.</p></li>
+-</ul></div>
+-<p>Use <code class="option">--auto=yes</code> to get annotated source code
+-  for all relevant functions for which the source can be found. In
+-  addition to source annotation as produced by
+-  <code class="computeroutput">cg_annotate</code>, you will see the
+-  annotated call sites with call counts. For all other options, 
+-  consult the (Cachegrind) documentation for
+-  <code class="computeroutput">cg_annotate</code>.
+-  </p>
+-<p>For better call graph browsing experience, it is highly recommended
+-  to use <a class="ulink" href="http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindIndex" target="_top">KCachegrind</a>.
+-  If your code
+-  has a significant fraction of its cost in <span class="emphasis"><em>cycles</em></span> (sets
+-  of functions calling each other in a recursive manner), you have to
+-  use KCachegrind, as <code class="computeroutput">callgrind_annotate</code>
+-  currently does not do any cycle detection, which is important to get correct
+-  results in this case.</p>
+-<p>If you are additionally interested in measuring the 
+-  cache behavior of your program, use Callgrind with the option
+-  <code class="option"><a class="xref" href="cl-manual.html#clopt.cache-sim">--cache-sim</a>=yes</code>. For
+-  branch prediction simulation, use <code class="option"><a class="xref" href="cl-manual.html#clopt.branch-sim">--branch-sim</a>=yes</code>.
+-  Expect a further slow down approximately by a factor of 2.</p>
+-<p>If the program section you want to profile is somewhere in the
+-  middle of the run, it is beneficial to 
+-  <span class="emphasis"><em>fast forward</em></span> to this section without any 
+-  profiling, and then enable profiling.  This is achieved by using
+-  the command line option
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.instr-atstart">--instr-atstart</a>=no</code> 
+-  and running, in a shell:
+-  <code class="computeroutput">callgrind_control -i on</code> just before the 
+-  interesting code section is executed. To exactly specify
+-  the code position where profiling should start, use the client request
+-  <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.start-instr">CALLGRIND_START_INSTRUMENTATION</a></code>.</p>
+-<p>If you want to be able to see assembly code level annotation, specify
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.dump-instr">--dump-instr</a>=yes</code>. This will produce
+-  profile data at instruction granularity. Note that the resulting profile
+-  data
+-  can only be viewed with KCachegrind. For assembly annotation, it also is
+-  interesting to see more details of the control flow inside of functions,
+-  i.e. (conditional) jumps. This will be collected by further specifying
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.collect-jumps">--collect-jumps</a>=yes</code>.</p>
+-</div>
+-</div>
+-<div class="sect1" title="6.2. Advanced Usage">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.usage"></a>6.2. Advanced Usage</h2></div></div></div>
+-<div class="sect2" title="6.2.1. Multiple profiling dumps from one program run">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.dumps"></a>6.2.1. Multiple profiling dumps from one program run</h3></div></div></div>
+-<p>Sometimes you are not interested in characteristics of a full 
+-  program run, but only of a small part of it, for example execution of one
+-  algorithm.  If there are multiple algorithms, or one algorithm 
+-  running with different input data, it may even be useful to get different
+-  profile information for different parts of a single program run.</p>
+-<p>Profile data files have names of the form
+-</p>
+-<pre class="screen">
+-callgrind.out.<span class="emphasis"><em>pid</em></span>.<span class="emphasis"><em>part</em></span>-<span class="emphasis"><em>threadID</em></span>
+-</pre>
+-<p>
+-  </p>
+-<p>where <span class="emphasis"><em>pid</em></span> is the PID of the running 
+-  program, <span class="emphasis"><em>part</em></span> is a number incremented on each
+-  dump (".part" is skipped for the dump at program termination), and 
+-  <span class="emphasis"><em>threadID</em></span> is a thread identification 
+-  ("-threadID" is only used if you request dumps of individual 
+-  threads with <code class="option"><a class="xref" href="cl-manual.html#opt.separate-threads">--separate-threads</a>=yes</code>).</p>
+-<p>There are different ways to generate multiple profile dumps 
+-  while a program is running under Callgrind's supervision.  Nevertheless,
+-  all methods trigger the same action, which is "dump all profile 
+-  information since the last dump or program start, and zero cost 
+-  counters afterwards".  To allow for zeroing cost counters without
+-  dumping, there is a second action "zero all cost counters now". 
+-  The different methods are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><span class="command"><strong>Dump on program termination.</strong></span>
+-      This method is the standard way and doesn't need any special
+-      action on your part.</p></li>
+-<li class="listitem">
+-<p><span class="command"><strong>Spontaneous, interactive dumping.</strong></span> Use
+-      </p>
+-<pre class="screen">callgrind_control -d [hint [PID/Name]]</pre>
+-<p> to 
+-      request the dumping of profile information of the supervised
+-      application with PID or Name.  <span class="emphasis"><em>hint</em></span> is an
+-      arbitrary string you can optionally specify to later be able to
+-      distinguish profile dumps.  The control program will not terminate
+-      before the dump is completely written.  Note that the application
+-      must be actively running for detection of the dump command. So,
+-      for a GUI application, resize the window, or for a server, send a
+-      request.</p>
+-<p>If you are using <a class="ulink" href="http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindIndex" target="_top">KCachegrind</a>
+-      for browsing of profile information, you can use the toolbar
+-      button <span class="command"><strong>Force dump</strong></span>. This will request a dump
+-      and trigger a reload after the dump is written.</p>
+-</li>
+-<li class="listitem"><p><span class="command"><strong>Periodic dumping after execution of a specified
+-      number of basic blocks</strong></span>. For this, use the command line
+-      option <code class="option"><a class="xref" href="cl-manual.html#opt.dump-every-bb">--dump-every-bb</a>=count</code>.
+-      </p></li>
+-<li class="listitem">
+-<p><span class="command"><strong>Dumping at enter/leave of specified functions.</strong></span>
+-      Use the
+-      option <code class="option"><a class="xref" href="cl-manual.html#opt.dump-before">--dump-before</a>=function</code>
+-      and <code class="option"><a class="xref" href="cl-manual.html#opt.dump-after">--dump-after</a>=function</code>.
+-      To zero cost counters before entering a function, use
+-      <code class="option"><a class="xref" href="cl-manual.html#opt.zero-before">--zero-before</a>=function</code>.</p>
+-<p>You can specify these options multiple times for different
+-      functions. Function specifications support wildcards: e.g. use
+-      <code class="option"><a class="xref" href="cl-manual.html#opt.dump-before">--dump-before</a>='foo*'</code> to
+-      generate dumps before entering any function starting with 
+-      <span class="emphasis"><em>foo</em></span>.</p>
+-</li>
+-<li class="listitem"><p><span class="command"><strong>Program controlled dumping.</strong></span>
+-      Insert
+-      <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.dump-stats">CALLGRIND_DUMP_STATS</a>;</code>
+-      at the position in your code where you want a profile dump to happen. Use 
+-      <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.zero-stats">CALLGRIND_ZERO_STATS</a>;</code> to only 
+-      zero profile counters.
+-      See <a class="xref" href="cl-manual.html#cl-manual.clientrequests" title="6.5. Callgrind specific client requests">Client request reference</a> for more information on
+-      Callgrind specific client requests.</p></li>
+-</ul></div>
+-<p>If you are running a multi-threaded application and specify the
+-  command line option <code class="option"><a class="xref" href="cl-manual.html#opt.separate-threads">--separate-threads</a>=yes</code>, 
+-  every thread will be profiled on its own and will create its own
+-  profile dump. Thus, the last two methods will only generate one dump
+-  of the currently running thread. With the other methods, you will get
+-  multiple dumps (one for each thread) on a dump request.</p>
+-</div>
+-<div class="sect2" title="6.2.2. Limiting the range of collected events">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.limits"></a>6.2.2. Limiting the range of collected events</h3></div></div></div>
+-<p>For aggregating events (function enter/leave,
+-  instruction execution, memory access) into event numbers,
+-  first, the events must be recognizable by Callgrind, and second,
+-  the collection state must be enabled.</p>
+-<p>Event collection is only possible if <span class="emphasis"><em>instrumentation</em></span>
+-  for program code is enabled. This is the default, but for faster
+-  execution (identical to <code class="computeroutput">valgrind --tool=none</code>),
+-  it can be disabled until the program reaches a state in which
+-  you want to start collecting profiling data.  
+-  Callgrind can start without instrumentation
+-  by specifying option <code class="option"><a class="xref" href="cl-manual.html#opt.instr-atstart">--instr-atstart</a>=no</code>.
+-  Instrumentation can be enabled interactively
+-  with: </p>
+-<pre class="screen">callgrind_control -i on</pre>
+-<p>
+-  and off by specifying "off" instead of "on".
+-  Furthermore, instrumentation state can be programatically changed with
+-  the macros <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.start-instr">CALLGRIND_START_INSTRUMENTATION</a>;</code>
+-  and <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.stop-instr">CALLGRIND_STOP_INSTRUMENTATION</a>;</code>.
+-  </p>
+-<p>In addition to enabling instrumentation, you must also enable
+-  event collection for the parts of your program you are interested in.
+-  By default, event collection is enabled everywhere.
+-  You can limit collection to a specific function
+-  by using 
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.toggle-collect">--toggle-collect</a>=function</code>. 
+-  This will toggle the collection state on entering and leaving
+-  the specified functions.
+-  When this option is in effect, the default collection state
+-  at program start is "off".  Only events happening while running
+-  inside of the given function will be collected. Recursive
+-  calls of the given function do not trigger any action.</p>
+-<p>It is important to note that with instrumentation disabled, the
+-  cache simulator cannot see any memory access events, and thus, any
+-  simulated cache state will be frozen and wrong without instrumentation.
+-  Therefore, to get useful cache events (hits/misses) after switching on
+-  instrumentation, the cache first must warm up,
+-  probably leading to many <span class="emphasis"><em>cold misses</em></span>
+-  which would not have happened in reality. If you do not want to see these,
+-  start event collection a few million instructions after you have enabled
+-  instrumentation.</p>
+-</div>
+-<div class="sect2" title="6.2.3. Counting global bus events">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.busevents"></a>6.2.3. Counting global bus events</h3></div></div></div>
+-<p>For access to shared data among threads in a multithreaded
+-  code, synchronization is required to avoid raced conditions.
+-  Synchronization primitives are usually implemented via atomic instructions.
+-  However, excessive use of such instructions can lead to performance
+-  issues.</p>
+-<p>To enable analysis of this problem, Callgrind optionally can count
+-  the number of atomic instructions executed. More precisely, for x86/x86_64,
+-  these are instructions using a lock prefix. For architectures supporting
+-  LL/SC, these are the number of SC instructions executed. For both, the term
+-  "global bus events" is used.</p>
+-<p>The short name of the event type used for global bus events is "Ge".
+-  To count global bus events, use <code class="option"><a class="xref" href="cl-manual.html#clopt.collect-bus">--collect-bus</a>=yes</code>.
+-  </p>
+-</div>
+-<div class="sect2" title="6.2.4. Avoiding cycles">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.cycles"></a>6.2.4. Avoiding cycles</h3></div></div></div>
+-<p>Informally speaking, a cycle is a group of functions which
+-  call each other in a recursive way.</p>
+-<p>Formally speaking, a cycle is a nonempty set S of functions,
+-  such that for every pair of functions F and G in S, it is possible
+-  to call from F to G (possibly via intermediate functions) and also
+-  from G to F.  Furthermore, S must be maximal -- that is, be the
+-  largest set of functions satisfying this property.  For example, if
+-  a third function H is called from inside S and calls back into S,
+-  then H is also part of the cycle and should be included in S.</p>
+-<p>Recursion is quite usual in programs, and therefore, cycles
+-  sometimes appear in the call graph output of Callgrind. However,
+-  the title of this chapter should raise two questions: What is bad
+-  about cycles which makes you want to avoid them? And: How can
+-  cycles be avoided without changing program code?</p>
+-<p>Cycles are not bad in itself, but tend to make performance
+-  analysis of your code harder. This is because inclusive costs
+-  for calls inside of a cycle are meaningless. The definition of
+-  inclusive cost, i.e. self cost of a function plus inclusive cost
+-  of its callees, needs a topological order among functions. For
+-  cycles, this does not hold true: callees of a function in a cycle include
+-  the function itself. Therefore, KCachegrind does cycle detection
+-  and skips visualization of any inclusive cost for calls inside
+-  of cycles. Further, all functions in a cycle are collapsed into artifical
+-  functions called like <code class="computeroutput">Cycle 1</code>.</p>
+-<p>Now, when a program exposes really big cycles (as is
+-  true for some GUI code, or in general code using event or callback based
+-  programming style), you lose the nice property to let you pinpoint
+-  the bottlenecks by following call chains from
+-  <code class="function">main</code>, guided via
+-  inclusive cost. In addition, KCachegrind loses its ability to show
+-  interesting parts of the call graph, as it uses inclusive costs to
+-  cut off uninteresting areas.</p>
+-<p>Despite the meaningless of inclusive costs in cycles, the big
+-  drawback for visualization motivates the possibility to temporarily
+-  switch off cycle detection in KCachegrind, which can lead to
+-  misguiding visualization. However, often cycles appear because of
+-  unlucky superposition of independent call chains in a way that
+-  the profile result will see a cycle. Neglecting uninteresting
+-  calls with very small measured inclusive cost would break these
+-  cycles. In such cases, incorrect handling of cycles by not detecting
+-  them still gives meaningful profiling visualization.</p>
+-<p>It has to be noted that currently, <span class="command"><strong>callgrind_annotate</strong></span>
+-  does not do any cycle detection at all. For program executions with function
+-  recursion, it e.g. can print nonsense inclusive costs way above 100%.</p>
+-<p>After describing why cycles are bad for profiling, it is worth
+-  talking about cycle avoidance. The key insight here is that symbols in
+-  the profile data do not have to exactly match the symbols found in the
+-  program. Instead, the symbol name could encode additional information
+-  from the current execution context such as recursion level of the
+-  current function, or even some part of the call chain leading to the
+-  function. While encoding of additional information into symbols is
+-  quite capable of avoiding cycles, it has to be used carefully to not cause
+-  symbol explosion. The latter imposes large memory requirement for Callgrind
+-  with possible out-of-memory conditions, and big profile data files.</p>
+-<p>A further possibility to avoid cycles in Callgrind's profile data
+-  output is to simply leave out given functions in the call graph. Of course, this
+-  also skips any call information from and to an ignored function, and thus can
+-  break a cycle. Candidates for this typically are dispatcher functions in event
+-  driven code. The option to ignore calls to a function is
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.fn-skip">--fn-skip</a>=function</code>. Aside from
+-  possibly breaking cycles, this is used in Callgrind to skip
+-  trampoline functions in the PLT sections
+-  for calls to functions in shared libraries. You can see the difference
+-  if you profile with <code class="option"><a class="xref" href="cl-manual.html#opt.skip-plt">--skip-plt</a>=no</code>.
+-  If a call is ignored, its cost events will be propagated to the
+-  enclosing function.</p>
+-<p>If you have a recursive function, you can distinguish the first
+-  10 recursion levels by specifying
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.separate-recs-num">--separate-recs10</a>=function</code>.  
+-  Or for all functions with 
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.separate-recs">--separate-recs</a>=10</code>, but this will 
+-  give you much bigger profile data files.  In the profile data, you will see
+-  the recursion levels of "func" as the different functions with names
+-  "func", "func'2", "func'3" and so on.</p>
+-<p>If you have call chains "A > B > C" and "A > C > B"
+-  in your program, you usually get a "false" cycle "B <> C". Use 
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.separate-callers-num">--separate-callers2</a>=B</code> 
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.separate-callers-num">--separate-callers2</a>=C</code>,
+-  and functions "B" and "C" will be treated as different functions 
+-  depending on the direct caller. Using the apostrophe for appending 
+-  this "context" to the function name, you get "A > B'A > C'B" 
+-  and "A > C'A > B'C", and there will be no cycle. Use 
+-  <code class="option"><a class="xref" href="cl-manual.html#opt.separate-callers">--separate-callers</a>=2</code> to get a 2-caller 
+-  dependency for all functions.  Note that doing this will increase
+-  the size of profile data files.</p>
+-</div>
+-<div class="sect2" title="6.2.5. Forking Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.forkingprograms"></a>6.2.5. Forking Programs</h3></div></div></div>
+-<p>If your program forks, the child will inherit all the profiling
+-  data that has been gathered for the parent. To start with empty profile
+-  counter values in the child, the client request
+-  <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.zero-stats">CALLGRIND_ZERO_STATS</a>;</code>
+-  can be inserted into code to be executed by the child, directly after
+-  <code class="computeroutput">fork</code>.</p>
+-<p>However, you will have to make sure that the output file format string
+-  (controlled by <code class="option">--callgrind-out-file</code>) does contain
+-  <code class="option">%p</code> (which is true by default). Otherwise, the
+-  outputs from the parent and child will overwrite each other or will be
+-  intermingled, which almost certainly is not what you want.</p>
+-<p>You will be able to control the new child independently from
+-  the parent via callgrind_control.</p>
+-</div>
+-</div>
+-<div class="sect1" title="6.3. Callgrind Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.options"></a>6.3. Callgrind Command-line Options</h2></div></div></div>
+-<p>
+-In the following, options are grouped into classes.
+-</p>
+-<p>
+-Some options allow the specification of a function/symbol name, such as
+-<code class="option"><a class="xref" href="cl-manual.html#opt.dump-before">--dump-before</a>=function</code>, or
+-<code class="option"><a class="xref" href="cl-manual.html#opt.fn-skip">--fn-skip</a>=function</code>. All these options
+-can be specified multiple times for different functions.
+-In addition, the function specifications actually are patterns by supporting
+-the use of wildcards '*' (zero or more arbitrary characters) and '?'
+-(exactly one arbitrary character), similar to file name globbing in the
+-shell. This feature is important especially for C++, as without wildcard
+-usage, the function would have to be specified in full extent, including
+-parameter signature. </p>
+-<div class="sect2" title="6.3.1. Dump creation options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.creation"></a>6.3.1. Dump creation options</h3></div></div></div>
+-<p>
+-These options influence the name and format of the profile data files.
+-</p>
+-<div class="variablelist">
+-<a name="cl.opts.list.creation"></a><dl>
+-<dt>
+-<a name="opt.callgrind-out-file"></a><span class="term">
+-      <code class="option">--callgrind-out-file=<file> </code>
+-    </span>
+-</dt>
+-<dd><p>Write the profile data to
+-            <code class="computeroutput">file</code> rather than to the default
+-            output file,
+-            <code class="computeroutput">callgrind.out.<pid></code>.  The
+-            <code class="option">%p</code> and <code class="option">%q</code> format specifiers
+-            can be used to embed the process ID and/or the contents of an
+-            environment variable in the name, as is the case for the core
+-            option <code class="option"><a class="xref" href="manual-core.html#opt.log-file">--log-file</a></code>.
+-            When multiple dumps are made, the file name
+-            is modified further; see below.</p></dd>
+-<dt>
+-<a name="opt.dump-line"></a><span class="term">
+-      <code class="option">--dump-line=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>This specifies that event counting should be performed at
+-      source line granularity. This allows source annotation for sources
+-      which are compiled with debug information
+-      (<code class="option">-g</code>).</p></dd>
+-<dt>
+-<a name="opt.dump-instr"></a><span class="term">
+-      <code class="option">--dump-instr=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>This specifies that event counting should be performed at
+-      per-instruction granularity.
+-      This allows for assembly code
+-      annotation.  Currently the results can only be 
+-      displayed by KCachegrind.</p></dd>
+-<dt>
+-<a name="opt.compress-strings"></a><span class="term">
+-      <code class="option">--compress-strings=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>This option influences the output format of the profile data.
+-      It specifies whether strings (file and function names) should be
+-      identified by numbers. This shrinks the file, 
+-      but makes it more difficult
+-      for humans to read (which is not recommended in any case).</p></dd>
+-<dt>
+-<a name="opt.compress-pos"></a><span class="term">
+-      <code class="option">--compress-pos=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>This option influences the output format of the profile data.
+-      It specifies whether numerical positions are always specified as absolute
+-      values or are allowed to be relative to previous numbers.
+-      This shrinks the file size.</p></dd>
+-<dt>
+-<a name="opt.combine-dumps"></a><span class="term">
+-      <code class="option">--combine-dumps=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, when multiple profile data parts are to be
+-      generated these parts are appended to the same output file.
+-      Not recommended.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="6.3.2. Activity options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.activity"></a>6.3.2. Activity options</h3></div></div></div>
+-<p>
+-These options specify when actions relating to event counts are to
+-be executed. For interactive control use callgrind_control.
+-</p>
+-<div class="variablelist">
+-<a name="cl.opts.list.activity"></a><dl>
+-<dt>
+-<a name="opt.dump-every-bb"></a><span class="term">
+-      <code class="option">--dump-every-bb=<count> [default: 0, never] </code>
+-    </span>
+-</dt>
+-<dd><p>Dump profile data every <code class="option">count</code> basic blocks.
+-      Whether a dump is needed is only checked when Valgrind's internal
+-      scheduler is run. Therefore, the minimum setting useful is about 100000.
+-      The count is a 64-bit value to make long dump periods possible.
+-      </p></dd>
+-<dt>
+-<a name="opt.dump-before"></a><span class="term">
+-      <code class="option">--dump-before=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Dump when entering <code class="option">function</code>.</p></dd>
+-<dt>
+-<a name="opt.zero-before"></a><span class="term">
+-      <code class="option">--zero-before=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Zero all costs when entering <code class="option">function</code>.</p></dd>
+-<dt>
+-<a name="opt.dump-after"></a><span class="term">
+-      <code class="option">--dump-after=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Dump when leaving <code class="option">function</code>.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="6.3.3. Data collection options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.collection"></a>6.3.3. Data collection options</h3></div></div></div>
+-<p>
+-These options specify when events are to be aggregated into event counts.
+-Also see <a class="xref" href="cl-manual.html#cl-manual.limits" title="6.2.2. Limiting the range of collected events">Limiting range of event collection</a>.</p>
+-<div class="variablelist">
+-<a name="cl.opts.list.collection"></a><dl>
+-<dt>
+-<a name="opt.instr-atstart"></a><span class="term">
+-      <code class="option">--instr-atstart=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specify if you want Callgrind to start simulation and
+-      profiling from the beginning of the program.  
+-      When set to <code class="computeroutput">no</code>, 
+-      Callgrind will not be able
+-      to collect any information, including calls, but it will have at
+-      most a slowdown of around 4, which is the minimum Valgrind
+-      overhead.  Instrumentation can be interactively enabled via
+-      <code class="computeroutput">callgrind_control -i on</code>.</p>
+-<p>Note that the resulting call graph will most probably not
+-      contain <code class="function">main</code>, but will contain all the
+-      functions executed after instrumentation was enabled.
+-      Instrumentation can also programatically enabled/disabled. See the
+-      Callgrind include file
+-      <code class="computeroutput">callgrind.h</code> for the macro
+-      you have to use in your source code.</p>
+-<p>For cache
+-      simulation, results will be less accurate when switching on
+-      instrumentation later in the program run, as the simulator starts
+-      with an empty cache at that moment.  Switch on event collection
+-      later to cope with this error.</p>
+-</dd>
+-<dt>
+-<a name="opt.collect-atstart"></a><span class="term">
+-      <code class="option">--collect-atstart=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specify whether event collection is enabled at beginning
+-      of the profile run.</p>
+-<p>To only look at parts of your program, you have two
+-      possibilities:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>Zero event counters before entering the program part you
+-        want to profile, and dump the event counters to a file after
+-        leaving that program part.</p></li>
+-<li class="listitem"><p>Switch on/off collection state as needed to only see
+-          event counters happening while inside of the program part you
+-          want to profile.</p></li>
+-</ol></div>
+-<p>The second option can be used if the program part you want to
+-      profile is called many times. Option 1, i.e. creating a lot of
+-      dumps is not practical here.</p>
+-<p>Collection state can be
+-      toggled at entry and exit of a given function with the
+-      option <code class="option"><a class="xref" href="cl-manual.html#opt.toggle-collect">--toggle-collect</a></code>.  If you
+-      use this option, collection
+-      state should be disabled at the beginning.  Note that the
+-      specification of <code class="option">--toggle-collect</code>
+-      implicitly sets
+-      <code class="option">--collect-state=no</code>.</p>
+-<p>Collection state can be toggled also by inserting the client request
+-      <code class="computeroutput">
+-      
+-      CALLGRIND_TOGGLE_COLLECT
+-      ;</code>
+-      at the needed code positions.</p>
+-</dd>
+-<dt>
+-<a name="opt.toggle-collect"></a><span class="term">
+-      <code class="option">--toggle-collect=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Toggle collection on entry/exit of <code class="option">function</code>.</p></dd>
+-<dt>
+-<a name="opt.collect-jumps"></a><span class="term">
+-      <code class="option">--collect-jumps=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>This specifies whether information for (conditional) jumps
+-      should be collected.  As above, callgrind_annotate currently is not
+-      able to show you the data.  You have to use KCachegrind to get jump
+-      arrows in the annotated code.</p></dd>
+-<dt>
+-<a name="opt.collect-systime"></a><span class="term">
+-      <code class="option">--collect-systime=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>This specifies whether information for system call times
+-      should be collected.</p></dd>
+-<dt>
+-<a name="clopt.collect-bus"></a><span class="term">
+-      <code class="option">--collect-bus=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>This specifies whether the number of global bus events executed
+-      should be collected. The event type "Ge" is used for these events.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="6.3.4. Cost entity separation options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.separation"></a>6.3.4. Cost entity separation options</h3></div></div></div>
+-<p>
+-These options specify how event counts should be attributed to execution
+-contexts.
+-For example, they specify whether the recursion level or the
+-call chain leading to a function should be taken into account, 
+-and whether the thread ID should be considered.
+-Also see <a class="xref" href="cl-manual.html#cl-manual.cycles" title="6.2.4. Avoiding cycles">Avoiding cycles</a>.</p>
+-<div class="variablelist">
+-<a name="cmd-options.separation"></a><dl>
+-<dt>
+-<a name="opt.separate-threads"></a><span class="term">
+-      <code class="option">--separate-threads=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>This option specifies whether profile data should be generated
+-      separately for every thread. If yes, the file names get "-threadID"
+-      appended.</p></dd>
+-<dt>
+-<a name="opt.separate-callers"></a><span class="term">
+-      <code class="option">--separate-callers=<callers> [default: 0] </code>
+-    </span>
+-</dt>
+-<dd><p>Separate contexts by at most <callers> functions in the
+-      call chain. See <a class="xref" href="cl-manual.html#cl-manual.cycles" title="6.2.4. Avoiding cycles">Avoiding cycles</a>.</p></dd>
+-<dt>
+-<a name="opt.separate-callers-num"></a><span class="term">
+-      <code class="option">--separate-callers<number>=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Separate <code class="option">number</code> callers for <code class="option">function</code>.
+-      See <a class="xref" href="cl-manual.html#cl-manual.cycles" title="6.2.4. Avoiding cycles">Avoiding cycles</a>.</p></dd>
+-<dt>
+-<a name="opt.separate-recs"></a><span class="term">
+-      <code class="option">--separate-recs=<level> [default: 2] </code>
+-    </span>
+-</dt>
+-<dd><p>Separate function recursions by at most <code class="option">level</code> levels.
+-      See <a class="xref" href="cl-manual.html#cl-manual.cycles" title="6.2.4. Avoiding cycles">Avoiding cycles</a>.</p></dd>
+-<dt>
+-<a name="opt.separate-recs-num"></a><span class="term">
+-      <code class="option">--separate-recs<number>=<function> </code>
+-    </span>
+-</dt>
+-<dd><p>Separate <code class="option">number</code> recursions for <code class="option">function</code>.
+-      See <a class="xref" href="cl-manual.html#cl-manual.cycles" title="6.2.4. Avoiding cycles">Avoiding cycles</a>.</p></dd>
+-<dt>
+-<a name="opt.skip-plt"></a><span class="term">
+-      <code class="option">--skip-plt=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>Ignore calls to/from PLT sections.</p></dd>
+-<dt>
+-<a name="opt.skip-direct-rec"></a><span class="term">
+-      <code class="option">--skip-direct-rec=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>Ignore direct recursions.</p></dd>
+-<dt>
+-<a name="opt.fn-skip"></a><span class="term">
+-      <code class="option">--fn-skip=<function> </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Ignore calls to/from a given function.  E.g. if you have a
+-      call chain A > B > C, and you specify function B to be
+-      ignored, you will only see A > C.</p>
+-<p>This is very convenient to skip functions handling callback
+-      behaviour.  For example, with the signal/slot mechanism in the
+-      Qt graphics library, you only want
+-      to see the function emitting a signal to call the slots connected
+-      to that signal. First, determine the real call chain to see the
+-      functions needed to be skipped, then use this option.</p>
+-</dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="6.3.5. Simulation options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.simulation"></a>6.3.5. Simulation options</h3></div></div></div>
+-<div class="variablelist">
+-<a name="cl.opts.list.simulation"></a><dl>
+-<dt>
+-<a name="clopt.cache-sim"></a><span class="term">
+-      <code class="option">--cache-sim=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specify if you want to do full cache simulation.  By default,
+-      only instruction read accesses will be counted ("Ir").
+-      With cache simulation, further event counters are enabled:
+-      Cache misses on instruction reads ("I1mr"/"ILmr"),
+-      data read accesses ("Dr") and related cache misses ("D1mr"/"DLmr"),
+-      data write accesses ("Dw") and related cache misses ("D1mw"/"DLmw").
+-      For more information, see <a class="xref" href="cg-manual.html" title="5. Cachegrind: a cache and branch-prediction profiler">Cachegrind: a cache and branch-prediction profiler</a>.
+-      </p></dd>
+-<dt>
+-<a name="clopt.branch-sim"></a><span class="term">
+-      <code class="option">--branch-sim=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specify if you want to do branch prediction simulation.
+-      Further event counters are enabled: Number of executed conditional
+-      branches and related predictor misses ("Bc"/"Bcm"), executed indirect
+-      jumps and related misses of the jump address predictor ("Bi"/"Bim").
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="6.3.6. Cache simulation options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="cl-manual.options.cachesimulation"></a>6.3.6. Cache simulation options</h3></div></div></div>
+-<div class="variablelist">
+-<a name="cl.opts.list.cachesimulation"></a><dl>
+-<dt>
+-<a name="opt.simulate-wb"></a><span class="term">
+-      <code class="option">--simulate-wb=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specify whether write-back behavior should be simulated, allowing
+-      to distinguish LL caches misses with and without write backs.
+-      The cache model of Cachegrind/Callgrind does not specify write-through
+-      vs. write-back behavior, and this also is not relevant for the number
+-      of generated miss counts. However, with explicit write-back simulation
+-      it can be decided whether a miss triggers not only the loading of a new
+-      cache line, but also if a write back of a dirty cache line had to take
+-      place before. The new dirty miss events are ILdmr, DLdmr, and DLdmw,
+-      for misses because of instruction read, data read, and data write,
+-      respectively. As they produce two memory transactions, they should
+-      account for a doubled time estimation in relation to a normal miss.
+-      </p></dd>
+-<dt>
+-<a name="opt.simulate-hwpref"></a><span class="term">
+-      <code class="option">--simulate-hwpref=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specify whether simulation of a hardware prefetcher should be
+-      added which is able to detect stream access in the second level cache
+-      by comparing accesses to separate to each page.
+-      As the simulation can not decide about any timing issues of prefetching,
+-      it is assumed that any hardware prefetch triggered succeeds before a
+-      real access is done. Thus, this gives a best-case scenario by covering
+-      all possible stream accesses.</p></dd>
+-<dt>
+-<a name="opt.cacheuse"></a><span class="term">
+-      <code class="option">--cacheuse=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specify whether cache line use should be collected. For every
+-      cache line, from loading to it being evicted, the number of accesses
+-      as well as the number of actually used bytes is determined. This
+-      behavior is related to the code which triggered loading of the cache
+-      line. In contrast to miss counters, which shows the position where
+-      the symptoms of bad cache behavior (i.e. latencies) happens, the
+-      use counters try to pinpoint at the reason (i.e. the code with the
+-      bad access behavior). The new counters are defined in a way such
+-      that worse behavior results in higher cost.
+-      AcCost1 and AcCost2 are counters showing bad temporal locality
+-      for L1 and LL caches, respectively. This is done by summing up
+-      reciprocal values of the numbers of accesses of each cache line,
+-      multiplied by 1000 (as only integer costs are allowed). E.g. for
+-      a given source line with 5 read accesses, a value of 5000 AcCost
+-      means that for every access, a new cache line was loaded and directly
+-      evicted afterwards without further accesses. Similarly, SpLoss1/2
+-      shows bad spatial locality for L1 and LL caches, respectively. It
+-      gives the <span class="emphasis"><em>spatial loss</em></span> count of bytes which
+-      were loaded into cache but never accessed. It pinpoints at code
+-      accessing data in a way such that cache space is wasted. This hints
+-      at bad layout of data structures in memory. Assuming a cache line
+-      size of 64 bytes and 100 L1 misses for a given source line, the
+-      loading of 6400 bytes into L1 was triggered. If SpLoss1 shows a
+-      value of 3200 for this line, this means that half of the loaded data was
+-      never used, or using a better data layout, only half of the cache
+-      space would have been needed.
+-      Please note that for cache line use counters, it currently is
+-      not possible to provide meaningful inclusive costs. Therefore,
+-      inclusive cost of these counters should be ignored.
+-      </p></dd>
+-<dt>
+-<a name="opt.I1"></a><span class="term">
+-      <code class="option">--I1=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the level 1
+-      instruction cache.  </p></dd>
+-<dt>
+-<a name="opt.D1"></a><span class="term">
+-      <code class="option">--D1=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the level 1
+-      data cache.</p></dd>
+-<dt>
+-<a name="opt.LL"></a><span class="term">
+-      <code class="option">--LL=<size>,<associativity>,<line size> </code>
+-    </span>
+-</dt>
+-<dd><p>Specify the size, associativity and line size of the last-level
+-      cache.</p></dd>
+-</dl>
+-</div>
+-</div>
+-</div>
+-<div class="sect1" title="6.4. Callgrind Monitor Commands">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.monitor-commands"></a>6.4. Callgrind Monitor Commands</h2></div></div></div>
+-<p>The Callgrind tool provides monitor commands handled by the Valgrind
+-gdbserver (see <a class="xref" href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling" title="3.2.5. Monitor command handling by the Valgrind gdbserver">Monitor command handling by the Valgrind gdbserver</a>).
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">dump [<dump_hint>]</code> requests to dump the
+-    profile data. </p></li>
+-<li class="listitem"><p><code class="varname">zero</code> requests to zero the profile data
+-    counters. </p></li>
+-<li class="listitem"><p><code class="varname">instrumentation [on|off]</code> requests to set 
+-    (if parameter on/off is given) or get the current instrumentation state.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">status</code> requests to print out some status
+-    information.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="6.5. Callgrind specific client requests">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.clientrequests"></a>6.5. Callgrind specific client requests</h2></div></div></div>
+-<p>Callgrind provides the following specific client requests in
+-<code class="filename">callgrind.h</code>.  See that file for the exact details of
+-their arguments.</p>
+-<div class="variablelist">
+-<a name="cl.clientrequests.list"></a><dl>
+-<dt>
+-<a name="cr.dump-stats"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_DUMP_STATS</code>
+-    </span>
+-</dt>
+-<dd><p>Force generation of a profile dump at specified position
+-      in code, for the current thread only. Written counters will be reset
+-      to zero.</p></dd>
+-<dt>
+-<a name="cr.dump-stats-at"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_DUMP_STATS_AT(string)</code>
+-    </span>
+-</dt>
+-<dd><p>Same as <code class="computeroutput">CALLGRIND_DUMP_STATS</code>,
+-      but allows to specify a string to be able to distinguish profile
+-      dumps.</p></dd>
+-<dt>
+-<a name="cr.zero-stats"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_ZERO_STATS</code>
+-    </span>
+-</dt>
+-<dd><p>Reset the profile counters for the current thread to zero.</p></dd>
+-<dt>
+-<a name="cr.toggle-collect"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_TOGGLE_COLLECT</code>
+-    </span>
+-</dt>
+-<dd><p>Toggle the collection state. This allows to ignore events
+-      with regard to profile counters. See also options
+-      <code class="option"><a class="xref" href="cl-manual.html#opt.collect-atstart">--collect-atstart</a></code> and
+-      <code class="option"><a class="xref" href="cl-manual.html#opt.toggle-collect">--toggle-collect</a></code>.</p></dd>
+-<dt>
+-<a name="cr.start-instr"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_START_INSTRUMENTATION</code>
+-    </span>
+-</dt>
+-<dd><p>Start full Callgrind instrumentation if not already enabled.
+-      When cache simulation is done, this will flush the simulated cache
+-      and lead to an artifical cache warmup phase afterwards with
+-      cache misses which would not have happened in reality.  See also
+-      option <code class="option"><a class="xref" href="cl-manual.html#opt.instr-atstart">--instr-atstart</a></code>.</p></dd>
+-<dt>
+-<a name="cr.stop-instr"></a><span class="term">
+-      <code class="computeroutput">CALLGRIND_STOP_INSTRUMENTATION</code>
+-    </span>
+-</dt>
+-<dd><p>Stop full Callgrind instrumentation if not already disabled.
+-      This flushes Valgrinds translation cache, and does no additional
+-      instrumentation afterwards: it effectivly will run at the same
+-      speed as Nulgrind, i.e. at minimal slowdown. Use this to
+-      speed up the Callgrind run for uninteresting code parts. Use
+-      <code class="computeroutput"><a class="xref" href="cl-manual.html#cr.start-instr">CALLGRIND_START_INSTRUMENTATION</a></code> to
+-      enable instrumentation again.  See also option
+-      <code class="option"><a class="xref" href="cl-manual.html#opt.instr-atstart">--instr-atstart</a></code>.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="6.6. callgrind_annotate Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.callgrind_annotate-options"></a>6.6. callgrind_annotate Command-line Options</h2></div></div></div>
+-<div class="variablelist">
+-<a name="callgrind_annotate.opts.list"></a><dl>
+-<dt><span class="term"><code class="option">-h --help</code></span></dt>
+-<dd><p>Show summary of options.</p></dd>
+-<dt><span class="term"><code class="option">--version</code></span></dt>
+-<dd><p>Show version of callgrind_annotate.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--show=A,B,C [default: all]</code>
+-    </span></dt>
+-<dd><p>Only show figures for events A,B,C.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--sort=A,B,C</code>
+-    </span></dt>
+-<dd><p>Sort columns by events A,B,C [event column order].</p></dd>
+-<dt><span class="term">
+-      <code class="option">--threshold=<0--100> [default: 99%] </code>
+-    </span></dt>
+-<dd><p>Percentage of counts (of primary sort event) we are 
+-      interested in.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--auto=<yes|no> [default: no] </code>
+-    </span></dt>
+-<dd><p>Annotate all source files containing functions that helped 
+-      reach the event count threshold.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--context=N [default: 8] </code>
+-    </span></dt>
+-<dd><p>Print N lines of context before and after annotated 
+-      lines.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--inclusive=<yes|no> [default: no] </code>
+-    </span></dt>
+-<dd><p>Add subroutine costs to functions calls.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--tree=<none|caller|calling|both> [default: none] </code>
+-    </span></dt>
+-<dd><p>Print for each function their callers, the called functions 
+-      or both.</p></dd>
+-<dt><span class="term">
+-      <code class="option">-I, --include=<dir> </code>
+-    </span></dt>
+-<dd><p>Add <code class="option">dir</code> to the list of directories to search
+-      for source files.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="6.7. callgrind_control Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="cl-manual.callgrind_control-options"></a>6.7. callgrind_control Command-line Options</h2></div></div></div>
+-<p>By default, callgrind_control acts on all programs run by the
+-  current user under Callgrind.  It is possible to limit the actions to
+-  specified Callgrind runs by providing a list of pids or program names as
+-  argument.  The default action is to give some brief information about the
+-  applications being run under Callgrind.</p>
+-<div class="variablelist">
+-<a name="callgrind_control.opts.list"></a><dl>
+-<dt><span class="term"><code class="option">-h --help</code></span></dt>
+-<dd><p>Show a short description, usage, and summary of options.</p></dd>
+-<dt><span class="term"><code class="option">--version</code></span></dt>
+-<dd><p>Show version of callgrind_control.</p></dd>
+-<dt><span class="term"><code class="option">-l --long</code></span></dt>
+-<dd><p>Show also the working directory, in addition to the brief
+-      information given by default.
+-      </p></dd>
+-<dt><span class="term"><code class="option">-s --stat</code></span></dt>
+-<dd><p>Show statistics information about active Callgrind runs.</p></dd>
+-<dt><span class="term"><code class="option">-b --back</code></span></dt>
+-<dd><p>Show stack/back traces of each thread in active Callgrind runs. For
+-      each active function in the stack trace, also the number of invocations
+-      since program start (or last dump) is shown. This option can be
+-      combined with -e to show inclusive cost of active functions.</p></dd>
+-<dt><span class="term"><code class="option">-e [A,B,...] </code> (default: all)</span></dt>
+-<dd><p>Show the current per-thread, exclusive cost values of event
+-      counters. If no explicit event names are given, figures for all event
+-      types which are collected in the given Callgrind run are
+-      shown. Otherwise, only figures for event types A, B, ... are shown. If
+-      this option is combined with -b, inclusive cost for the functions of
+-      each active stack frame is provided, too.
+-      </p></dd>
+-<dt><span class="term"><code class="option">--dump[=<desc>] </code> (default: no description)</span></dt>
+-<dd><p>Request the dumping of profile information. Optionally, a 
+-      description can be specified which is written into the dump as part of
+-      the information giving the reason which triggered the dump action. This
+-      can be used to distinguish multiple dumps.</p></dd>
+-<dt><span class="term"><code class="option">-z --zero</code></span></dt>
+-<dd><p>Zero all event counters.</p></dd>
+-<dt><span class="term"><code class="option">-k --kill</code></span></dt>
+-<dd><p>Force a Callgrind run to be terminated.</p></dd>
+-<dt><span class="term"><code class="option">--instr=<on|off></code></span></dt>
+-<dd><p>Switch instrumentation mode on or off. If a Callgrind run has
+-      instrumentation disabled, no simulation is done and no events are
+-      counted. This is useful to skip uninteresting program parts, as there
+-      is much less slowdown (same as with the Valgrind tool "none"). See also
+-      the Callgrind option <code class="option">--instr-atstart</code>.</p></dd>
+-<dt><span class="term"><code class="option">-w=<dir></code></span></dt>
+-<dd><p>Specify the startup directory of an active Callgrind run. On some
+-      systems, active Callgrind runs can not be detected. To be able to
+-      control these, the failed auto-detection can be worked around by
+-      specifying the directory where a Callgrind run was started.</p></dd>
+-</dl>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="cg-manual.html"><< 5. Cachegrind: a cache and branch-prediction profiler</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="hg-manual.html">7. Helgrind: a thread error detector >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/design-impl.html b/docs/html/design-impl.html
+deleted file mode 100644
+index a75d3ee..0000000
+--- a/docs/html/design-impl.html
++++ /dev/null
+@@ -1,84 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>1. The Design and Implementation of Valgrind</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="tech-docs.html" title="Valgrind Technical Documentation">
+-<link rel="prev" href="tech-docs.html" title="Valgrind Technical Documentation">
+-<link rel="next" href="manual-writing-tools.html" title="2. Writing a New Valgrind Tool">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="tech-docs.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="tech-docs.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Technical Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="manual-writing-tools.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="1. The Design and Implementation of Valgrind">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="design-impl"></a>1. The Design and Implementation of Valgrind</h2></div></div></div>
+-<p>A number of academic publications nicely describe many aspects
+-of Valgrind's design and implementation.  Online copies of all of
+-them, and others, are available on the <a class="ulink" href="http://www.valgrind.org/docs/pubs.html" target="_top">Valgrind
+-publications page</a>.</p>
+-<p>The following paper gives a good overview of Valgrind, and explains
+-how it differs from other dynamic binary instrumentation frameworks such as
+-Pin and DynamoRIO.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+-    <span class="command"><strong>Valgrind: A Framework for Heavyweight Dynamic Binary
+-    Instrumentation.  Nicholas Nethercote and Julian Seward.  Proceedings
+-    of ACM SIGPLAN 2007 Conference on Programming Language Design and
+-    Implementation (PLDI 2007), San Diego, California, USA, June
+-    2007.</strong></span>
+-    </p></li></ul></div>
+-<p>The following two papers together give a comprehensive description of
+-how most of Memcheck works.  The first paper describes in detail how
+-Memcheck's undefined value error detection (a.k.a. V bits) works.  The
+-second paper describes in detail how Memcheck's shadow memory is
+-implemented, and compares it to other alternative approaches.
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+-<p><span class="command"><strong>Using Valgrind to detect undefined value errors with
+-    bit-precision.  Julian Seward and Nicholas Nethercote.  Proceedings
+-    of the USENIX'05 Annual Technical Conference, Anaheim, California,
+-    USA, April 2005.</strong></span>  
+-    </p>
+-<p><span class="command"><strong>How to Shadow Every Byte of Memory Used by a Program.
+-    Nicholas Nethercote and Julian Seward.  Proceedings of the Third
+-    International ACM SIGPLAN/SIGOPS Conference on Virtual Execution
+-    Environments (VEE 2007), San Diego, California, USA, June
+-    2007.</strong></span>
+-    </p>
+-</li></ul></div>
+-<p>The following paper describes Callgrind.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="command"><strong>A Tool Suite for Simulation Based Analysis of Memory Access
+-    Behavior.  Josef Weidendorfer, Markus Kowarschik and Carsten
+-    Trinitis.  Proceedings of the 4th International Conference on
+-    Computational Science (ICCS 2004), Krakow, Poland, June 2004.</strong></span>
+-    </p></li></ul></div>
+-<p>The following dissertation describes Valgrind in some detail
+-(many of these details are now out-of-date) as well as Cachegrind,
+-Annelid and Redux.  It also covers some underlying theory about
+-dynamic binary analysis in general and what all these tools have in
+-common.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="command"><strong>Dynamic Binary Analysis and Instrumentation.  Nicholas
+-    Nethercote.</strong></span>  PhD Dissertation, University of Cambridge, November
+-    2004.</p></li></ul></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="tech-docs.html"><< Valgrind Technical Documentation</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="tech-docs.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="manual-writing-tools.html">2. Writing a New Valgrind Tool >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dh-manual.html b/docs/html/dh-manual.html
+deleted file mode 100644
+index 306e23a..0000000
+--- a/docs/html/dh-manual.html
++++ /dev/null
+@@ -1,362 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>10. DHAT: a dynamic heap analysis tool</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="ms-manual.html" title="9. Massif: a heap profiler">
+-<link rel="next" href="sg-manual.html" title="11. SGCheck: an experimental stack and global array overrun detector">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="ms-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="sg-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="10. DHAT: a dynamic heap analysis tool">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dh-manual"></a>10. DHAT: a dynamic heap analysis tool</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.overview">10.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.understanding">10.2. Understanding DHAT's output</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="dh-manual.html#id625080">10.2.1. Interpreting the max-live, tot-alloc and deaths fields</a></span></dt>
+-<dt><span class="sect2"><a href="dh-manual.html#id629340">10.2.2. Interpreting the acc-ratios fields</a></span></dt>
+-<dt><span class="sect2"><a href="dh-manual.html#id598919">10.2.3. Interpreting "Aggregated access counts by offset" data</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.options">10.3. DHAT Command-line Options</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=exp-dhat</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="10.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="dh-manual.overview"></a>10.1. Overview</h2></div></div></div>
+-<p>DHAT is a tool for examining how programs use their heap
+-allocations.</p>
+-<p>It tracks the allocated blocks, and inspects every memory access
+-to find which block, if any, it is to.  The following data is
+-collected and presented per allocation point (allocation
+-stack):</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Total allocation (number of bytes and
+-  blocks)</p></li>
+-<li class="listitem"><p>maximum live volume (number of bytes and
+-  blocks)</p></li>
+-<li class="listitem"><p>average block lifetime (number of instructions
+-   between allocation and freeing)</p></li>
+-<li class="listitem"><p>average number of reads and writes to each byte in
+-   the block ("access ratios")</p></li>
+-<li class="listitem"><p>for allocation points which always allocate blocks
+-   only of one size, and that size is 4096 bytes or less: counts
+-   showing how often each byte offset inside the block is
+-   accessed.</p></li>
+-</ul></div>
+-<p>Using these statistics it is possible to identify allocation
+-points with the following characteristics:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>potential process-lifetime leaks: blocks allocated
+-   by the point just accumulate, and are freed only at the end of the
+-   run.</p></li>
+-<li class="listitem"><p>excessive turnover: points which chew through a lot
+-  of heap, even if it is not held onto for very long</p></li>
+-<li class="listitem"><p>excessively transient: points which allocate very
+- short lived blocks</p></li>
+-<li class="listitem"><p>useless or underused allocations: blocks which are
+-  allocated but not completely filled in, or are filled in but not
+-  subsequently read.</p></li>
+-<li class="listitem"><p>blocks with inefficient layout -- areas never
+-  accessed, or with hot fields scattered throughout the
+-  block.</p></li>
+-</ul></div>
+-<p>As with the Massif heap profiler, DHAT measures program progress
+-by counting instructions, and so presents all age/time related figures
+-as instruction counts.  This sounds a little odd at first, but it
+-makes runs repeatable in a way which is not possible if CPU time is
+-used.</p>
+-</div>
+-<div class="sect1" title="10.2. Understanding DHAT's output">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="dh-manual.understanding"></a>10.2. Understanding DHAT's output</h2></div></div></div>
+-<p>DHAT provides a lot of useful information on dynamic heap usage.
+-Most of the art of using it is in interpretation of the resulting
+-numbers.  That is best illustrated via a set of examples.</p>
+-<div class="sect2" title="10.2.1. Interpreting the max-live, tot-alloc and deaths fields">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="id625080"></a>10.2.1. Interpreting the max-live, tot-alloc and deaths fields</h3></div></div></div>
+-<div class="sect3" title="10.2.1.1. A simple example"><div class="titlepage"><div><div><h4 class="title">
+-<a name="id621778"></a>10.2.1.1. A simple example</h4></div></div></div></div>
+-<pre class="screen">
+-   ======== SUMMARY STATISTICS ========
+-
+-   guest_insns:  1,045,339,534
+-   [...]
+-   max-live:    63,490 in 984 blocks
+-   tot-alloc:   1,904,700 in 29,520 blocks (avg size 64.52)
+-   deaths:      29,520, at avg age 22,227,424
+-   acc-ratios:  6.37 rd, 1.14 wr  (12,141,526 b-read, 2,174,460 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x40350E: tcc_malloc (tinycc.c:6712)
+-      by 0x404580: tok_alloc_new (tinycc.c:7151)
+-      by 0x40870A: next_nomacro1 (tinycc.c:9305)
+-</pre>
+-<p>Over the entire run of the program, this stack (allocation
+-point) allocated 29,520 blocks in total, containing 1,904,700 bytes in
+-total.  By looking at the max-live data, we see that not many blocks
+-were simultaneously live, though: at the peak, there were 63,490
+-allocated bytes in 984 blocks.  This tells us that the program is
+-steadily freeing such blocks as it runs, rather than hanging on to all
+-of them until the end and freeing them all.</p>
+-<p>The deaths entry tells us that 29,520 blocks allocated by this stack
+-died (were freed) during the run of the program.  Since 29,520 is
+-also the number of blocks allocated in total, that tells us that
+-all allocated blocks were freed by the end of the program.</p>
+-<p>It also tells us that the average age at death was 22,227,424
+-instructions.  From the summary statistics we see that the program ran
+-for 1,045,339,534 instructions, and so the average age at death is
+-about 2% of the program's total run time.</p>
+-<div class="sect3" title="10.2.1.2. Example of a potential process-lifetime leak"><div class="titlepage"><div><div><h4 class="title">
+-<a name="id599622"></a>10.2.1.2. Example of a potential process-lifetime leak</h4></div></div></div></div>
+-<p>This next example (from a different program than the above)
+-shows a potential process lifetime leak.  A process lifetime leak
+-occurs when a program keeps allocating data, but only frees the
+-data just before it exits.  Hence the program's heap grows constantly
+-in size, yet Memcheck reports no leak, because the program has
+-freed up everything at exit.  This is particularly a hazard for
+-long running programs.</p>
+-<pre class="screen">
+-   ======== SUMMARY STATISTICS ========
+-   
+-   guest_insns:  418,901,537
+-   [...]
+-   max-live:    32,512 in 254 blocks
+-   tot-alloc:   32,512 in 254 blocks (avg size 128.00)
+-   deaths:      254, at avg age 300,467,389
+-   acc-ratios:  0.26 rd, 0.20 wr  (8,756 b-read, 6,604 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x4C27632: realloc (vg_replace_malloc.c:525)
+-      by 0x56FF41D: QtFontStyle::pixelSize(unsigned short, bool) (qfontdatabase.cpp:269)
+-      by 0x5700D69: loadFontConfig() (qfontdatabase_x11.cpp:1146)
+-</pre>
+-<p>There are two tell-tale signs that this might be a
+-process-lifetime leak.  Firstly, the max-live and tot-alloc numbers
+-are identical.  The only way that can happen is if these blocks are
+-all allocated and then all deallocated.</p>
+-<p>Secondly, the average age at death (300 million insns) is 71% of
+-the total program lifetime (419 million insns), hence this is not a
+-transient allocation-free spike -- rather, it is spread out over a
+-large part of the entire run.  One interpretation is, roughly, that
+-all 254 blocks were allocated in the first half of the run, held onto
+-for the second half, and then freed just before exit.</p>
+-</div>
+-<div class="sect2" title="10.2.2. Interpreting the acc-ratios fields">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="id629340"></a>10.2.2. Interpreting the acc-ratios fields</h3></div></div></div>
+-<div class="sect3" title="10.2.2.1. A fairly harmless allocation point record"><div class="titlepage"><div><div><h4 class="title">
+-<a name="id629346"></a>10.2.2.1. A fairly harmless allocation point record</h4></div></div></div></div>
+-<pre class="screen">
+-   max-live:    49,398 in 808 blocks
+-   tot-alloc:   1,481,940 in 24,240 blocks (avg size 61.13)
+-   deaths:      24,240, at avg age 34,611,026
+-   acc-ratios:  2.13 rd, 0.91 wr  (3,166,650 b-read, 1,358,820 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x40350E: tcc_malloc (tinycc.c:6712)
+-      by 0x404580: tok_alloc_new (tinycc.c:7151)
+-      by 0x4046C4: tok_alloc (tinycc.c:7190)
+-</pre>
+-<p>The acc-ratios field tells us that each byte in the blocks
+-allocated here is read an average of 2.13 times before the block is
+-deallocated.  Given that the blocks have an average age at death of
+-34,611,026, that's one read per block per approximately every 15
+-million instructions.  So from that standpoint the blocks aren't
+-"working" very hard.</p>
+-<p>More interesting is the write ratio: each byte is written an
+-average of 0.91 times.  This tells us that some parts of the allocated
+-blocks are never written, at least 9% on average.  To completely
+-initialise the block would require writing each byte at least once,
+-and that would give a write ratio of 1.0.  The fact that some block
+-areas are evidently unused might point to data alignment holes or
+-other layout inefficiencies.</p>
+-<p>Well, at least all the blocks are freed (24,240 allocations,
+-24,240 deaths).</p>
+-<p>If all the blocks had been the same size, DHAT would also show
+-the access counts by block offset, so we could see where exactly these
+-unused areas are.  However, that isn't the case: the blocks have
+-varying sizes, so DHAT can't perform such an analysis.  We can see
+-that they must have varying sizes since the average block size, 61.13,
+-isn't a whole number.</p>
+-<div class="sect3" title="10.2.2.2. A more suspicious looking example"><div class="titlepage"><div><div><h4 class="title">
+-<a name="id610624"></a>10.2.2.2. A more suspicious looking example</h4></div></div></div></div>
+-<pre class="screen">
+-   max-live:    180,224 in 22 blocks
+-   tot-alloc:   180,224 in 22 blocks (avg size 8192.00)
+-   deaths:      none (none of these blocks were freed)
+-   acc-ratios:  0.00 rd, 0.00 wr  (0 b-read, 0 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x40350E: tcc_malloc (tinycc.c:6712)
+-      by 0x40369C: __sym_malloc (tinycc.c:6787)
+-      by 0x403711: sym_malloc (tinycc.c:6805)
+-</pre>
+-<p>Here, both the read and write access ratios are zero.  Hence
+-this point is allocating blocks which are never used, neither read nor
+-written.  Indeed, they are also not freed ("deaths: none") and are
+-simply leaked.  So, here is 180k of completely useless allocation that
+-could be removed.</p>
+-<p>Re-running with Memcheck does indeed report the same leak.  What
+-DHAT can tell us, that Memcheck can't, is that not only are the blocks
+-leaked, they are also never used.</p>
+-<div class="sect3" title="10.2.2.3. Another suspicious example"><div class="titlepage"><div><div><h4 class="title">
+-<a name="id604774"></a>10.2.2.3. Another suspicious example</h4></div></div></div></div>
+-<p>Here's one where blocks are allocated, written to,
+-but never read from.  We see this immediately from the zero read
+-access ratio.  They do get freed, though:</p>
+-<pre class="screen">
+-   max-live:    54 in 3 blocks
+-   tot-alloc:   1,620 in 90 blocks (avg size 18.00)
+-   deaths:      90, at avg age 34,558,236
+-   acc-ratios:  0.00 rd, 1.11 wr  (0 b-read, 1,800 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x40350E: tcc_malloc (tinycc.c:6712)
+-      by 0x4035BD: tcc_strdup (tinycc.c:6750)
+-      by 0x41FEBB: tcc_add_sysinclude_path (tinycc.c:20931)
+-</pre>
+-<p>In the previous two examples, it is easy to see blocks that are
+-never written to, or never read from, or some combination of both.
+-Unfortunately, in C++ code, the situation is less clear.  That's
+-because an object's constructor will write to the underlying block,
+-and its destructor will read from it.  So the block's read and write
+-ratios will be non-zero even if the object, once constructed, is never
+-used, but only eventually destructed.</p>
+-<p>Really, what we want is to measure only memory accesses in
+-between the end of an object's construction and the start of its
+-destruction.  Unfortunately I do not know of a reliable way to
+-determine when those transitions are made.</p>
+-</div>
+-<div class="sect2" title='10.2.3. Interpreting "Aggregated access counts by offset" data'>
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="id598919"></a>10.2.3. Interpreting "Aggregated access counts by offset" data</h3></div></div></div>
+-<p>For allocation points that always allocate blocks of the same
+-size, and which are 4096 bytes or smaller, DHAT counts accesses
+-per offset, for example:</p>
+-<pre class="screen">
+-   max-live:    317,408 in 5,668 blocks
+-   tot-alloc:   317,408 in 5,668 blocks (avg size 56.00)
+-   deaths:      5,668, at avg age 622,890,597
+-   acc-ratios:  1.03 rd, 1.28 wr  (327,642 b-read, 408,172 b-written)
+-      at 0x4C275B8: malloc (vg_replace_malloc.c:236)
+-      by 0x5440C16: QDesignerPropertySheetPrivate::ensureInfo (qhash.h:515)
+-      by 0x544350B: QDesignerPropertySheet::setVisible (qdesigner_propertysh...)
+-      by 0x5446232: QDesignerPropertySheet::QDesignerPropertySheet (qdesigne...)
+-   
+-   Aggregated access counts by offset:
+-   
+-   [   0]  28782 28782 28782 28782 28782 28782 28782 28782
+-   [   8]  20638 20638 20638 20638 0 0 0 0 
+-   [  16]  22738 22738 22738 22738 22738 22738 22738 22738
+-   [  24]  6013 6013 6013 6013 6013 6013 6013 6013 
+-   [  32]  18883 18883 18883 37422 0 0 0 0
+-   [  36]  5668 11915 5668 5668 11336 11336 11336 11336 
+-   [  48]  6166 6166 6166 6166 0 0 0 0 
+-</pre>
+-<p>This is fairly typical, for C++ code running on a 64-bit
+-platform.  Here, we have aggregated access statistics for 5668 blocks,
+-all of size 56 bytes.  Each byte has been accessed at least 5668
+-times, except for offsets 12--15, 36--39 and 52--55.  These are likely
+-to be alignment holes.</p>
+-<p>Careful interpretation of the numbers reveals useful information.
+-Groups of N consecutive identical numbers that begin at an N-aligned
+-offset, for N being 2, 4 or 8, are likely to indicate an N-byte object
+-in the structure at that point.  For example, the first 32 bytes of
+-this object are likely to have the layout</p>
+-<pre class="screen">
+-   [0 ]  64-bit type
+-   [8 ]  32-bit type
+-   [12]  32-bit alignment hole
+-   [16]  64-bit type
+-   [24]  64-bit type
+-</pre>
+-<p>As a counterexample, it's also clear that, whatever is at offset 32,
+-it is not a 32-bit value.  That's because the last number of the group
+-(37422) is not the same as the first three (18883 18883 18883).</p>
+-<p>This example leads one to enquire (by reading the source code)
+-whether the zeroes at 12--15 and 52--55 are alignment holes, and
+-whether 48--51 is indeed a 32-bit type.  If so, it might be possible
+-to place what's at 48--51 at 12--15 instead, which would reduce
+-the object size from 56 to 48 bytes.</p>
+-<p>Bear in mind that the above inferences are all only "maybes".  That's
+-because they are based on dynamic data, not static analysis of the
+-object layout.  For example, the zeroes might not be alignment
+-holes, but rather just parts of the structure which were not used
+-at all for this particular run.  Experience shows that's unlikely
+-to be the case, but it could happen.</p>
+-</div>
+-</div>
+-<div class="sect1" title="10.3. DHAT Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="dh-manual.options"></a>10.3. DHAT Command-line Options</h2></div></div></div>
+-<p>DHAT-specific command-line options are:</p>
+-<div class="variablelist">
+-<a name="dh.opts.list"></a><dl>
+-<dt>
+-<a name="opt.show-top-n"></a><span class="term">
+-      <code class="option">--show-top-n=<number>
+-      [default: 10] </code>
+-    </span>
+-</dt>
+-<dd><p>At the end of the run, DHAT sorts the accumulated
+-       allocation points according to some metric, and shows the
+-       highest scoring entries.  <code class="varname">--show-top-n</code>
+-       controls how many entries are shown.  The default of 10 is
+-       quite small.  For realistic applications you will probably need
+-       to set it much higher, at least several hundred.</p></dd>
+-<dt>
+-<a name="opt.sort-by"></a><span class="term">
+-      <code class="option">--sort-by=<string> [default: max-bytes-live] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>At the end of the run, DHAT sorts the accumulated
+-       allocation points according to some metric, and shows the
+-       highest scoring entries.  <code class="varname">--sort-by</code>
+-       selects the metric used for sorting:</p>
+-<p><code class="varname">max-bytes-live   </code>    maximum live bytes [default]</p>
+-<p><code class="varname">tot-bytes-allocd </code>  total allocation (turnover)</p>
+-<p><code class="varname">max-blocks-live  </code>   maximum live blocks</p>
+-<p>This controls the order in which allocation points are
+-       displayed.  You can choose to look at allocation points with
+-       the highest maximum liveness, or the highest total turnover, or
+-       by the highest number of live blocks.  These give usefully
+-       different pictures of program behaviour.  For example, sorting
+-       by maximum live blocks tends to show up allocation points
+-       creating large numbers of small objects.</p>
+-</dd>
+-</dl>
+-</div>
+-<p>One important point to note is that each allocation stack counts
+-as a seperate allocation point.  Because stacks by default have 12
+-frames, this tends to spread data out over multiple allocation points.
+-You may want to use the flag --num-callers=4 or some such small
+-number, to reduce the spreading.</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="ms-manual.html"><< 9. Massif: a heap profiler</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="sg-manual.html">11. SGCheck: an experimental stack and global array overrun detector >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.authors.html b/docs/html/dist.authors.html
+deleted file mode 100644
+index 0d9462c..0000000
+--- a/docs/html/dist.authors.html
++++ /dev/null
+@@ -1,124 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>1. AUTHORS</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="next" href="dist.news.html" title="2. NEWS">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.news.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="1. AUTHORS">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.authors"></a>1. AUTHORS</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-        <br>
+-Julian Seward was the original founder, designer and author of<br>
+-Valgrind, created the dynamic translation frameworks, wrote Memcheck,<br>
+-the 3.X versions of Helgrind, SGCheck, DHAT, and did lots of other<br>
+-things.<br>
+-<br>
+-Nicholas Nethercote did the core/tool generalisation, wrote<br>
+-Cachegrind and Massif, and tons of other stuff.<br>
+-<br>
+-Tom Hughes did a vast number of bug fixes, helped out with support for<br>
+-more recent Linux/glibc versions, set up the present build system, and has<br>
+-helped out with test and build machines.<br>
+-<br>
+-Jeremy Fitzhardinge wrote Helgrind (in the 2.X line) and totally<br>
+-overhauled low-level syscall/signal and address space layout stuff,<br>
+-among many other things.<br>
+-<br>
+-Josef Weidendorfer wrote and maintains Callgrind and the associated<br>
+-KCachegrind GUI.<br>
+-<br>
+-Paul Mackerras did a lot of the initial per-architecture factoring<br>
+-that forms the basis of the 3.0 line and was also seen in 2.4.0.<br>
+-He also did UCode-based dynamic translation support for PowerPC, and<br>
+-created a set of ppc-linux derivatives of the 2.X release line.<br>
+-<br>
+-Greg Parker wrote the Mac OS X port.<br>
+-<br>
+-Dirk Mueller contributed the malloc/free mismatch checking<br>
+-and other bits and pieces, and acts as our KDE liaison.<br>
+-<br>
+-Robert Walsh added file descriptor leakage checking, new library<br>
+-interception machinery, support for client allocation pools, and minor<br>
+-other tweakage.<br>
+-<br>
+-Bart Van Assche wrote and maintains DRD.<br>
+-<br>
+-Cerion Armour-Brown worked on PowerPC instruction set support in the<br>
+-Vex dynamic-translation framework.  Maynard Johnson improved the<br>
+-Power6 support.<br>
+-<br>
+-Kirill Batuzov and Dmitry Zhurikhin did the NEON instruction set<br>
+-support for ARM.  Donna Robinson did the v6 media instruction support.<br>
+-<br>
+-Donna Robinson created and maintains the very excellent<br>
+-http://www.valgrind.org.<br>
+-<br>
+-Vince Weaver wrote and maintains BBV.<br>
+-<br>
+-Frederic Gobry helped with autoconf and automake.<br>
+-<br>
+-Daniel Berlin modified readelf's dwarf2 source line reader, written by Nick<br>
+-Clifton, for use in Valgrind.o<br>
+-<br>
+-Michael Matz and Simon Hausmann modified the GNU binutils demangler(s) for<br>
+-use in Valgrind.<br>
+-<br>
+-David Woodhouse has helped out with test and build machines over the course<br>
+-of many releases.<br>
+-<br>
+-Florian Krohm and Christian Borntraeger wrote and maintain the<br>
+-S390X/Linux port.  Florian improved and ruggedised the regression test<br>
+-system during 2011.<br>
+-<br>
+-Philippe Waroquiers wrote and maintains the embedded GDB server.  He<br>
+-also made a bunch of performance and memory-reduction fixes across<br>
+-diverse parts of the system.<br>
+-<br>
+-Carl Love and Maynard Johnson contributed IBM Power6 and Power7<br>
+-support, and generally deal with ppc{32,64}-linux issues.<br>
+-<br>
+-Petar Jovanovic and Dejan Jevtic wrote and maintain the mips32-linux<br>
+-port.<br>
+-<br>
+-Dragos Tatulea modified the arm-android port so it also works on<br>
+-x86-android.<br>
+-<br>
+-Jakub Jelinek helped out with the AVX support.<br>
+-<br>
+-Many, many people sent bug reports, patches, and helpful feedback.<br>
+-<br>
+-Development of Valgrind was supported in part by the Tri-Lab Partners<br>
+-(Lawrence Livermore National Laboratory, Los Alamos National<br>
+-Laboratory, and Sandia National Laboratories) of the U.S. Department<br>
+-of Energy's Advanced Simulation & Computing (ASC) Program.<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.html"><< Valgrind Distribution Documents</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.news.html">2. NEWS >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.html b/docs/html/dist.html
+deleted file mode 100644
+index b37e5f9..0000000
+--- a/docs/html/dist.html
++++ /dev/null
+@@ -1,63 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind Distribution Documents</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="cl-format.html" title="3. Callgrind Format Specification">
+-<link rel="next" href="dist.authors.html" title="1. AUTHORS">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="cl-format.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.authors.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="Valgrind Distribution Documents">
+-<div class="titlepage">
+-<div>
+-<div><h1 class="title">
+-<a name="dist"></a>Valgrind Distribution Documents</h1></div>
+-<div><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div><p class="copyright">Copyright © 2000-2012 <a class="ulink" href="http://www.valgrind.org/info/developers.html" target="_top">Valgrind Developers</a></p></div>
+-<div><div class="legalnotice" title="Legal Notice">
+-<a name="id578220"></a><p>Email: <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a></p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="chapter"><a href="dist.authors.html">1. AUTHORS</a></span></dt>
+-<dt><span class="chapter"><a href="dist.news.html">2. NEWS</a></span></dt>
+-<dt><span class="chapter"><a href="dist.news.old.html">3. OLDER NEWS</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme.html">4. README</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-missing.html">5. README_MISSING_SYSCALL_OR_IOCTL</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-developers.html">6. README_DEVELOPERS</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-packagers.html">7. README_PACKAGERS</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-s390.html">8. README.S390</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-android.html">9. README.android</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-android_emulator.html">10. README.android_emulator</a></span></dt>
+-<dt><span class="chapter"><a href="dist.readme-mips.html">11. README.mips</a></span></dt>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="cl-format.html"><< 3. Callgrind Format Specification</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.authors.html">1. AUTHORS >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.news.html b/docs/html/dist.news.html
+deleted file mode 100644
+index 825a368..0000000
+--- a/docs/html/dist.news.html
++++ /dev/null
+@@ -1,1866 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>2. NEWS</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.authors.html" title="1. AUTHORS">
+-<link rel="next" href="dist.news.old.html" title="3. OLDER NEWS">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.authors.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.news.old.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="2. NEWS">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.news"></a>2. NEWS</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Release 3.8.1 (19 September 2012)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.8.1 is a bug fix release.  It fixes some assertion failures in 3.8.0<br>
+-that occur moderately frequently in real use cases, adds support for<br>
+-some missing instructions on ARM, and fixes a deadlock condition on<br>
+-MacOSX.  If you package or deliver 3.8.0 for others to use, you might<br>
+-want to consider upgrading to 3.8.1 instead.<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
+-than mailing the developers (or mailing lists) directly -- bugs that<br>
+-are not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-284004  == 301281<br>
+-289584  Unhandled instruction: 0xF 0x29 0xE5 (MOVAPS)<br>
+-295808  amd64->IR: 0xF3 0xF 0xBC 0xC0 (TZCNT)<br>
+-298281  wcslen causes false(?) uninitialised value warnings<br>
+-301281  valgrind hangs on OS X when the process calls system()<br>
+-304035  disInstr(arm): unhandled instruction 0xE1023053<br>
+-304867  implement MOVBE instruction in x86 mode<br>
+-304980  Assertion 'lo <= hi' failed in vgModuleLocal_find_rx_mapping<br>
+-305042  amd64: implement 0F 7F encoding of movq between two registers<br>
+-305199  ARM: implement QDADD and QDSUB<br>
+-305321  amd64->IR: 0xF 0xD 0xC (prefetchw)<br>
+-305513  killed by fatal signal: SIGSEGV<br>
+-305690  DRD reporting invalid semaphore when sem_trywait fails<br>
+-305926  Invalid alignment checks for some AVX instructions<br>
+-306297  disInstr(thumb): unhandled instruction 0xE883 0x000C<br>
+-306310  3.8.0 release tarball missing some files<br>
+-306612  RHEL 6 glibc-2.X default suppressions need /lib*/libc-*patterns<br>
+-306664  vex amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x46 0x66 0xF<br>
+-n-i-bz  shmat of a segment > 4Gb does not work <br>
+-n-i-bz  simulate_control_c script wrong USR1 signal number on mips<br>
+-n-i-bz  vgdb ptrace calls wrong on mips [...]<br>
+-n-i-bz  Fixes for more MPI false positives<br>
+-n-i-bz  exp-sgcheck's memcpy causes programs to segfault<br>
+-n-i-bz  OSX build w/ clang: asserts at startup<br>
+-n-i-bz  Incorrect undef'dness prop for Iop_DPBtoBCD and Iop_BCDtoDPB<br>
+-n-i-bz  fix a couple of union tag-vs-field mixups<br>
+-n-i-bz  OSX: use __NR_poll_nocancel rather than __NR_poll<br>
+-<br>
+-The following bugs were fixed in 3.8.0 but not listed in this NEWS<br>
+-file at the time:<br>
+-<br>
+-254088  Valgrind should know about UD2 instruction<br>
+-301280  == 254088<br>
+-301902  == 254088<br>
+-304754  NEWS blows TeX's little mind<br>
+-<br>
+-(3.8.1.TEST2: 18 September 2012, vex r2537, valgrind r12994)<br>
+-(3.8.1:       18 September 2012, vex r2537, valgrind r12996)<br>
+-<br>
+-<br>
+-<br>
+-Release 3.8.0 (10 August 2012)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.8.0 is a feature release with many improvements and the usual<br>
+-collection of bug fixes.<br>
+-<br>
+-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,<br>
+-PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android, X86/Android,<br>
+-X86/MacOSX 10.6/10.7 and AMD64/MacOSX 10.6/10.7.  Support for recent<br>
+-distros and toolchain components (glibc 2.16, gcc 4.7) has been added.<br>
+-There is initial support for MacOSX 10.8, but it is not usable for<br>
+-serious work at present.<br>
+-<br>
+-* ================== PLATFORM CHANGES =================<br>
+-<br>
+-* Support for MIPS32 platforms running Linux.  Valgrind has been<br>
+-  tested on MIPS32 and MIPS32r2 platforms running different Debian<br>
+-  Squeeze and MeeGo distributions.  Both little-endian and big-endian<br>
+-  cores are supported.  The tools Memcheck, Massif and Lackey have<br>
+-  been tested and are known to work. See README.mips for more details.<br>
+-<br>
+-* Preliminary support for Android running on x86.<br>
+-<br>
+-* Preliminary (as-yet largely unusable) support for MacOSX 10.8.<br>
+-<br>
+-* Support for Intel AVX instructions and for AES instructions.  This<br>
+-  support is available only for 64 bit code.<br>
+-<br>
+-* Support for POWER Decimal Floating Point instructions.<br>
+-<br>
+-* ==================== TOOL CHANGES ====================<br>
+-<br>
+-* Non-libc malloc implementations are now supported.  This is useful<br>
+-  for tools that replace malloc (Memcheck, Massif, DRD, Helgrind).<br>
+-  Using the new option --soname-synonyms, such tools can be informed<br>
+-  that the malloc implementation is either linked statically into the<br>
+-  executable, or is present in some other shared library different<br>
+-  from libc.so.  This makes it possible to process statically linked<br>
+-  programs, and programs using other malloc libraries, for example<br>
+-  TCMalloc or JEMalloc.<br>
+-<br>
+-* For tools that provide their own replacement for malloc et al, the<br>
+-  option --redzone-size=<number> allows users to specify the size of<br>
+-  the padding blocks (redzones) added before and after each client<br>
+-  allocated block.  Smaller redzones decrease the memory needed by<br>
+-  Valgrind.  Bigger redzones increase the chance to detect blocks<br>
+-  overrun or underrun.  Prior to this change, the redzone size was<br>
+-  hardwired to 16 bytes in Memcheck.<br>
+-<br>
+-* Memcheck:<br>
+-<br>
+-  - The leak_check GDB server monitor command now can<br>
+-    control the maximum nr of loss records to output.<br>
+-<br>
+-  - Reduction of memory use for applications allocating<br>
+-    many blocks and/or having many partially defined bytes.<br>
+-<br>
+-  - Addition of GDB server monitor command 'block_list' that lists<br>
+-    the addresses/sizes of the blocks of a leak search loss record.<br>
+-<br>
+-  - Addition of GDB server monitor command 'who_points_at' that lists<br>
+-    the locations pointing at a block.<br>
+-<br>
+-  - If a redzone size > 0 is given, VALGRIND_MALLOCLIKE_BLOCK now will<br>
+-    detect an invalid access of these redzones, by marking them<br>
+-    noaccess.  Similarly, if a redzone size is given for a memory<br>
+-    pool, VALGRIND_MEMPOOL_ALLOC will mark the redzones no access.<br>
+-    This still allows to find some bugs if the user has forgotten to<br>
+-    mark the pool superblock noaccess.<br>
+-<br>
+-  - Performance of memory leak check has been improved, especially in<br>
+-    cases where there are many leaked blocks and/or many suppression<br>
+-    rules used to suppress leak reports.<br>
+-<br>
+-  - Reduced noise (false positive) level on MacOSX 10.6/10.7, due to<br>
+-    more precise analysis, which is important for LLVM/Clang<br>
+-    generated code.  This is at the cost of somewhat reduced<br>
+-    performance.  Note there is no change to analysis precision or<br>
+-    costs on Linux targets.<br>
+-<br>
+-* DRD:<br>
+-<br>
+-  - Added even more facilities that can help finding the cause of a data<br>
+-    race, namely the command-line option --ptrace-addr and the macro<br>
+-    DRD_STOP_TRACING_VAR(x). More information can be found in the manual.<br>
+-<br>
+-  - Fixed a subtle bug that could cause false positive data race reports.<br>
+-<br>
+-* ==================== OTHER CHANGES ====================<br>
+-<br>
+-* The C++ demangler has been updated so as to work well with C++ <br>
+-  compiled by up to at least g++ 4.6.<br>
+-<br>
+-* Tool developers can make replacement/wrapping more flexible thanks<br>
+-  to the new option --soname-synonyms.  This was reported above, but<br>
+-  in fact is very general and applies to all function<br>
+-  replacement/wrapping, not just to malloc-family functions.<br>
+-<br>
+-* Round-robin scheduling of threads can be selected, using the new<br>
+-  option --fair-sched= yes.  Prior to this change, the pipe-based<br>
+-  thread serialisation mechanism (which is still the default) could<br>
+-  give very unfair scheduling.  --fair-sched=yes improves<br>
+-  responsiveness of interactive multithreaded applications, and<br>
+-  improves repeatability of results from the thread checkers Helgrind<br>
+-  and DRD.<br>
+-<br>
+-* For tool developers: support to run Valgrind on Valgrind has been<br>
+-  improved.  We can now routinely Valgrind on Helgrind or Memcheck.<br>
+-<br>
+-* gdbserver now shows the float shadow registers as integer<br>
+-  rather than float values, as the shadow values are mostly<br>
+-  used as bit patterns.<br>
+-<br>
+-* Increased limit for the --num-callers command line flag to 500.<br>
+-<br>
+-* Performance improvements for error matching when there are many<br>
+-  suppression records in use.<br>
+-<br>
+-* Improved support for DWARF4 debugging information (bug 284184).<br>
+-<br>
+-* Initial support for DWZ compressed Dwarf debug info.<br>
+-<br>
+-* Improved control over the IR optimiser's handling of the tradeoff<br>
+-  between performance and precision of exceptions.  Specifically,<br>
+-  --vex-iropt-precise-memory-exns has been removed and replaced by<br>
+-  --vex-iropt-register-updates, with extended functionality.  This<br>
+-  allows the Valgrind gdbserver to always show up to date register<br>
+-  values to GDB.<br>
+-<br>
+-* Modest performance gains through the use of translation chaining for<br>
+-  JIT-generated code.<br>
+-<br>
+-* ==================== FIXED BUGS ====================<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather<br>
+-than mailing the developers (or mailing lists) directly -- bugs that<br>
+-are not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-197914  Building valgrind from svn now requires automake-1.10<br>
+-203877  increase to 16Mb maximum allowed alignment for memalign et al<br>
+-219156  Handle statically linked malloc or other malloc lib (e.g. tcmalloc) <br>
+-247386  make perf does not run all performance tests<br>
+-270006  Valgrind scheduler unfair <br>
+-270777  Adding MIPS/Linux port to Valgrind<br>
+-270796  s390x: Removed broken support for the TS insn<br>
+-271438  Fix configure for proper SSE4.2 detection<br>
+-273114  s390x: Support TR, TRE, TROO, TROT, TRTO, and TRTT instructions<br>
+-273475  Add support for AVX instructions<br>
+-274078  improved configure logic for mpicc<br>
+-276993  fix mremap 'no thrash checks' <br>
+-278313  Fedora 15/x64: err read debug info with --read-var-info=yes flag<br>
+-281482  memcheck incorrect byte allocation count in realloc() for silly argument<br>
+-282230  group allocator for small fixed size, use it for MC_Chunk/SEc vbit<br>
+-283413  Fix wrong sanity check<br>
+-283671  Robustize alignment computation in LibVEX_Alloc<br>
+-283961  Adding support for some HCI IOCTLs<br>
+-284124  parse_type_DIE: confused by: DWARF 4<br>
+-284864  == 273475 (Add support for AVX instructions)<br>
+-285219  Too-restrictive constraints for Thumb2 "SP plus/minus register"<br>
+-285662  (MacOSX): Memcheck needs to replace memcpy/memmove<br>
+-285725  == 273475 (Add support for AVX instructions)<br>
+-286261  add wrapper for linux I2C_RDWR ioctl<br>
+-286270  vgpreload is not friendly to 64->32 bit execs, gives ld.so warnings<br>
+-286374  Running cachegrind with --branch-sim=yes on 64-bit PowerPC program fails<br>
+-286384  configure fails "checking for a supported version of gcc"<br>
+-286497  == 273475 (Add support for AVX instructions)<br>
+-286596  == 273475 (Add support for AVX instructions)<br>
+-286917  disInstr(arm): unhandled instruction: QADD (also QSUB)<br>
+-287175  ARM: scalar VFP fixed-point VCVT instructions not handled<br>
+-287260  Incorrect conditional jump or move depends on uninitialised value(s)<br>
+-287301  vex amd64->IR: 0x66 0xF 0x38 0x41 0xC0 0xB8 0x0 0x0 (PHMINPOSUW)<br>
+-287307  == 273475 (Add support for AVX instructions)<br>
+-287858  VG_(strerror): unknown error <br>
+-288298  (MacOSX) unhandled syscall shm_unlink<br>
+-288995  == 273475 (Add support for AVX instructions)<br>
+-289470  Loading of large Mach-O thin binaries fails.<br>
+-289656  == 273475 (Add support for AVX instructions)<br>
+-289699  vgdb connection in relay mode erroneously closed due to buffer overrun <br>
+-289823  ==  293754 (PCMPxSTRx not implemented for 16-bit characters)<br>
+-289839  s390x: Provide support for unicode conversion instructions<br>
+-289939  monitor cmd 'leak_check' with details about leaked or reachable blocks<br>
+-290006  memcheck doesn't mark %xmm as initialized after "pcmpeqw %xmm %xmm"<br>
+-290655  Add support for AESKEYGENASSIST instruction <br>
+-290719  valgrind-3.7.0 fails with automake-1.11.2 due to"pkglibdir" usage<br>
+-290974  vgdb must align pages to VKI_SHMLBA (16KB) on ARM <br>
+-291253  ES register not initialised in valgrind simulation<br>
+-291568  Fix 3DNOW-related crashes with baseline x86_64 CPU (w patch)<br>
+-291865  s390x: Support the "Compare Double and Swap" family of instructions<br>
+-292300  == 273475 (Add support for AVX instructions)<br>
+-292430  unrecognized instruction in __intel_get_new_mem_ops_cpuid<br>
+-292493  == 273475 (Add support for AVX instructions)<br>
+-292626  Missing fcntl F_SETOWN_EX and F_GETOWN_EX support<br>
+-292627  Missing support for some SCSI ioctls<br>
+-292628  none/tests/x86/bug125959-x86.c triggers undefined behavior<br>
+-292841  == 273475 (Add support for AVX instructions)<br>
+-292993  implement the getcpu syscall on amd64-linux<br>
+-292995  Implement the “cross memory attach” syscalls introduced in Linux 3.2<br>
+-293088  Add some VEX sanity checks for ppc64 unhandled instructions<br>
+-293751  == 290655 (Add support for AESKEYGENASSIST instruction)<br>
+-293754  PCMPxSTRx not implemented for 16-bit characters<br>
+-293755  == 293754 (No tests for PCMPxSTRx on 16-bit characters)<br>
+-293808  CLFLUSH not supported by latest VEX for amd64<br>
+-294047  valgrind does not correctly emulate prlimit64(..., RLIMIT_NOFILE, ...)<br>
+-294048  MPSADBW instruction not implemented<br>
+-294055  regtest none/tests/shell fails when locale is not set to C<br>
+-294185  INT 0x44 (and others) not supported on x86 guest, but used by Jikes RVM<br>
+-294190  --vgdb-error=xxx can be out of sync with errors shown to the user<br>
+-294191  amd64: fnsave/frstor and 0x66 size prefixes on FP instructions<br>
+-294260  disInstr_AMD64: disInstr miscalculated next %rip<br>
+-294523  --partial-loads-ok=yes causes false negatives<br>
+-294617  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A<br>
+-294736  vex amd64->IR: 0x48 0xF 0xD7 0xD6 0x48 0x83<br>
+-294812  patch allowing to run (on x86 at least) helgrind/drd on tool.<br>
+-295089  can not annotate source for both helgrind and drd<br>
+-295221  POWER Processor decimal floating point instruction support missing<br>
+-295427  building for i386 with clang on darwin11 requires "-new_linker linker"<br>
+-295428  coregrind/m_main.c has incorrect x86 assembly for darwin<br>
+-295590  Helgrind: Assertion 'cvi->nWaiters > 0' failed<br>
+-295617  ARM - Add some missing syscalls<br>
+-295799  Missing \n with get_vbits in gdbserver when line is % 80 [...]<br>
+-296229  Linux user input device ioctls missing wrappers<br>
+-296318  ELF Debug info improvements (more than one rx/rw mapping)<br>
+-296422  Add translation chaining support<br>
+-296457  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A (dup of AES)<br>
+-296792  valgrind 3.7.0: add SIOCSHWTSTAMP (0x89B0) ioctl wrapper<br>
+-296983  Fix build issues on x86_64/ppc64 without 32-bit toolchains<br>
+-297078  gdbserver signal handling problems [..]<br>
+-297147  drd false positives on newly allocated memory<br>
+-297329  disallow decoding of IBM Power DFP insns on some machines<br>
+-297497  POWER Processor decimal floating point instruction support missing<br>
+-297701  Another alias for strncasecmp_l in libc-2.13.so<br>
+-297911  'invalid write' not reported when using APIs for custom mem allocators.<br>
+-297976  s390x: revisit EX implementation<br>
+-297991  Valgrind interferes with mmap()+ftell() <br>
+-297992  Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux) <br>
+-297993  Fix compilation of valgrind with gcc -g3.<br>
+-298080  POWER Processor DFP support missing, part 3<br>
+-298227  == 273475 (Add support for AVX instructions)<br>
+-298335  == 273475 (Add support for AVX instructions)<br>
+-298354  Unhandled ARM Thumb instruction 0xEB0D 0x0585 (streq)<br>
+-298394  s390x: Don't bail out on an unknown machine model.  [..]<br>
+-298421  accept4() syscall (366) support is missing for ARM<br>
+-298718  vex amd64->IR: 0xF 0xB1 0xCB 0x9C 0x8F 0x45<br>
+-298732  valgrind installation problem in ubuntu with kernel version 3.x<br>
+-298862  POWER Processor DFP instruction support missing, part 4<br>
+-298864  DWARF reader mis-parses DW_FORM_ref_addr<br>
+-298943  massif asserts with --pages-as-heap=yes when brk is changing [..]<br>
+-299053  Support DWARF4 DW_AT_high_pc constant form<br>
+-299104  == 273475 (Add support for AVX instructions)<br>
+-299316  Helgrind: hg_main.c:628 (map_threads_lookup): Assertion 'thr' failed.<br>
+-299629  dup3() syscall (358) support is missing for ARM<br>
+-299694  POWER Processor DFP instruction support missing, part 5<br>
+-299756  Ignore --free-fill for MEMPOOL_FREE and FREELIKE client requests<br>
+-299803  == 273475 (Add support for AVX instructions)<br>
+-299804  == 273475 (Add support for AVX instructions)<br>
+-299805  == 273475 (Add support for AVX instructions)<br>
+-300140  ARM - Missing (T1) SMMUL<br>
+-300195  == 296318 (ELF Debug info improvements (more than one rx/rw mapping))<br>
+-300389  Assertion `are_valid_hwcaps(VexArchAMD64, [..])' failed.<br>
+-300414  FCOM and FCOMP unimplemented for amd64 guest<br>
+-301204  infinite loop in canonicaliseSymtab with ifunc symbol<br>
+-301229  == 203877 (increase to 16Mb maximum allowed alignment for memalign etc)<br>
+-301265  add x86 support to Android build <br>
+-301984  configure script doesn't detect certain versions of clang<br>
+-302205  Fix compiler warnings for POWER VEX code and POWER test cases<br>
+-302287  Unhandled movbe instruction on Atom processors<br>
+-302370  PPC: fnmadd, fnmsub, fnmadds, fnmsubs insns always negate the result<br>
+-302536  Fix for the POWER Valgrind regression test: memcheck-ISA2.0.<br>
+-302578  Unrecognized isntruction 0xc5 0x32 0xc2 0xca 0x09 vcmpngess<br>
+-302656  == 273475 (Add support for AVX instructions)<br>
+-302709  valgrind for ARM needs extra tls support for android emulator [..]<br>
+-302827  add wrapper for CDROM_GET_CAPABILITY<br>
+-302901  Valgrind crashes with dwz optimized debuginfo<br>
+-302918  Enable testing of the vmaddfp and vnsubfp instructions in the testsuite<br>
+-303116  Add support for the POWER instruction popcntb<br>
+-303127  Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.<br>
+-303250  Assertion `instrs_in->arr_used <= 10000' failed w/ OpenSSL code<br>
+-303466  == 273475 (Add support for AVX instructions)<br>
+-303624  segmentation fault on Android 4.1 (e.g. on Galaxy Nexus OMAP) <br>
+-303963  strstr() function produces wrong results under valgrind callgrind<br>
+-304054  CALL_FN_xx macros need to enforce stack alignment<br>
+-304561  tee system call not supported<br>
+-715750  (MacOSX): Incorrect invalid-address errors near 0xFFFFxxxx (mozbug#)<br>
+-n-i-bz  Add missing gdbserver xml files for shadow registers for ppc32<br>
+-n-i-bz  Bypass gcc4.4/4.5 code gen bugs causing out of memory or asserts<br>
+-n-i-bz  Fix assert in gdbserver for watchpoints watching the same address<br>
+-n-i-bz  Fix false positive in sys_clone on amd64 when optional args [..]<br>
+-n-i-bz  s390x: Shadow registers can now be examined using vgdb<br>
+-<br>
+-(3.8.0-TEST3:  9 August 2012, vex r2465, valgrind r12865)<br>
+-(3.8.0:       10 August 2012, vex r2465, valgrind r12866)<br>
+-<br>
+-<br>
+-<br>
+-Release 3.7.0 (5 November 2011)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.7.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.<br>
+-<br>
+-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,<br>
+-PPC64/Linux, S390X/Linux, ARM/Android, X86/Darwin and AMD64/Darwin.<br>
+-Support for recent distros and toolchain components (glibc 2.14, gcc<br>
+-4.6, MacOSX 10.7) has been added.<br>
+-<br>
+-* ================== PLATFORM CHANGES =================<br>
+-<br>
+-* Support for IBM z/Architecture (s390x) running Linux.  Valgrind can<br>
+-  analyse 64-bit programs running on z/Architecture.  Most user space<br>
+-  instructions up to and including z10 are supported.  Valgrind has<br>
+-  been tested extensively on z9, z10, and z196 machines running SLES<br>
+-  10/11, RedHat 5/6m, and Fedora. The Memcheck and Massif tools are<br>
+-  known to work well. Callgrind, Helgrind, and DRD work reasonably<br>
+-  well on z9 and later models. See README.s390 for more details.<br>
+-<br>
+-* Preliminary support for MacOSX 10.7 and XCode 4.  Both 32- and<br>
+-  64-bit processes are supported.  Some complex threaded applications<br>
+-  (Firefox) are observed to hang when run as 32 bit applications,<br>
+-  whereas 64-bit versions run OK.  The cause is unknown.  Memcheck<br>
+-  will likely report some false errors.  In general, expect some rough<br>
+-  spots.  This release also supports MacOSX 10.6, but drops support<br>
+-  for 10.5.<br>
+-<br>
+-* Preliminary support for Android (on ARM).  Valgrind can now run<br>
+-  large applications (eg, Firefox) on (eg) a Samsung Nexus S.  See<br>
+-  README.android for more details, plus instructions on how to get<br>
+-  started.<br>
+-<br>
+-* Support for the IBM Power ISA 2.06 (Power7 instructions)<br>
+-<br>
+-* General correctness and performance improvements for ARM/Linux, and,<br>
+-  by extension, ARM/Android.<br>
+-<br>
+-* Further solidification of support for SSE 4.2 in 64-bit mode.  AVX<br>
+-  instruction set support is under development but is not available in<br>
+-  this release.<br>
+-<br>
+-* Support for AIX5 has been removed.<br>
+-<br>
+-* ==================== TOOL CHANGES ====================<br>
+-<br>
+-* Memcheck: some incremental changes:<br>
+-<br>
+-  - reduction of memory use in some circumstances<br>
+-<br>
+-  - improved handling of freed memory, which in some circumstances <br>
+-    can cause detection of use-after-free that would previously have<br>
+-    been missed<br>
+-<br>
+-  - fix of a longstanding bug that could cause false negatives (missed<br>
+-    errors) in programs doing vector saturated narrowing instructions.<br>
+-<br>
+-* Helgrind: performance improvements and major memory use reductions,<br>
+-  particularly for large, long running applications which perform many<br>
+-  synchronisation (lock, unlock, etc) events.  Plus many smaller<br>
+-  changes:<br>
+-<br>
+-  - display of locksets for both threads involved in a race<br>
+-<br>
+-  - general improvements in formatting/clarity of error messages<br>
+-<br>
+-  - addition of facilities and documentation regarding annotation<br>
+-    of thread safe reference counted C++ classes<br>
+-<br>
+-  - new flag --check-stack-refs=no|yes [yes], to disable race checking<br>
+-    on thread stacks (a performance hack)<br>
+-<br>
+-  - new flag --free-is-write=no|yes [no], to enable detection of races<br>
+-    where one thread accesses heap memory but another one frees it,<br>
+-    without any coordinating synchronisation event<br>
+-<br>
+-* DRD: enabled XML output; added support for delayed thread deletion<br>
+-  in order to detect races that occur close to the end of a thread<br>
+-  (--join-list-vol); fixed a memory leak triggered by repeated client<br>
+-  memory allocatation and deallocation; improved Darwin support.<br>
+-<br>
+-* exp-ptrcheck: this tool has been renamed to exp-sgcheck<br>
+-<br>
+-* exp-sgcheck: this tool has been reduced in scope so as to improve<br>
+-  performance and remove checking that Memcheck does better.<br>
+-  Specifically, the ability to check for overruns for stack and global<br>
+-  arrays is unchanged, but the ability to check for overruns of heap<br>
+-  blocks has been removed.  The tool has accordingly been renamed to<br>
+-  exp-sgcheck ("Stack and Global Array Checking").<br>
+-<br>
+-* ==================== OTHER CHANGES ====================<br>
+-<br>
+-* GDB server: Valgrind now has an embedded GDB server.  That means it<br>
+-  is possible to control a Valgrind run from GDB, doing all the usual<br>
+-  things that GDB can do (single stepping, breakpoints, examining<br>
+-  data, etc).  Tool-specific functionality is also available.  For<br>
+-  example, it is possible to query the definedness state of variables<br>
+-  or memory from within GDB when running Memcheck; arbitrarily large<br>
+-  memory watchpoints are supported, etc.  To use the GDB server, start<br>
+-  Valgrind with the flag --vgdb-error=0 and follow the on-screen<br>
+-  instructions.<br>
+-<br>
+-* Improved support for unfriendly self-modifying code: a new option<br>
+-  --smc-check=all-non-file is available.  This adds the relevant<br>
+-  consistency checks only to code that originates in non-file-backed<br>
+-  mappings.  In effect this confines the consistency checking only to<br>
+-  code that is or might be JIT generated, and avoids checks on code<br>
+-  that must have been compiled ahead of time.  This significantly<br>
+-  improves performance on applications that generate code at run time.<br>
+-<br>
+-* It is now possible to build a working Valgrind using Clang-2.9 on<br>
+-  Linux.<br>
+-<br>
+-* new client requests VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.<br>
+-  These enable and disable error reporting on a per-thread, and<br>
+-  nestable, basis.  This is useful for hiding errors in particularly<br>
+-  troublesome pieces of code.  The MPI wrapper library (libmpiwrap.c)<br>
+-  now uses this facility.<br>
+-<br>
+-* Added the --mod-funcname option to cg_diff.<br>
+-<br>
+-* ==================== FIXED BUGS ====================<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-mailing the developers (or mailing lists) directly -- bugs that are<br>
+-not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-210935  port valgrind.h (not valgrind) to win32 to support client requests<br>
+-214223  valgrind SIGSEGV on startup gcc 4.4.1 ppc32 (G4) Ubuntu 9.10<br>
+-243404  Port to zSeries<br>
+-243935  Helgrind: incorrect handling of ANNOTATE_HAPPENS_BEFORE()/AFTER()<br>
+-247223  non-x86: Suppress warning: 'regparm' attribute directive ignored<br>
+-250101  huge "free" memory usage due to m_mallocfree.c fragmentation<br>
+-253206  Some fixes for the faultstatus testcase<br>
+-255223  capget testcase fails when running as root<br>
+-256703  xlc_dbl_u32.c testcase broken<br>
+-256726  Helgrind tests have broken inline asm <br>
+-259977  == 214223 (Valgrind segfaults doing __builtin_longjmp)<br>
+-264800  testcase compile failure on zseries<br>
+-265762  make public VEX headers compilable by G++ 3.x<br>
+-265771  assertion in jumps.c (r11523) fails with glibc-2.3<br>
+-266753  configure script does not give the user the option to not use QtCore<br>
+-266931  gen_insn_test.pl is broken<br>
+-266961  ld-linux.so.2 i?86-linux strlen issues<br>
+-266990  setns instruction causes false positive<br>
+-267020  Make directory for temporary files configurable at run-time.<br>
+-267342  == 267997 (segmentation fault on Mac OS 10.6)<br>
+-267383  Assertion 'vgPlain_strlen(dir) + vgPlain_strlen(file) + 1 < 256' failed<br>
+-267413  Assertion 'DRD_(g_threadinfo)[tid].synchr_nesting >= 1' failed.<br>
+-267488  regtest: darwin support for 64-bit build<br>
+-267552  SIGSEGV (misaligned_stack_error) with DRD, but not with other tools<br>
+-267630  Add support for IBM Power ISA 2.06 -- stage 1<br>
+-267769  == 267997 (Darwin: memcheck triggers segmentation fault)<br>
+-267819  Add client request for informing the core about reallocation<br>
+-267925  laog data structure quadratic for a single sequence of lock<br>
+-267968  drd: (vgDrd_thread_set_joinable): Assertion '0 <= (int)tid ..' failed<br>
+-267997  MacOSX: 64-bit V segfaults on launch when built with Xcode 4.0.1<br>
+-268513  missed optimizations in fold_Expr<br>
+-268619  s390x: fpr - gpr transfer facility <br>
+-268620  s390x: reconsider "long displacement" requirement <br>
+-268621  s390x: improve IR generation for XC<br>
+-268715  s390x: FLOGR is not universally available<br>
+-268792  == 267997 (valgrind seg faults on startup when compiled with Xcode 4)<br>
+-268930  s390x: MHY is not universally available<br>
+-269078  arm->IR: unhandled instruction SUB (SP minus immediate/register) <br>
+-269079  Support ptrace system call on ARM<br>
+-269144  missing "Bad option" error message<br>
+-269209  conditional load and store facility (z196)<br>
+-269354  Shift by zero on x86 can incorrectly clobber CC_NDEP<br>
+-269641  == 267997 (valgrind segfaults immediately (segmentation fault))<br>
+-269736  s390x: minor code generation tweaks<br>
+-269778  == 272986 (valgrind.h: swap roles of VALGRIND_DO_CLIENT_REQUEST() ..)<br>
+-269863  s390x: remove unused function parameters<br>
+-269864  s390x: tweak s390_emit_load_cc <br>
+-269884  == 250101 (overhead for huge blocks exhausts space too soon)<br>
+-270082  s390x: Make sure to point the PSW address to the next address on SIGILL<br>
+-270115  s390x: rewrite some testcases<br>
+-270309  == 267997 (valgrind crash on startup)<br>
+-270320  add support for Linux FIOQSIZE ioctl() call<br>
+-270326  segfault while trying to sanitize the environment passed to execle<br>
+-270794  IBM POWER7 support patch causes regression in none/tests<br>
+-270851  IBM POWER7 fcfidus instruction causes memcheck to fail<br>
+-270856  IBM POWER7 xsnmaddadp instruction causes memcheck to fail on 32bit app <br>
+-270925  hyper-optimized strspn() in /lib64/libc-2.13.so needs fix<br>
+-270959  s390x: invalid use of R0 as base register<br>
+-271042  VSX configure check fails when it should not <br>
+-271043  Valgrind build fails with assembler error on ppc64 with binutils 2.21 <br>
+-271259  s390x: fix code confusion <br>
+-271337  == 267997 (Valgrind segfaults on MacOS X)<br>
+-271385  s390x: Implement Ist_MBE <br>
+-271501  s390x: misc cleanups <br>
+-271504  s390x: promote likely and unlikely <br>
+-271579  ppc: using wrong enum type <br>
+-271615  unhandled instruction "popcnt" (arch=amd10h) <br>
+-271730  Fix bug when checking ioctls: duplicate check <br>
+-271776  s390x: provide STFLE instruction support <br>
+-271779  s390x: provide clock instructions like STCK <br>
+-271799  Darwin: ioctls without an arg report a memory error <br>
+-271820  arm: fix type confusion <br>
+-271917  pthread_cond_timedwait failure leads to not-locked false positive <br>
+-272067  s390x: fix DISP20 macro <br>
+-272615  A typo in debug output in mc_leakcheck.c<br>
+-272661  callgrind_annotate chokes when run from paths containing regex chars<br>
+-272893  amd64->IR: 0x66 0xF 0x38 0x2B 0xC1 0x66 0xF 0x7F == (closed as dup)<br>
+-272955  Unhandled syscall error for pwrite64 on ppc64 arch <br>
+-272967  make documentation build-system more robust <br>
+-272986  Fix gcc-4.6 warnings with valgrind.h<br>
+-273318  amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 (missing PCMPxSTRx case)<br>
+-273318  unhandled PCMPxSTRx case: vex amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 <br>
+-273431  valgrind segfaults in evalCfiExpr (debuginfo.c:2039)<br>
+-273465  Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && ...'<br>
+-273536  Build error: multiple definition of `vgDrd_pthread_cond_initializer'<br>
+-273640  ppc64-linux: unhandled syscalls setresuid(164) and setresgid(169)<br>
+-273729  == 283000 (Illegal opcode for SSE2 "roundsd" instruction)<br>
+-273778  exp-ptrcheck: unhandled sysno == 259<br>
+-274089  exp-ptrcheck: unhandled sysno == 208<br>
+-274378  s390x: Various dispatcher tweaks<br>
+-274447  WARNING: unhandled syscall: 340<br>
+-274776  amd64->IR: 0x66 0xF 0x38 0x2B 0xC5 0x66<br>
+-274784  == 267997 (valgrind ls -l results in Segmentation Fault)<br>
+-274926  valgrind does not build against linux-3<br>
+-275148  configure FAIL with glibc-2.14<br>
+-275151  Fedora 15 / glibc-2.14 'make regtest' FAIL<br>
+-275168  Make Valgrind work for MacOSX 10.7 Lion<br>
+-275212  == 275284 (lots of false positives from __memcpy_ssse3_back et al)<br>
+-275278  valgrind does not build on Linux kernel 3.0.* due to silly<br>
+-275284  Valgrind memcpy/memmove redirection stopped working in glibc 2.14/x86_64<br>
+-275308  Fix implementation for ppc64 fres instruc<br>
+-275339  s390x: fix testcase compile warnings<br>
+-275517  s390x: Provide support for CKSM instruction<br>
+-275710  s390x: get rid of redundant address mode calculation<br>
+-275815  == 247894 (Valgrind doesn't know about Linux readahead(2) syscall)<br>
+-275852  == 250101 (valgrind uses all swap space and is killed)<br>
+-276784  Add support for IBM Power ISA 2.06 -- stage 3<br>
+-276987  gdbsrv: fix tests following recent commits<br>
+-277045  Valgrind crashes with  unhandled DW_OP_ opcode 0x2a<br>
+-277199  The test_isa_2_06_part1.c in none/tests/ppc64 should be a symlink<br>
+-277471  Unhandled syscall: 340<br>
+-277610  valgrind crashes in VG_(lseek)(core_fd, phdrs[idx].p_offset, ...)<br>
+-277653  ARM: support Thumb2 PLD instruction<br>
+-277663  ARM: NEON float VMUL by scalar incorrect<br>
+-277689  ARM: tests for VSTn with register post-index are broken<br>
+-277694  ARM: BLX LR instruction broken in ARM mode<br>
+-277780  ARM: VMOV.F32 (immediate) instruction is broken<br>
+-278057  fuse filesystem syscall deadlocks<br>
+-278078  Unimplemented syscall 280 on ppc32<br>
+-278349  F_GETPIPE_SZ and  F_SETPIPE_SZ Linux fcntl commands<br>
+-278454  VALGRIND_STACK_DEREGISTER has wrong output type<br>
+-278502  == 275284 (Valgrind confuses memcpy() and memmove())<br>
+-278892  gdbsrv: factorize gdb version handling, fix doc and typos<br>
+-279027  Support for MVCL and CLCL instruction<br>
+-279027  s390x: Provide support for CLCL and MVCL instructions<br>
+-279062  Remove a redundant check in the insn selector for ppc.<br>
+-279071  JDK creates PTEST with redundant REX.W prefix<br>
+-279212  gdbsrv: add monitor cmd v.info scheduler.<br>
+-279378  exp-ptrcheck: the 'impossible' happened on mkfifo call<br>
+-279698  memcheck discards valid-bits for packuswb<br>
+-279795  memcheck reports uninitialised values for mincore on amd64<br>
+-279994  Add support for IBM Power ISA 2.06 -- stage 3<br>
+-280083  mempolicy syscall check errors<br>
+-280290  vex amd64->IR: 0x66 0xF 0x38 0x28 0xC1 0x66 0xF 0x6F<br>
+-280710  s390x: config files for nightly builds<br>
+-280757  /tmp dir still used by valgrind even if TMPDIR is specified<br>
+-280965  Valgrind breaks fcntl locks when program does mmap<br>
+-281138  WARNING: unhandled syscall: 340<br>
+-281241  == 275168 (valgrind useless on Macos 10.7.1 Lion)<br>
+-281304  == 275168 (Darwin: dyld "cannot load inserted library")<br>
+-281305  == 275168 (unhandled syscall: unix:357 on Darwin 11.1)<br>
+-281468  s390x: handle do_clone and gcc clones in call traces<br>
+-281488  ARM: VFP register corruption<br>
+-281828  == 275284 (false memmove warning: "Source and destination overlap")<br>
+-281883  s390x: Fix system call wrapper for "clone".<br>
+-282105  generalise 'reclaimSuperBlock' to also reclaim splittable superblock<br>
+-282112  Unhandled instruction bytes: 0xDE 0xD9 0x9B 0xDF (fcompp)<br>
+-282238  SLES10: make check fails<br>
+-282979  strcasestr needs replacement with recent(>=2.12) glibc<br>
+-283000  vex amd64->IR: 0x66 0xF 0x3A 0xA 0xC0 0x9 0xF3 0xF<br>
+-283243  Regression in ppc64 memcheck tests<br>
+-283325  == 267997 (Darwin: V segfaults on startup when built with Xcode 4.0)<br>
+-283427  re-connect epoll_pwait syscall on ARM linux<br>
+-283600  gdbsrv: android: port vgdb.c<br>
+-283709  none/tests/faultstatus needs to account for page size<br>
+-284305  filter_gdb needs enhancement to work on ppc64<br>
+-284384  clang 3.1 -Wunused-value warnings in valgrind.h, memcheck.h<br>
+-284472  Thumb2 ROR.W encoding T2 not implemented<br>
+-284621  XML-escape process command line in XML output<br>
+-n-i-bz  cachegrind/callgrind: handle CPUID information for Core iX Intel CPUs<br>
+-        that have non-power-of-2 sizes (also AMDs)<br>
+-n-i-bz  don't be spooked by libraries mashed by elfhack<br>
+-n-i-bz  don't be spooked by libxul.so linked with gold<br>
+-n-i-bz  improved checking for VALGRIND_CHECK_MEM_IS_DEFINED<br>
+-<br>
+-(3.7.0-TEST1: 27  October 2011, vex r2228, valgrind r12245)<br>
+-(3.7.0.RC1:    1 November 2011, vex r2231, valgrind r12257)<br>
+-(3.7.0:        5 November 2011, vex r2231, valgrind r12258)<br>
+-<br>
+-<br>
+-<br>
+-Release 3.6.1 (16 February 2011)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.6.1 is a bug fix release.  It adds support for some SSE4<br>
+-instructions that were omitted in 3.6.0 due to lack of time.  Initial<br>
+-support for glibc-2.13 has been added.  A number of bugs causing<br>
+-crashing or assertion failures have been fixed.<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-mailing the developers (or mailing lists) directly -- bugs that are<br>
+-not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-188572  Valgrind on Mac should suppress setenv() mem leak<br>
+-194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 (proper FX{SAVE,RSTOR} support)<br>
+-210481  vex amd64->IR: Assertion `sz == 2 || sz == 4' failed (REX.W POPQ)<br>
+-246152  callgrind internal error after pthread_cancel on 32 Bit Linux<br>
+-250038  ppc64: Altivec LVSR and LVSL instructions fail their regtest<br>
+-254420  memory pool tracking broken <br>
+-254957  Test code failing to compile due to changes in memcheck.h<br>
+-255009  helgrind/drd: crash on chmod with invalid parameter<br>
+-255130  readdwarf3.c parse_type_DIE confused by GNAT Ada types<br>
+-255355  helgrind/drd: crash on threaded programs doing fork<br>
+-255358  == 255355<br>
+-255418  (SSE4.x) rint call compiled with ICC<br>
+-255822  --gen-suppressions can create invalid files: "too many callers [...]"<br>
+-255888  closing valgrindoutput tag outputted to log-stream on error<br>
+-255963  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x9 0xDB 0x0 (ROUNDPD)<br>
+-255966  Slowness when using mempool annotations<br>
+-256387  vex x86->IR: 0xD4 0xA 0x2 0x7 (AAD and AAM)<br>
+-256600  super-optimized strcasecmp() false positive<br>
+-256669  vex amd64->IR: Unhandled LOOPNEL insn on amd64<br>
+-256968  (SSE4.x) vex amd64->IR: 0x66 0xF 0x38 0x10 0xD3 0x66 (BLENDVPx)<br>
+-257011  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0xE 0xFD 0xA0 (PBLENDW)<br>
+-257063  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x8 0xC0 0x0 (ROUNDPS)<br>
+-257276  Missing case in memcheck --track-origins=yes<br>
+-258870  (SSE4.x) Add support for EXTRACTPS SSE 4.1 instruction<br>
+-261966  (SSE4.x) support for CRC32B and CRC32Q is lacking (also CRC32{W,L})<br>
+-262985  VEX regression in valgrind 3.6.0 in handling PowerPC VMX<br>
+-262995  (SSE4.x) crash when trying to valgrind gcc-snapshot (PCMPxSTRx $0)<br>
+-263099  callgrind_annotate counts Ir improperly [...]<br>
+-263877  undefined coprocessor instruction on ARMv7<br>
+-265964  configure FAIL with glibc-2.13<br>
+-n-i-bz  Fix compile error w/ icc-12.x in guest_arm_toIR.c<br>
+-n-i-bz  Docs: fix bogus descriptions for VALGRIND_CREATE_BLOCK et al<br>
+-n-i-bz  Massif: don't assert on shmat() with --pages-as-heap=yes<br>
+-n-i-bz  Bug fixes and major speedups for the exp-DHAT space profiler<br>
+-n-i-bz  DRD: disable --free-is-write due to implementation difficulties<br>
+-<br>
+-(3.6.1: 16 February 2011, vex r2103, valgrind r11561).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.6.0 (21 October 2010)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.6.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.<br>
+-<br>
+-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,<br>
+-PPC64/Linux, X86/Darwin and AMD64/Darwin.  Support for recent distros<br>
+-and toolchain components (glibc 2.12, gcc 4.5, OSX 10.6) has been added.<br>
+-<br>
+-                    -------------------------<br>
+-<br>
+-Here are some highlights.  Details are shown further down:<br>
+-<br>
+-* Support for ARM/Linux.<br>
+-<br>
+-* Support for recent Linux distros: Ubuntu 10.10 and Fedora 14.<br>
+-<br>
+-* Support for Mac OS X 10.6, both 32- and 64-bit executables.<br>
+-<br>
+-* Support for the SSE4.2 instruction set.<br>
+-<br>
+-* Enhancements to the Callgrind profiler, including the ability to<br>
+-  handle CPUs with three levels of cache.<br>
+-<br>
+-* A new experimental heap profiler, DHAT.<br>
+-<br>
+-* A huge number of bug fixes and small enhancements.<br>
+-<br>
+-                    -------------------------<br>
+-<br>
+-Here are details of the above changes, together with descriptions of<br>
+-many other changes, and a list of fixed bugs.<br>
+-<br>
+-* ================== PLATFORM CHANGES =================<br>
+-<br>
+-* Support for ARM/Linux.  Valgrind now runs on ARMv7 capable CPUs<br>
+-  running Linux.  It is known to work on Ubuntu 10.04, Ubuntu 10.10,<br>
+-  and Maemo 5, so you can run Valgrind on your Nokia N900 if you want.<br>
+-<br>
+-  This requires a CPU capable of running the ARMv7-A instruction set<br>
+-  (Cortex A5, A8 and A9).  Valgrind provides fairly complete coverage<br>
+-  of the user space instruction set, including ARM and Thumb integer<br>
+-  code, VFPv3, NEON and V6 media instructions.  The Memcheck,<br>
+-  Cachegrind and Massif tools work properly; other tools work to<br>
+-  varying degrees.<br>
+-<br>
+-* Support for recent Linux distros (Ubuntu 10.10 and Fedora 14), along<br>
+-  with support for recent releases of the underlying toolchain<br>
+-  components, notably gcc-4.5 and glibc-2.12.<br>
+-<br>
+-* Support for Mac OS X 10.6, both 32- and 64-bit executables.  64-bit<br>
+-  support also works much better on OS X 10.5, and is as solid as<br>
+-  32-bit support now.<br>
+-<br>
+-* Support for the SSE4.2 instruction set.  SSE4.2 is supported in<br>
+-  64-bit mode.  In 32-bit mode, support is only available up to and<br>
+-  including SSSE3.  Some exceptions: SSE4.2 AES instructions are not<br>
+-  supported in 64-bit mode, and 32-bit mode does in fact support the<br>
+-  bare minimum SSE4 instructions to needed to run programs on Mac OS X<br>
+-  10.6 on 32-bit targets.<br>
+-<br>
+-* Support for IBM POWER6 cpus has been improved.  The Power ISA up to<br>
+-  and including version 2.05 is supported.<br>
+-<br>
+-* ==================== TOOL CHANGES ====================<br>
+-<br>
+-* Cachegrind has a new processing script, cg_diff, which finds the<br>
+-  difference between two profiles.  It's very useful for evaluating<br>
+-  the performance effects of a change in a program.<br>
+-  <br>
+-  Related to this change, the meaning of cg_annotate's (rarely-used)<br>
+-  --threshold option has changed; this is unlikely to affect many<br>
+-  people, if you do use it please see the user manual for details.<br>
+-<br>
+-* Callgrind now can do branch prediction simulation, similar to<br>
+-  Cachegrind.  In addition, it optionally can count the number of<br>
+-  executed global bus events.  Both can be used for a better<br>
+-  approximation of a "Cycle Estimation" as derived event (you need to<br>
+-  update the event formula in KCachegrind yourself).<br>
+-<br>
+-* Cachegrind and Callgrind now refer to the LL (last-level) cache<br>
+-  rather than the L2 cache.  This is to accommodate machines with<br>
+-  three levels of caches -- if Cachegrind/Callgrind auto-detects the<br>
+-  cache configuration of such a machine it will run the simulation as<br>
+-  if the L2 cache isn't present.  This means the results are less<br>
+-  likely to match the true result for the machine, but<br>
+-  Cachegrind/Callgrind's results are already only approximate, and<br>
+-  should not be considered authoritative.  The results are still<br>
+-  useful for giving a general idea about a program's locality.<br>
+-<br>
+-* Massif has a new option, --pages-as-heap, which is disabled by<br>
+-  default.  When enabled, instead of tracking allocations at the level<br>
+-  of heap blocks (as allocated with malloc/new/new[]), it instead<br>
+-  tracks memory allocations at the level of memory pages (as mapped by<br>
+-  mmap, brk, etc).  Each mapped page is treated as its own block.<br>
+-  Interpreting the page-level output is harder than the heap-level<br>
+-  output, but this option is useful if you want to account for every<br>
+-  byte of memory used by a program.<br>
+-<br>
+-* DRD has two new command-line options: --free-is-write and<br>
+-  --trace-alloc.  The former allows to detect reading from already freed<br>
+-  memory, and the latter allows tracing of all memory allocations and<br>
+-  deallocations.<br>
+-<br>
+-* DRD has several new annotations.  Custom barrier implementations can<br>
+-  now be annotated, as well as benign races on static variables.<br>
+-<br>
+-* DRD's happens before / happens after annotations have been made more<br>
+-  powerful, so that they can now also be used to annotate e.g. a smart<br>
+-  pointer implementation.<br>
+-<br>
+-* Helgrind's annotation set has also been drastically improved, so as<br>
+-  to provide to users a general set of annotations to describe locks,<br>
+-  semaphores, barriers and condition variables.  Annotations to<br>
+-  describe thread-safe reference counted heap objects have also been<br>
+-  added.<br>
+-<br>
+-* Memcheck has a new command-line option, --show-possibly-lost, which<br>
+-  is enabled by default.  When disabled, the leak detector will not<br>
+-  show possibly-lost blocks.<br>
+-<br>
+-* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),<br>
+-  has been added.  DHAT keeps track of allocated heap blocks, and also<br>
+-  inspects every memory reference to see which block (if any) is being<br>
+-  accessed.  This gives a lot of insight into block lifetimes,<br>
+-  utilisation, turnover, liveness, and the location of hot and cold<br>
+-  fields.  You can use DHAT to do hot-field profiling.<br>
+-<br>
+-* ==================== OTHER CHANGES ====================<br>
+-<br>
+-* Improved support for unfriendly self-modifying code: the extra<br>
+-  overhead incurred by --smc-check=all has been reduced by<br>
+-  approximately a factor of 5 as compared with 3.5.0.<br>
+-<br>
+-* Ability to show directory names for source files in error messages.<br>
+-  This is combined with a flexible mechanism for specifying which<br>
+-  parts of the paths should be shown.  This is enabled by the new flag<br>
+-  --fullpath-after.<br>
+-<br>
+-* A new flag, --require-text-symbol, which will stop the run if a<br>
+-  specified symbol is not found it a given shared object when it is<br>
+-  loaded into the process.  This makes advanced working with function<br>
+-  intercepting and wrapping safer and more reliable.<br>
+-<br>
+-* Improved support for the Valkyrie GUI, version 2.0.0.  GUI output<br>
+-  and control of Valgrind is now available for the tools Memcheck and<br>
+-  Helgrind.  XML output from Valgrind is available for Memcheck,<br>
+-  Helgrind and exp-Ptrcheck.<br>
+-<br>
+-* More reliable stack unwinding on amd64-linux, particularly in the<br>
+-  presence of function wrappers, and with gcc-4.5 compiled code.<br>
+-<br>
+-* Modest scalability (performance improvements) for massive<br>
+-  long-running applications, particularly for those with huge amounts<br>
+-  of code.<br>
+-<br>
+-* Support for analyzing programs running under Wine with has been<br>
+-  improved.  The header files <valgrind/valgrind.h>,<br>
+-  <valgrind/memcheck.h> and <valgrind/drd.h> can now be used in<br>
+-  Windows-programs compiled with MinGW or one of the Microsoft Visual<br>
+-  Studio compilers.<br>
+-<br>
+-* A rare but serious error in the 64-bit x86 CPU simulation was fixed.<br>
+-  The 32-bit simulator was not affected.  This did not occur often,<br>
+-  but when it did would usually crash the program under test.<br>
+-  Bug 245925.<br>
+-<br>
+-* A large number of bugs were fixed.  These are shown below.<br>
+-<br>
+-* A number of bugs were investigated, and were candidates for fixing,<br>
+-  but are not fixed in 3.6.0, due to lack of developer time.  They may<br>
+-  get fixed in later releases.  They are:<br>
+-<br>
+-  194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 0x24 0x49  (FXSAVE64)<br>
+-  212419  false positive "lock order violated" (A+B vs A) <br>
+-  213685  Undefined value propagates past dependency breaking instruction<br>
+-  216837  Incorrect instrumentation of NSOperationQueue on Darwin <br>
+-  237920  valgrind segfault on fork failure <br>
+-  242137  support for code compiled by LLVM-2.8<br>
+-  242423  Another unknown Intel cache config value <br>
+-  243232  Inconsistent Lock Orderings report with trylock <br>
+-  243483  ppc: callgrind triggers VEX assertion failure <br>
+-  243935  Helgrind: implementation of ANNOTATE_HAPPENS_BEFORE() is wrong<br>
+-  244677  Helgrind crash hg_main.c:616 (map_threads_lookup): Assertion<br>
+-          'thr' failed. <br>
+-  246152  callgrind internal error after pthread_cancel on 32 Bit Linux <br>
+-  249435  Analyzing wine programs with callgrind triggers a crash <br>
+-  250038  ppc64: Altivec lvsr and lvsl instructions fail their regtest<br>
+-  250065  Handling large allocations <br>
+-  250101  huge "free" memory usage due to m_mallocfree.c<br>
+-          "superblocks fragmentation"<br>
+-  251569  vex amd64->IR: 0xF 0x1 0xF9 0x8B 0x4C 0x24 (RDTSCP)<br>
+-  252091  Callgrind on ARM does not detect function returns correctly<br>
+-  252600  [PATCH] Allow lhs to be a pointer for shl/shr<br>
+-  254420  memory pool tracking broken<br>
+-  n-i-bz  support for adding symbols for JIT generated code<br>
+-<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-mailing the developers (or mailing lists) directly -- bugs that are<br>
+-not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-135264  dcbzl instruction missing<br>
+-142688  == 250799<br>
+-153699  Valgrind should report unaligned reads with movdqa<br>
+-180217  == 212335<br>
+-190429  Valgrind reports lost of errors in ld.so<br>
+-        with x86_64 2.9.90 glibc <br>
+-197266  valgrind appears to choke on the xmms instruction<br>
+-        "roundsd" on x86_64 <br>
+-197988  Crash when demangling very large symbol names<br>
+-202315  unhandled syscall: 332 (inotify_init1)<br>
+-203256  Add page-level profiling to Massif<br>
+-205093  dsymutil=yes needs quotes, locking (partial fix)<br>
+-205241  Snow Leopard 10.6 support (partial fix)<br>
+-206600  Leak checker fails to upgrade indirect blocks when their<br>
+-        parent becomes reachable <br>
+-210935  port valgrind.h (not valgrind) to win32 so apps run under<br>
+-        wine can make client requests<br>
+-211410  vex amd64->IR: 0x15 0xFF 0xFF 0x0 0x0 0x89<br>
+-        within Linux ip-stack checksum functions <br>
+-212335  unhandled instruction bytes: 0xF3 0xF 0xBD 0xC0<br>
+-        (lzcnt %eax,%eax) <br>
+-213685  Undefined value propagates past dependency breaking instruction<br>
+-        (partial fix)<br>
+-215914  Valgrind inserts bogus empty environment variable <br>
+-217863  == 197988<br>
+-219538  adjtimex syscall wrapper wrong in readonly adjtime mode <br>
+-222545  shmat fails under valgind on some arm targets <br>
+-222560  ARM NEON support <br>
+-230407  == 202315<br>
+-231076  == 202315<br>
+-232509  Docs build fails with formatting inside <title></title> elements <br>
+-232793  == 202315<br>
+-235642  [PATCH] syswrap-linux.c: support evdev EVIOCG* ioctls <br>
+-236546  vex x86->IR: 0x66 0xF 0x3A 0xA<br>
+-237202  vex amd64->IR: 0xF3 0xF 0xB8 0xC0 0x49 0x3B <br>
+-237371  better support for VALGRIND_MALLOCLIKE_BLOCK <br>
+-237485  symlink (syscall 57) is not supported on Mac OS <br>
+-237723  sysno == 101 exp-ptrcheck: the 'impossible' happened:<br>
+-        unhandled syscall <br>
+-238208  is_just_below_ESP doesn't take into account red-zone <br>
+-238345  valgrind passes wrong $0 when executing a shell script <br>
+-238679  mq_timedreceive syscall doesn't flag the reception buffer<br>
+-        as "defined"<br>
+-238696  fcntl command F_DUPFD_CLOEXEC not supported <br>
+-238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 <br>
+-238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 <br>
+-238745  3.5.0 Make fails on PPC Altivec opcodes, though configure<br>
+-        says "Altivec off"<br>
+-239992  vex amd64->IR: 0x48 0xF 0xC4 0xC1 0x0 0x48 <br>
+-240488  == 197988<br>
+-240639  == 212335<br>
+-241377  == 236546<br>
+-241903  == 202315<br>
+-241920  == 212335<br>
+-242606  unhandled syscall: setegid (in Ptrcheck)<br>
+-242814  Helgrind "Impossible has happened" during<br>
+-        QApplication::initInstance(); <br>
+-243064  Valgrind attempting to read debug information from iso <br>
+-243270  Make stack unwinding in Valgrind wrappers more reliable<br>
+-243884  exp-ptrcheck: the 'impossible happened: unhandled syscall <br>
+-        sysno = 277 (mq_open)<br>
+-244009  exp-ptrcheck unknown syscalls in analyzing lighttpd<br>
+-244493  ARM VFP d16-d31 registers support <br>
+-244670  add support for audit_session_self syscall on Mac OS 10.6<br>
+-244921  The xml report of helgrind tool is not well format<br>
+-244923  In the xml report file, the <preamble> not escape the <br>
+-        xml char, eg '<','&','>'<br>
+-245535  print full path names in plain text reports <br>
+-245925  x86-64 red zone handling problem <br>
+-246258  Valgrind not catching integer underruns + new [] s<br>
+-246311  reg/reg cmpxchg doesn't work on amd64<br>
+-246549  unhandled syscall unix:277 while testing 32-bit Darwin app <br>
+-246888  Improve Makefile.vex.am <br>
+-247510  [OS X 10.6] Memcheck reports unaddressable bytes passed <br>
+-        to [f]chmod_extended<br>
+-247526  IBM POWER6 (ISA 2.05) support is incomplete<br>
+-247561  Some leak testcases fails due to reachable addresses in<br>
+-        caller save regs<br>
+-247875  sizeofIRType to handle Ity_I128 <br>
+-247894  [PATCH] unhandled syscall sys_readahead <br>
+-247980  Doesn't honor CFLAGS passed to configure <br>
+-248373  darwin10.supp is empty in the trunk <br>
+-248822  Linux FIBMAP ioctl has int parameter instead of long<br>
+-248893  [PATCH] make readdwarf.c big endianess safe to enable<br>
+-        unwinding on big endian systems<br>
+-249224  Syscall 336 not supported (SYS_proc_info) <br>
+-249359  == 245535<br>
+-249775  Incorrect scheme for detecting NEON capabilities of host CPU<br>
+-249943  jni JVM init fails when using valgrind<br>
+-249991  Valgrind incorrectly declares AESKEYGENASSIST support<br>
+-        since VEX r2011<br>
+-249996  linux/arm: unhandled syscall: 181 (__NR_pwrite64)<br>
+-250799  frexp$fenv_access_off function generates SIGILL <br>
+-250998  vex x86->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x2E <br>
+-251251  support pclmulqdq insn <br>
+-251362  valgrind: ARM: attach to debugger either fails or provokes<br>
+-        kernel oops <br>
+-251674  Unhandled syscall 294<br>
+-251818  == 254550<br>
+-<br>
+-254257  Add support for debugfiles found by build-id<br>
+-254550  [PATCH] Implement DW_ATE_UTF (DWARF4)<br>
+-254646  Wrapped functions cause stack misalignment on OS X<br>
+-        (and possibly Linux)<br>
+-254556  ARM: valgrinding anything fails with SIGSEGV for 0xFFFF0FA0<br>
+-<br>
+-(3.6.0: 21 October 2010, vex r2068, valgrind r11471).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.5.0 (19 August 2009)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.5.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.  The main improvement is that Valgrind<br>
+-now works on Mac OS X.<br>
+-<br>
+-This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux<br>
+-and X86/Darwin.  Support for recent distros and toolchain components<br>
+-(glibc 2.10, gcc 4.5) has been added.<br>
+-<br>
+-                    -------------------------<br>
+-<br>
+-Here is a short summary of the changes.  Details are shown further<br>
+-down:<br>
+-<br>
+-* Support for Mac OS X (10.5.x).<br>
+-<br>
+-* Improvements and simplifications to Memcheck's leak checker.<br>
+-<br>
+-* Clarification and simplifications in various aspects of Valgrind's<br>
+-  text output.<br>
+-<br>
+-* XML output for Helgrind and Ptrcheck.<br>
+-<br>
+-* Performance and stability improvements for Helgrind and DRD.<br>
+-<br>
+-* Genuinely atomic support for x86/amd64/ppc atomic instructions.<br>
+-<br>
+-* A new experimental tool, BBV, useful for computer architecture<br>
+-  research.<br>
+-<br>
+-* Improved Wine support, including ability to read Windows PDB<br>
+-  debuginfo.<br>
+-<br>
+-                    -------------------------<br>
+-<br>
+-Here are details of the above changes, followed by descriptions of<br>
+-many other minor changes, and a list of fixed bugs.<br>
+-<br>
+-<br>
+-* Valgrind now runs on Mac OS X.  (Note that Mac OS X is sometimes<br>
+-  called "Darwin" because that is the name of the OS core, which is the<br>
+-  level that Valgrind works at.)<br>
+-<br>
+-  Supported systems:<br>
+-<br>
+-  - It requires OS 10.5.x (Leopard).  Porting to 10.4.x is not planned<br>
+-    because it would require work and 10.4 is only becoming less common.<br>
+-<br>
+-  - 32-bit programs on x86 and AMD64 (a.k.a x86-64) machines are supported<br>
+-    fairly well.  For 10.5.x, 32-bit programs are the default even on<br>
+-    64-bit machines, so it handles most current programs.<br>
+-    <br>
+-  - 64-bit programs on x86 and AMD64 (a.k.a x86-64) machines are not<br>
+-    officially supported, but simple programs at least will probably work.<br>
+-    However, start-up is slow.<br>
+-<br>
+-  - PowerPC machines are not supported.<br>
+-<br>
+-  Things that don't work:<br>
+-<br>
+-  - The Ptrcheck tool.<br>
+-<br>
+-  - Objective-C garbage collection.<br>
+-<br>
+-  - --db-attach=yes.<br>
+-<br>
+-  - If you have Rogue Amoeba's "Instant Hijack" program installed,<br>
+-    Valgrind will fail with a SIGTRAP at start-up.  See<br>
+-    https://bugs.kde.org/show_bug.cgi?id=193917 for details and a<br>
+-    simple work-around.<br>
+-<br>
+-  Usage notes:<br>
+-<br>
+-  - You will likely find --dsymutil=yes a useful option, as error<br>
+-    messages may be imprecise without it.<br>
+-<br>
+-  - Mac OS X support is new and therefore will be less robust than the<br>
+-    Linux support.  Please report any bugs you find.<br>
+-<br>
+-  - Threaded programs may run more slowly than on Linux.<br>
+-<br>
+-  Many thanks to Greg Parker for developing this port over several years.<br>
+-<br>
+-<br>
+-* Memcheck's leak checker has been improved.  <br>
+-<br>
+-  - The results for --leak-check=summary now match the summary results<br>
+-    for --leak-check=full.  Previously they could differ because<br>
+-    --leak-check=summary counted "indirectly lost" blocks and<br>
+-    "suppressed" blocks as "definitely lost".<br>
+-<br>
+-  - Blocks that are only reachable via at least one interior-pointer,<br>
+-    but are directly pointed to by a start-pointer, were previously<br>
+-    marked as "still reachable".  They are now correctly marked as<br>
+-    "possibly lost".<br>
+-<br>
+-  - The default value for the --leak-resolution option has been<br>
+-    changed from "low" to "high".  In general, this means that more<br>
+-    leak reports will be produced, but each leak report will describe<br>
+-    fewer leaked blocks.<br>
+-<br>
+-  - With --leak-check=full, "definitely lost" and "possibly lost"<br>
+-    leaks are now considered as proper errors, ie. they are counted<br>
+-    for the "ERROR SUMMARY" and affect the behaviour of<br>
+-    --error-exitcode.  These leaks are not counted as errors if<br>
+-    --leak-check=summary is specified, however.<br>
+-<br>
+-  - Documentation for the leak checker has been improved.<br>
+-<br>
+-<br>
+-* Various aspects of Valgrind's text output have changed.<br>
+-<br>
+-  - Valgrind's start-up message has changed.  It is shorter but also<br>
+-    includes the command being run, which makes it easier to use<br>
+-    --trace-children=yes.  An example:<br>
+-<br>
+-  - Valgrind's shut-down messages have also changed.  This is most<br>
+-    noticeable with Memcheck, where the leak summary now occurs before<br>
+-    the error summary.  This change was necessary to allow leaks to be<br>
+-    counted as proper errors (see the description of the leak checker<br>
+-    changes above for more details).  This was also necessary to fix a<br>
+-    longstanding bug in which uses of suppressions against leaks were<br>
+-    not "counted", leading to difficulties in maintaining suppression<br>
+-    files (see https://bugs.kde.org/show_bug.cgi?id=186790).<br>
+-<br>
+-  - Behavior of -v has changed.  In previous versions, -v printed out<br>
+-    a mixture of marginally-user-useful information, and tool/core<br>
+-    statistics.  The statistics printing has now been moved to its own<br>
+-    flag, --stats=yes.  This means -v is less verbose and more likely<br>
+-    to convey useful end-user information.<br>
+-<br>
+-  - The format of some (non-XML) stack trace entries has changed a<br>
+-    little.  Previously there were six possible forms:<br>
+-<br>
+-      0x80483BF: really (a.c:20)<br>
+-      0x80483BF: really (in /foo/a.out)<br>
+-      0x80483BF: really<br>
+-      0x80483BF: (within /foo/a.out)<br>
+-      0x80483BF: ??? (a.c:20)<br>
+-      0x80483BF: ???<br>
+-<br>
+-    The third and fourth of these forms have been made more consistent<br>
+-    with the others.  The six possible forms are now:<br>
+-  <br>
+-      0x80483BF: really (a.c:20)<br>
+-      0x80483BF: really (in /foo/a.out)<br>
+-      0x80483BF: really (in ???)<br>
+-      0x80483BF: ??? (in /foo/a.out)<br>
+-      0x80483BF: ??? (a.c:20)<br>
+-      0x80483BF: ???<br>
+-<br>
+-    Stack traces produced when --xml=yes is specified are different<br>
+-    and unchanged.<br>
+-<br>
+-<br>
+-* Helgrind and Ptrcheck now support XML output, so they can be used<br>
+-  from GUI tools.  Also, the XML output mechanism has been<br>
+-  overhauled.<br>
+-<br>
+-  - The XML format has been overhauled and generalised, so it is more<br>
+-    suitable for error reporting tools in general.  The Memcheck<br>
+-    specific aspects of it have been removed.  The new format, which<br>
+-    is an evolution of the old format, is described in<br>
+-    docs/internals/xml-output-protocol4.txt.<br>
+-<br>
+-  - Memcheck has been updated to use the new format.<br>
+-<br>
+-  - Helgrind and Ptrcheck are now able to emit output in this format.<br>
+-<br>
+-  - The XML output mechanism has been overhauled.  XML is now output<br>
+-    to its own file descriptor, which means that:<br>
+-<br>
+-    * Valgrind can output text and XML independently.<br>
+-<br>
+-    * The longstanding problem of XML output being corrupted by <br>
+-      unexpected un-tagged text messages  is solved.<br>
+-<br>
+-    As before, the destination for text output is specified using<br>
+-    --log-file=, --log-fd= or --log-socket=.<br>
+-<br>
+-    As before, XML output for a tool is enabled using --xml=yes.<br>
+-<br>
+-    Because there's a new XML output channel, the XML output<br>
+-    destination is now specified by --xml-file=, --xml-fd= or<br>
+-    --xml-socket=.<br>
+-<br>
+-    Initial feedback has shown this causes some confusion.  To<br>
+-    clarify, the two envisaged usage scenarios are:<br>
+-<br>
+-    (1) Normal text output.  In this case, do not specify --xml=yes<br>
+-        nor any of --xml-file=, --xml-fd= or --xml-socket=.<br>
+-<br>
+-    (2) XML output.  In this case, specify --xml=yes, and one of<br>
+-        --xml-file=, --xml-fd= or --xml-socket= to select the XML<br>
+-        destination, one of --log-file=, --log-fd= or --log-socket=<br>
+-        to select the destination for any remaining text messages,<br>
+-        and, importantly, -q.<br>
+-<br>
+-        -q makes Valgrind completely silent on the text channel,<br>
+-        except in the case of critical failures, such as Valgrind<br>
+-        itself segfaulting, or failing to read debugging information.<br>
+-        Hence, in this scenario, it suffices to check whether or not<br>
+-        any output appeared on the text channel.  If yes, then it is<br>
+-        likely to be a critical error which should be brought to the<br>
+-        attention of the user.  If no (the text channel produced no<br>
+-        output) then it can be assumed that the run was successful.<br>
+-<br>
+-        This allows GUIs to make the critical distinction they need to<br>
+-        make (did the run fail or not?) without having to search or<br>
+-        filter the text output channel in any way.<br>
+-<br>
+-    It is also recommended to use --child-silent-after-fork=yes in<br>
+-    scenario (2).<br>
+-<br>
+-<br>
+-* Improvements and changes in Helgrind:<br>
+-<br>
+-  - XML output, as described above<br>
+-<br>
+-  - Checks for consistent association between pthread condition<br>
+-    variables and their associated mutexes are now performed.<br>
+-<br>
+-  - pthread_spinlock functions are supported.<br>
+-<br>
+-  - Modest performance improvements.<br>
+-<br>
+-  - Initial (skeletal) support for describing the behaviour of<br>
+-    non-POSIX synchronisation objects through ThreadSanitizer<br>
+-    compatible ANNOTATE_* macros.<br>
+-<br>
+-  - More controllable tradeoffs between performance and the level of<br>
+-    detail of "previous" accesses in a race.  There are now three<br>
+-    settings:<br>
+-<br>
+-    * --history-level=full.  This is the default, and was also the<br>
+-      default in 3.4.x.  It shows both stacks involved in a race, but<br>
+-      requires a lot of memory and can be very slow in programs that<br>
+-      do many inter-thread synchronisation events.<br>
+-<br>
+-    * --history-level=none.  This only shows the later stack involved<br>
+-      in a race.  This can be much faster than --history-level=full,<br>
+-      but makes it much more difficult to find the other access<br>
+-      involved in the race.<br>
+-<br>
+-    The new intermediate setting is<br>
+-<br>
+-    * --history-level=approx<br>
+-<br>
+-      For the earlier (other) access, two stacks are presented.  The<br>
+-      earlier access is guaranteed to be somewhere in between the two<br>
+-      program points denoted by those stacks.  This is not as useful<br>
+-      as showing the exact stack for the previous access (as per<br>
+-      --history-level=full), but it is better than nothing, and it's<br>
+-      almost as fast as --history-level=none.<br>
+-<br>
+-<br>
+-* New features and improvements in DRD:<br>
+-<br>
+-  - The error messages printed by DRD are now easier to interpret.<br>
+-    Instead of using two different numbers to identify each thread<br>
+-    (Valgrind thread ID and DRD thread ID), DRD does now identify<br>
+-    threads via a single number (the DRD thread ID).  Furthermore<br>
+-    "first observed at" information is now printed for all error<br>
+-    messages related to synchronization objects.<br>
+-<br>
+-  - Added support for named semaphores (sem_open() and sem_close()).<br>
+-<br>
+-  - Race conditions between pthread_barrier_wait() and<br>
+-    pthread_barrier_destroy() calls are now reported.<br>
+-<br>
+-  - Added support for custom allocators through the macros<br>
+-    VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in<br>
+-    in <valgrind/valgrind.h>). An alternative for these two macros is<br>
+-    the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in<br>
+-    <valgrind/drd.h>).<br>
+-<br>
+-  - Added support for annotating non-POSIX synchronization objects<br>
+-    through several new ANNOTATE_*() macros.<br>
+-<br>
+-  - OpenMP: added support for the OpenMP runtime (libgomp) included<br>
+-    with gcc versions 4.3.0 and 4.4.0.<br>
+-<br>
+-  - Faster operation.<br>
+-<br>
+-  - Added two new command-line options (--first-race-only and<br>
+-    --segment-merging-interval).<br>
+-<br>
+-<br>
+-* Genuinely atomic support for x86/amd64/ppc atomic instructions<br>
+-<br>
+-  Valgrind will now preserve (memory-access) atomicity of LOCK-<br>
+-  prefixed x86/amd64 instructions, and any others implying a global<br>
+-  bus lock.  Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.<br>
+-<br>
+-  This means that Valgrinded processes will "play nicely" in<br>
+-  situations where communication with other processes, or the kernel,<br>
+-  is done through shared memory and coordinated with such atomic<br>
+-  instructions.  Prior to this change, such arrangements usually<br>
+-  resulted in hangs, races or other synchronisation failures, because<br>
+-  Valgrind did not honour atomicity of such instructions.<br>
+-<br>
+-<br>
+-* A new experimental tool, BBV, has been added.  BBV generates basic<br>
+-  block vectors for use with the SimPoint analysis tool, which allows<br>
+-  a program's overall behaviour to be approximated by running only a<br>
+-  fraction of it.  This is useful for computer architecture<br>
+-  researchers.  You can run BBV by specifying --tool=exp-bbv (the<br>
+-  "exp-" prefix is short for "experimental").  BBV was written by<br>
+-  Vince Weaver.<br>
+-<br>
+-<br>
+-* Modestly improved support for running Windows applications under<br>
+-  Wine.  In particular, initial support for reading Windows .PDB debug<br>
+-  information has been added.<br>
+-<br>
+-<br>
+-* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been<br>
+-  added.  It is similar to VALGRIND_COUNT_LEAKS but counts blocks<br>
+-  instead of bytes.<br>
+-<br>
+-<br>
+-* The Valgrind client requests VALGRIND_PRINTF and<br>
+-  VALGRIND_PRINTF_BACKTRACE have been changed slightly.  Previously,<br>
+-  the string was always printed immediately on its own line.  Now, the<br>
+-  string will be added to a buffer but not printed until a newline is<br>
+-  encountered, or other Valgrind output is printed (note that for<br>
+-  VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered<br>
+-  "other Valgrind output").  This allows you to use multiple<br>
+-  VALGRIND_PRINTF calls to build up a single output line, and also to<br>
+-  print multiple output lines with a single request (by embedding<br>
+-  multiple newlines in the string).<br>
+-<br>
+-<br>
+-* The graphs drawn by Massif's ms_print program have changed slightly:<br>
+-<br>
+-  - The half-height chars '.' and ',' are no longer drawn, because<br>
+-    they are confusing.  The --y option can be used if the default<br>
+-    y-resolution is not high enough.<br>
+-<br>
+-  - Horizontal lines are now drawn after the top of a snapshot if<br>
+-    there is a gap until the next snapshot.  This makes it clear that<br>
+-    the memory usage has not dropped to zero between snapshots.<br>
+-<br>
+-<br>
+-* Something that happened in 3.4.0, but wasn't clearly announced: the<br>
+-  option --read-var-info=yes can be used by some tools (Memcheck,<br>
+-  Helgrind and DRD).  When enabled, it causes Valgrind to read DWARF3<br>
+-  variable type and location information.  This makes those tools<br>
+-  start up more slowly and increases memory consumption, but<br>
+-  descriptions of data addresses in error messages become more<br>
+-  detailed.<br>
+-<br>
+-<br>
+-* exp-Omega, an experimental instantaneous leak-detecting tool, was<br>
+-  disabled in 3.4.0 due to a lack of interest and maintenance,<br>
+-  although the source code was still in the distribution.  The source<br>
+-  code has now been removed from the distribution.  For anyone<br>
+-  interested, the removal occurred in SVN revision r10247.<br>
+-<br>
+-<br>
+-* Some changes have been made to the build system.<br>
+-<br>
+-  - VEX/ is now integrated properly into the build system.  This means<br>
+-    that dependency tracking within VEX/ now works properly, "make<br>
+-    install" will work without requiring "make" before it, and<br>
+-    parallel builds (ie. 'make -j') now work (previously a<br>
+-    .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'<br>
+-    was effectively ignored).<br>
+-<br>
+-  - The --with-vex configure option has been removed.  It was of<br>
+-    little use and removing it simplified the build system.<br>
+-<br>
+-  - The location of some install files has changed.  This should not<br>
+-    affect most users.  Those who might be affected:<br>
+-<br>
+-    * For people who use Valgrind with MPI programs, the installed<br>
+-      libmpiwrap.so library has moved from<br>
+-      $(INSTALL)/<platform>/libmpiwrap.so to<br>
+-      $(INSTALL)/libmpiwrap-<platform>.so.<br>
+-<br>
+-    * For people who distribute standalone Valgrind tools, the<br>
+-      installed libraries such as $(INSTALL)/<platform>/libcoregrind.a<br>
+-      have moved to $(INSTALL)/libcoregrind-<platform>.a.<br>
+-<br>
+-    These changes simplify the build system.<br>
+-<br>
+-  - Previously, all the distributed suppression (*.supp) files were<br>
+-    installed.  Now, only default.supp is installed.  This should not<br>
+-    affect users as the other installed suppression files were not<br>
+-    read; the fact that they were installed was a mistake.<br>
+-<br>
+-<br>
+-* KNOWN LIMITATIONS:<br>
+-<br>
+-  - Memcheck is unusable with the Intel compiler suite version 11.1,<br>
+-    when it generates code for SSE2-and-above capable targets.  This<br>
+-    is because of icc's use of highly optimised inlined strlen<br>
+-    implementations.  It causes Memcheck to report huge numbers of<br>
+-    false errors even in simple programs.  Helgrind and DRD may also<br>
+-    have problems.<br>
+-<br>
+-    Versions 11.0 and earlier may be OK, but this has not been<br>
+-    properly tested.<br>
+-<br>
+-<br>
+-The following bugs have been fixed or resolved.  Note that "n-i-bz"<br>
+-stands for "not in bugzilla" -- that is, a bug that was reported to us<br>
+-but never got a bugzilla entry.  We encourage you to file bugs in<br>
+-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-mailing the developers (or mailing lists) directly -- bugs that are<br>
+-not entered into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-To see details of a given bug, visit<br>
+-https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br>
+-where XXXXXX is the bug number as listed below.<br>
+-<br>
+-84303   How about a LockCheck tool? <br>
+-91633   dereference of null ptr in vgPlain_st_basetype <br>
+-97452   Valgrind doesn't report any pthreads problems <br>
+-100628  leak-check gets assertion failure when using <br>
+-        VALGRIND_MALLOCLIKE_BLOCK on malloc()ed memory <br>
+-108528  NPTL pthread cleanup handlers not called <br>
+-110126  Valgrind 2.4.1 configure.in tramples CFLAGS <br>
+-110128  mallinfo is not implemented... <br>
+-110770  VEX: Generated files not always updated when making valgrind<br>
+-111102  Memcheck: problems with large (memory footprint) applications <br>
+-115673  Vex's decoder should never assert <br>
+-117564  False positive: Syscall param clone(child_tidptr) contains<br>
+-        uninitialised byte(s) <br>
+-119404  executing ssh from inside valgrind fails <br>
+-133679  Callgrind does not write path names to sources with dwarf debug<br>
+-        info<br>
+-135847  configure.in problem with non gnu compilers (and possible fix) <br>
+-136154  threads.c:273 (vgCallgrind_post_signal): Assertion<br>
+-        '*(vgCallgrind_current_fn_stack.top) == 0' failed. <br>
+-136230  memcheck reports "possibly lost", should be "still reachable" <br>
+-137073  NULL arg to MALLOCLIKE_BLOCK causes crash <br>
+-137904  Valgrind reports a memory leak when using POSIX threads,<br>
+-        while it shouldn't <br>
+-139076  valgrind VT_GETSTATE error <br>
+-142228  complaint of elf_dynamic_do_rela in trivial usage <br>
+-145347  spurious warning with USBDEVFS_REAPURB <br>
+-148441  (wine) can't find memory leak in Wine, win32 binary <br>
+-        executable file.<br>
+-148742  Leak-check fails assert on exit <br>
+-149878  add (proper) check for calloc integer overflow <br>
+-150606  Call graph is broken when using callgrind control <br>
+-152393  leak errors produce an exit code of 0. I need some way to <br>
+-        cause leak errors to result in a nonzero exit code. <br>
+-157154  documentation (leak-resolution doc speaks about num-callers<br>
+-        def=4) + what is a loss record<br>
+-159501  incorrect handling of ALSA ioctls <br>
+-162020  Valgrinding an empty/zero-byte file crashes valgrind <br>
+-162482  ppc: Valgrind crashes while reading stabs information <br>
+-162718  x86: avoid segment selector 0 in sys_set_thread_area() <br>
+-163253  (wine) canonicaliseSymtab forgot some fields in DiSym <br>
+-163560  VEX/test_main.c is missing from valgrind-3.3.1 <br>
+-164353  malloc_usable_size() doesn't return a usable size <br>
+-165468  Inconsistent formatting in memcheck manual -- please fix <br>
+-169505  main.c:286 (endOfInstr):<br>
+-        Assertion 'ii->cost_offset == *cost_offset' failed <br>
+-177206  Generate default.supp during compile instead of configure<br>
+-177209  Configure valt_load_address based on arch+os <br>
+-177305  eventfd / syscall 323 patch lost<br>
+-179731  Tests fail to build because of inlining of non-local asm labels<br>
+-181394  helgrind: libhb_core.c:3762 (msm_write): Assertion <br>
+-        'ordxx == POrd_EQ || ordxx == POrd_LT' failed. <br>
+-181594  Bogus warning for empty text segment <br>
+-181707  dwarf doesn't require enumerations to have name <br>
+-185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64 <br>
+-185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):<br>
+-        Assertion '!already_present' failed.<br>
+-185359  exp-ptrcheck: unhandled syscall getresuid()<br>
+-185794  "WARNING: unhandled syscall: 285" (fallocate) on x86_64<br>
+-185816  Valgrind is unable to handle debug info for files with split<br>
+-        debug info that are prelinked afterwards <br>
+-185980  [darwin] unhandled syscall: sem_open <br>
+-186238  bbToIR_AMD64: disInstr miscalculated next %rip<br>
+-186507  exp-ptrcheck unhandled syscalls prctl, etc. <br>
+-186790  Suppression pattern used for leaks are not reported <br>
+-186796  Symbols with length>200 in suppression files are ignored <br>
+-187048  drd: mutex PTHREAD_PROCESS_SHARED attribute missinterpretation<br>
+-187416  exp-ptrcheck: support for __NR_{setregid,setreuid,setresuid}<br>
+-188038  helgrind: hg_main.c:926: mk_SHVAL_fail: the 'impossible' happened<br>
+-188046  bashisms in the configure script<br>
+-188127  amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA<br>
+-188161  memcheck: --track-origins=yes asserts "mc_machine.c:672<br>
+-        (get_otrack_shadow_offset_wrk): the 'impossible' happened."<br>
+-188248  helgrind: pthread_cleanup_push, pthread_rwlock_unlock, <br>
+-        assertion fail "!lock->heldBy" <br>
+-188427  Add support for epoll_create1 (with patch) <br>
+-188530  Support for SIOCGSTAMPNS<br>
+-188560  Include valgrind.spec in the tarball<br>
+-188572  Valgrind on Mac should suppress setenv() mem leak <br>
+-189054  Valgrind fails to build because of duplicate non-local asm labels <br>
+-189737  vex amd64->IR: unhandled instruction bytes: 0xAC<br>
+-189762  epoll_create syscall not handled (--tool=exp-ptrcheck)<br>
+-189763  drd assertion failure: s_threadinfo[tid].is_recording <br>
+-190219  unhandled syscall: 328 (x86-linux)<br>
+-190391  dup of 181394; see above<br>
+-190429  Valgrind reports lots of errors in ld.so with x86_64 2.9.90 glibc <br>
+-190820  No debug information on powerpc-linux<br>
+-191095  PATCH: Improve usbdevfs ioctl handling <br>
+-191182  memcheck: VALGRIND_LEAK_CHECK quadratic when big nr of chunks<br>
+-        or big nr of errors<br>
+-191189  --xml=yes should obey --gen-suppressions=all <br>
+-191192  syslog() needs a suppression on macosx <br>
+-191271  DARWIN: WARNING: unhandled syscall: 33554697 a.k.a.: 265 <br>
+-191761  getrlimit on MacOSX <br>
+-191992  multiple --fn-skip only works sometimes; dependent on order <br>
+-192634  V. reports "aspacem sync_check_mapping_callback: <br>
+-        segment mismatch" on Darwin<br>
+-192954  __extension__ missing on 2 client requests <br>
+-194429  Crash at start-up with glibc-2.10.1 and linux-2.6.29 <br>
+-194474  "INSTALL" file has different build instructions than "README"<br>
+-194671  Unhandled syscall (sem_wait?) from mac valgrind <br>
+-195069  memcheck: reports leak (memory still reachable) for <br>
+-        printf("%d', x) <br>
+-195169  drd: (vgDrd_barrier_post_wait):<br>
+-        Assertion 'r->sg[p->post_iteration]' failed. <br>
+-195268  valgrind --log-file doesn't accept ~/...<br>
+-195838  VEX abort: LibVEX_N_SPILL_BYTES too small for CPUID boilerplate <br>
+-195860  WARNING: unhandled syscall: unix:223 <br>
+-196528  need a error suppression for pthread_rwlock_init under os x? <br>
+-197227  Support aio_* syscalls on Darwin<br>
+-197456  valgrind should reject --suppressions=(directory) <br>
+-197512  DWARF2 CFI reader: unhandled CFI instruction 0:10 <br>
+-197591  unhandled syscall 27 (mincore) <br>
+-197793  Merge DCAS branch to the trunk == 85756, 142103<br>
+-197794  Avoid duplicate filenames in Vex <br>
+-197898  make check fails on current SVN <br>
+-197901  make check fails also under exp-ptrcheck in current SVN <br>
+-197929  Make --leak-resolution=high the default <br>
+-197930  Reduce spacing between leak reports <br>
+-197933  Print command line of client at start-up, and shorten preamble <br>
+-197966  unhandled syscall 205 (x86-linux, --tool=exp-ptrcheck)<br>
+-198395  add BBV to the distribution as an experimental tool <br>
+-198624  Missing syscalls on Darwin: 82, 167, 281, 347 <br>
+-198649  callgrind_annotate doesn't cumulate counters <br>
+-199338  callgrind_annotate sorting/thresholds are broken for all but Ir <br>
+-199977  Valgrind complains about an unrecognized instruction in the<br>
+-        atomic_incs test program<br>
+-200029  valgrind isn't able to read Fedora 12 debuginfo <br>
+-200760  darwin unhandled syscall: unix:284 <br>
+-200827  DRD doesn't work on Mac OS X <br>
+-200990  VG_(read_millisecond_timer)() does not work correctly <br>
+-201016  Valgrind does not support pthread_kill() on Mac OS <br>
+-201169  Document --read-var-info<br>
+-201323  Pre-3.5.0 performance sanity checking <br>
+-201384  Review user manual for the 3.5.0 release <br>
+-201585  mfpvr not implemented on ppc <br>
+-201708  tests failing because x86 direction flag is left set <br>
+-201757  Valgrind doesn't handle any recent sys_futex additions <br>
+-204377  64-bit valgrind can not start a shell script<br>
+-        (with #!/path/to/shell) if the shell is a 32-bit executable<br>
+-n-i-bz  drd: fixed assertion failure triggered by mutex reinitialization.<br>
+-n-i-bz  drd: fixed a bug that caused incorrect messages to be printed<br>
+-        about memory allocation events with memory access tracing enabled<br>
+-n-i-bz  drd: fixed a memory leak triggered by vector clock deallocation<br>
+-<br>
+-(3.5.0: 19 Aug 2009, vex r1913, valgrind r10846).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.4.1 (28 February 2009)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.4.1 is a bug-fix release that fixes some regressions and assertion<br>
+-failures in debug info reading in 3.4.0, most notably incorrect stack<br>
+-traces on amd64-linux on older (glibc-2.3 based) systems. Various<br>
+-other debug info problems are also fixed.  A number of bugs in the<br>
+-exp-ptrcheck tool introduced in 3.4.0 have been fixed.<br>
+-<br>
+-In view of the fact that 3.4.0 contains user-visible regressions<br>
+-relative to 3.3.x, upgrading to 3.4.1 is recommended.  Packagers are<br>
+-encouraged to ship 3.4.1 in preference to 3.4.0.<br>
+-<br>
+-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in<br>
+-bugzilla" -- that is, a bug that was reported to us but never got a<br>
+-bugzilla entry.  We encourage you to file bugs in bugzilla<br>
+-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the<br>
+-developers (or mailing lists) directly -- bugs that are not entered<br>
+-into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-n-i-bz  Fix various bugs reading icc-11 generated debug info<br>
+-n-i-bz  Fix various bugs reading gcc-4.4 generated debug info<br>
+-n-i-bz  Preliminary support for glibc-2.10 / Fedora 11<br>
+-n-i-bz  Cachegrind and Callgrind: handle non-power-of-two cache sizes,<br>
+-        so as to support (eg) 24k Atom D1 and Core2 with 3/6/12MB L2.<br>
+-179618  exp-ptrcheck crashed / exit prematurely<br>
+-179624  helgrind: false positive races with pthread_create and<br>
+-        recv/open/close/read<br>
+-134207  pkg-config output contains @VG_PLATFORM@<br>
+-176926  floating point exception at valgrind startup with PPC 440EPX<br>
+-181594  Bogus warning for empty text segment<br>
+-173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant rex prefixes)<br>
+-181707  Dwarf3 doesn't require enumerations to have name<br>
+-185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64<br>
+-185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):<br>
+-        Assertion '!already_present' failed.<br>
+-185359  exp-ptrcheck unhandled syscall getresuid()<br>
+-<br>
+-(3.4.1.RC1:  24 Feb 2008, vex r1884, valgrind r9253).<br>
+-(3.4.1:      28 Feb 2008, vex r1884, valgrind r9293).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.4.0 (2 January 2009)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.4.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.  This release supports X86/Linux,<br>
+-AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros<br>
+-(using gcc 4.4, glibc 2.8 and 2.9) has been added.<br>
+-<br>
+-3.4.0 brings some significant tool improvements.  Memcheck can now<br>
+-report the origin of uninitialised values, the thread checkers<br>
+-Helgrind and DRD are much improved, and we have a new experimental<br>
+-tool, exp-Ptrcheck, which is able to detect overruns of stack and<br>
+-global arrays.  In detail:<br>
+-<br>
+-* Memcheck is now able to track the origin of uninitialised values.<br>
+-  When it reports an uninitialised value error, it will try to show<br>
+-  the origin of the value, as either a heap or stack allocation.<br>
+-  Origin tracking is expensive and so is not enabled by default.  To<br>
+-  use it, specify --track-origins=yes.  Memcheck's speed will be<br>
+-  essentially halved, and memory usage will be significantly<br>
+-  increased.  Nevertheless it can drastically reduce the effort<br>
+-  required to identify the root cause of uninitialised value errors,<br>
+-  and so is often a programmer productivity win, despite running more<br>
+-  slowly.<br>
+-<br>
+-* A version (1.4.0) of the Valkyrie GUI, that works with Memcheck in<br>
+-  3.4.0, will be released shortly.<br>
+-<br>
+-* Helgrind's race detection algorithm has been completely redesigned<br>
+-  and reimplemented, to address usability and scalability concerns:<br>
+-<br>
+-  - The new algorithm has a lower false-error rate: it is much less<br>
+-    likely to report races that do not really exist.<br>
+-<br>
+-  - Helgrind will display full call stacks for both accesses involved<br>
+-    in a race.  This makes it easier to identify the root causes of<br>
+-    races.<br>
+-<br>
+-  - Limitations on the size of program that can run have been removed.<br>
+-<br>
+-  - Performance has been modestly improved, although that is very<br>
+-    workload-dependent.<br>
+-<br>
+-  - Direct support for Qt4 threading has been added.<br>
+-<br>
+-  - pthread_barriers are now directly supported.<br>
+-<br>
+-  - Helgrind works well on all supported Linux targets.<br>
+-<br>
+-* The DRD thread debugging tool has seen major improvements:<br>
+-<br>
+-  - Greatly improved performance and significantly reduced memory<br>
+-    usage.<br>
+-<br>
+-  - Support for several major threading libraries (Boost.Thread, Qt4,<br>
+-    glib, OpenMP) has been added.<br>
+-<br>
+-  - Support for atomic instructions, POSIX semaphores, barriers and<br>
+-    reader-writer locks has been added.<br>
+-<br>
+-  - Works now on PowerPC CPUs too.<br>
+-<br>
+-  - Added support for printing thread stack usage at thread exit time.<br>
+-<br>
+-  - Added support for debugging lock contention.<br>
+-<br>
+-  - Added a manual for Drd.<br>
+-<br>
+-* A new experimental tool, exp-Ptrcheck, has been added.  Ptrcheck<br>
+-  checks for misuses of pointers.  In that sense it is a bit like<br>
+-  Memcheck.  However, Ptrcheck can do things Memcheck can't: it can<br>
+-  detect overruns of stack and global arrays, it can detect<br>
+-  arbitrarily far out-of-bounds accesses to heap blocks, and it can<br>
+-  detect accesses heap blocks that have been freed a very long time<br>
+-  ago (millions of blocks in the past).<br>
+-<br>
+-  Ptrcheck currently works only on x86-linux and amd64-linux.  To use<br>
+-  it, use --tool=exp-ptrcheck.  A simple manual is provided, as part<br>
+-  of the main Valgrind documentation.  As this is an experimental<br>
+-  tool, we would be particularly interested in hearing about your<br>
+-  experiences with it.<br>
+-<br>
+-* exp-Omega, an experimental instantaneous leak-detecting tool, is no<br>
+-  longer built by default, although the code remains in the repository<br>
+-  and the tarball.  This is due to three factors: a perceived lack of<br>
+-  users, a lack of maintenance, and concerns that it may not be<br>
+-  possible to achieve reliable operation using the existing design.<br>
+-<br>
+-* As usual, support for the latest Linux distros and toolchain<br>
+-  components has been added.  It should work well on Fedora Core 10,<br>
+-  OpenSUSE 11.1 and Ubuntu 8.10.  gcc-4.4 (in its current pre-release<br>
+-  state) is supported, as is glibc-2.9.  The C++ demangler has been<br>
+-  updated so as to work well with C++ compiled by even the most recent<br>
+-  g++'s.<br>
+-<br>
+-* You can now use frame-level wildcards in suppressions.  This was a<br>
+-  frequently-requested enhancement.  A line "..." in a suppression now<br>
+-  matches zero or more frames.  This makes it easier to write<br>
+-  suppressions which are precise yet insensitive to changes in<br>
+-  inlining behaviour.<br>
+-<br>
+-* 3.4.0 adds support on x86/amd64 for the SSSE3 instruction set.<br>
+-<br>
+-* Very basic support for IBM Power6 has been added (64-bit processes only).<br>
+-<br>
+-* Valgrind is now cross-compilable.  For example, it is possible to<br>
+-  cross compile Valgrind on an x86/amd64-linux host, so that it runs<br>
+-  on a ppc32/64-linux target.<br>
+-<br>
+-* You can set the main thread's stack size at startup using the<br>
+-  new --main-stacksize= flag (subject of course to ulimit settings).<br>
+-  This is useful for running apps that need a lot of stack space.<br>
+-<br>
+-* The limitation that you can't use --trace-children=yes together<br>
+-  with --db-attach=yes has been removed.<br>
+-<br>
+-* The following bugs have been fixed.  Note that "n-i-bz" stands for<br>
+-  "not in bugzilla" -- that is, a bug that was reported to us but<br>
+-  never got a bugzilla entry.  We encourage you to file bugs in<br>
+-  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-  mailing the developers (or mailing lists) directly.<br>
+-<br>
+-  n-i-bz  Make return types for some client requests 64-bit clean<br>
+-  n-i-bz  glibc 2.9 support<br>
+-  n-i-bz  ignore unsafe .valgrindrc's (CVE-2008-4865)<br>
+-  n-i-bz  MPI_Init(0,0) is valid but libmpiwrap.c segfaults<br>
+-  n-i-bz  Building in an env without gdb gives bogus gdb attach<br>
+-  92456   Tracing the origin of uninitialised memory<br>
+-  106497  Valgrind does not demangle some C++ template symbols<br>
+-  162222  ==106497<br>
+-  151612  Suppression with "..." (frame-level wildcards in .supp files)<br>
+-  156404  Unable to start oocalc under memcheck on openSUSE 10.3 (64-bit)<br>
+-  159285  unhandled syscall:25 (stime, on x86-linux)<br>
+-  159452  unhandled ioctl 0x8B01 on "valgrind iwconfig"<br>
+-  160954  ppc build of valgrind crashes with illegal instruction (isel)<br>
+-  160956  mallinfo implementation, w/ patch<br>
+-  162092  Valgrind fails to start gnome-system-monitor<br>
+-  162819  malloc_free_fill test doesn't pass on glibc2.8 x86<br>
+-  163794  assertion failure with "--track-origins=yes"<br>
+-  163933  sigcontext.err and .trapno must be set together<br>
+-  163955  remove constraint !(--db-attach=yes && --trace-children=yes)<br>
+-  164476  Missing kernel module loading system calls<br>
+-  164669  SVN regression: mmap() drops posix file locks<br>
+-  166581  Callgrind output corruption when program forks<br>
+-  167288  Patch file for missing system calls on Cell BE<br>
+-  168943  unsupported scas instruction pentium<br>
+-  171645  Unrecognised instruction (MOVSD, non-binutils encoding)<br>
+-  172417  x86->IR: 0x82 ...<br>
+-  172563  amd64->IR: 0xD9 0xF5  -  fprem1<br>
+-  173099  .lds linker script generation error<br>
+-  173177  [x86_64] syscalls: 125/126/179 (capget/capset/quotactl)<br>
+-  173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant prefixes)<br>
+-  174532  == 173751<br>
+-  174908  --log-file value not expanded correctly for core file<br>
+-  175044  Add lookup_dcookie for amd64<br>
+-  175150  x86->IR: 0xF2 0xF 0x11 0xC1 (movss non-binutils encoding)<br>
+-<br>
+-Developer-visible changes:<br>
+-<br>
+-* Valgrind's debug-info reading machinery has been majorly overhauled.<br>
+-  It can now correctly establish the addresses for ELF data symbols,<br>
+-  which is something that has never worked properly before now.<br>
+-<br>
+-  Also, Valgrind can now read DWARF3 type and location information for<br>
+-  stack and global variables.  This makes it possible to use the<br>
+-  framework to build tools that rely on knowing the type and locations<br>
+-  of stack and global variables, for example exp-Ptrcheck.<br>
+-<br>
+-  Reading of such information is disabled by default, because most<br>
+-  tools don't need it, and because it is expensive in space and time.<br>
+-  However, you can force Valgrind to read it, using the<br>
+-  --read-var-info=yes flag.  Memcheck, Helgrind and DRD are able to<br>
+-  make use of such information, if present, to provide source-level<br>
+-  descriptions of data addresses in the error messages they create.<br>
+-<br>
+-(3.4.0.RC1:  24 Dec 2008, vex r1878, valgrind r8882).<br>
+-(3.4.0:       3 Jan 2009, vex r1878, valgrind r8899).<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.authors.html"><< 1. AUTHORS</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.news.old.html">3. OLDER NEWS >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.news.old.html b/docs/html/dist.news.old.html
+deleted file mode 100644
+index 4d1d6fc..0000000
+--- a/docs/html/dist.news.old.html
++++ /dev/null
+@@ -1,2043 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>3. OLDER NEWS</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.news.html" title="2. NEWS">
+-<link rel="next" href="dist.readme.html" title="4. README">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.news.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="3. OLDER NEWS">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.news.old"></a>3. OLDER NEWS</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      Release 3.3.1 (4 June 2008)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.3.1 fixes a bunch of bugs in 3.3.0, adds support for glibc-2.8 based<br>
+-systems (openSUSE 11, Fedora Core 9), improves the existing glibc-2.7<br>
+-support, and adds support for the SSSE3 (Core 2) instruction set.<br>
+-<br>
+-3.3.1 will likely be the last release that supports some very old<br>
+-systems.  In particular, the next major release, 3.4.0, will drop<br>
+-support for the old LinuxThreads threading library, and for gcc<br>
+-versions prior to 3.0.<br>
+-<br>
+-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in<br>
+-bugzilla" -- that is, a bug that was reported to us but never got a<br>
+-bugzilla entry.  We encourage you to file bugs in bugzilla<br>
+-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the<br>
+-developers (or mailing lists) directly -- bugs that are not entered<br>
+-into bugzilla tend to get forgotten about or ignored.<br>
+-<br>
+-n-i-bz  Massif segfaults at exit<br>
+-n-i-bz  Memcheck asserts on Altivec code<br>
+-n-i-bz  fix sizeof bug in Helgrind<br>
+-n-i-bz  check fd on sys_llseek<br>
+-n-i-bz  update syscall lists to kernel 2.6.23.1<br>
+-n-i-bz  support sys_sync_file_range<br>
+-n-i-bz  handle sys_sysinfo, sys_getresuid, sys_getresgid on ppc64-linux<br>
+-n-i-bz  intercept memcpy in 64-bit ld.so's<br>
+-n-i-bz  Fix wrappers for sys_{futimesat,utimensat}<br>
+-n-i-bz  Minor false-error avoidance fixes for Memcheck<br>
+-n-i-bz  libmpiwrap.c: add a wrapper for MPI_Waitany<br>
+-n-i-bz  helgrind support for glibc-2.8<br>
+-n-i-bz  partial fix for mc_leakcheck.c:698 assert:<br>
+-        'lc_shadows[i]->data + lc_shadows[i] ...<br>
+-n-i-bz  Massif/Cachegrind output corruption when programs fork<br>
+-n-i-bz  register allocator fix: handle spill stores correctly<br>
+-n-i-bz  add support for PA6T PowerPC CPUs<br>
+-126389  vex x86->IR: 0xF 0xAE (FXRSTOR)<br>
+-158525  ==126389<br>
+-152818  vex x86->IR: 0xF3 0xAC (repz lodsb) <br>
+-153196  vex x86->IR: 0xF2 0xA6 (repnz cmpsb) <br>
+-155011  vex x86->IR: 0xCF (iret)<br>
+-155091  Warning [...] unhandled DW_OP_ opcode 0x23<br>
+-156960  ==155901<br>
+-155528  support Core2/SSSE3 insns on x86/amd64<br>
+-155929  ms_print fails on massif outputs containing long lines<br>
+-157665  valgrind fails on shmdt(0) after shmat to 0<br>
+-157748  support x86 PUSHFW/POPFW<br>
+-158212  helgrind: handle pthread_rwlock_try{rd,wr}lock.<br>
+-158425  sys_poll incorrectly emulated when RES==0<br>
+-158744  vex amd64->IR: 0xF0 0x41 0xF 0xC0 (xaddb)<br>
+-160907  Support for a couple of recent Linux syscalls<br>
+-161285  Patch -- support for eventfd() syscall<br>
+-161378  illegal opcode in debug libm (FUCOMPP)<br>
+-160136  ==161378<br>
+-161487  number of suppressions files is limited to 10<br>
+-162386  ms_print typo in milliseconds time unit for massif<br>
+-161036  exp-drd: client allocated memory was never freed<br>
+-162663  signalfd_wrapper fails on 64bit linux<br>
+-<br>
+-(3.3.1.RC1:  2 June 2008, vex r1854, valgrind r8169).<br>
+-(3.3.1:      4 June 2008, vex r1854, valgrind r8180).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.3.0 (7 December 2007)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.3.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.  This release supports X86/Linux,<br>
+-AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros<br>
+-(using gcc 4.3, glibc 2.6 and 2.7) has been added.<br>
+-<br>
+-The main excitement in 3.3.0 is new and improved tools.  Helgrind<br>
+-works again, Massif has been completely overhauled and much improved,<br>
+-Cachegrind now does branch-misprediction profiling, and a new category<br>
+-of experimental tools has been created, containing two new tools:<br>
+-Omega and DRD.  There are many other smaller improvements.  In detail:<br>
+-<br>
+-- Helgrind has been completely overhauled and works for the first time<br>
+-  since Valgrind 2.2.0.  Supported functionality is: detection of<br>
+-  misuses of the POSIX PThreads API, detection of potential deadlocks<br>
+-  resulting from cyclic lock dependencies, and detection of data<br>
+-  races.  Compared to the 2.2.0 Helgrind, the race detection algorithm<br>
+-  has some significant improvements aimed at reducing the false error<br>
+-  rate.  Handling of various kinds of corner cases has been improved.<br>
+-  Efforts have been made to make the error messages easier to<br>
+-  understand.  Extensive documentation is provided.<br>
+-<br>
+-- Massif has been completely overhauled.  Instead of measuring<br>
+-  space-time usage -- which wasn't always useful and many people found<br>
+-  confusing -- it now measures space usage at various points in the<br>
+-  execution, including the point of peak memory allocation.  Its<br>
+-  output format has also changed: instead of producing PostScript<br>
+-  graphs and HTML text, it produces a single text output (via the new<br>
+-  'ms_print' script) that contains both a graph and the old textual<br>
+-  information, but in a more compact and readable form.  Finally, the<br>
+-  new version should be more reliable than the old one, as it has been<br>
+-  tested more thoroughly.<br>
+-<br>
+-- Cachegrind has been extended to do branch-misprediction profiling.<br>
+-  Both conditional and indirect branches are profiled.  The default<br>
+-  behaviour of Cachegrind is unchanged.  To use the new functionality,<br>
+-  give the option --branch-sim=yes.<br>
+-<br>
+-- A new category of "experimental tools" has been created.  Such tools<br>
+-  may not work as well as the standard tools, but are included because<br>
+-  some people will find them useful, and because exposure to a wider<br>
+-  user group provides tool authors with more end-user feedback.  These<br>
+-  tools have a "exp-" prefix attached to their names to indicate their<br>
+-  experimental nature.  Currently there are two experimental tools:<br>
+-<br>
+-  * exp-Omega: an instantaneous leak detector.  See<br>
+-    exp-omega/docs/omega_introduction.txt.<br>
+-<br>
+-  * exp-DRD: a data race detector based on the happens-before<br>
+-    relation.  See exp-drd/docs/README.txt.<br>
+-<br>
+-- Scalability improvements for very large programs, particularly those<br>
+-  which have a million or more malloc'd blocks in use at once.  These<br>
+-  improvements mostly affect Memcheck.  Memcheck is also up to 10%<br>
+-  faster for all programs, with x86-linux seeing the largest<br>
+-  improvement.<br>
+-<br>
+-- Works well on the latest Linux distros.  Has been tested on Fedora<br>
+-  Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3.  glibc 2.6 and<br>
+-  2.7 are supported.  gcc-4.3 (in its current pre-release state) is<br>
+-  supported.  At the same time, 3.3.0 retains support for older<br>
+-  distros.<br>
+-<br>
+-- The documentation has been modestly reorganised with the aim of<br>
+-  making it easier to find information on common-usage scenarios.<br>
+-  Some advanced material has been moved into a new chapter in the main<br>
+-  manual, so as to unclutter the main flow, and other tidying up has<br>
+-  been done.<br>
+-<br>
+-- There is experimental support for AIX 5.3, both 32-bit and 64-bit<br>
+-  processes.  You need to be running a 64-bit kernel to use Valgrind<br>
+-  on a 64-bit executable.<br>
+-<br>
+-- There have been some changes to command line options, which may<br>
+-  affect you:<br>
+-<br>
+-  * --log-file-exactly and <br>
+-    --log-file-qualifier options have been removed.<br>
+-<br>
+-    To make up for this --log-file option has been made more powerful.<br>
+-    It now accepts a %p format specifier, which is replaced with the<br>
+-    process ID, and a %q{FOO} format specifier, which is replaced with<br>
+-    the contents of the environment variable FOO.<br>
+-<br>
+-  * --child-silent-after-fork=yes|no [no]<br>
+-<br>
+-    Causes Valgrind to not show any debugging or logging output for<br>
+-    the child process resulting from a fork() call.  This can make the<br>
+-    output less confusing (although more misleading) when dealing with<br>
+-    processes that create children.<br>
+-<br>
+-  * --cachegrind-out-file, --callgrind-out-file and --massif-out-file<br>
+-<br>
+-    These control the names of the output files produced by<br>
+-    Cachegrind, Callgrind and Massif.  They accept the same %p and %q<br>
+-    format specifiers that --log-file accepts.  --callgrind-out-file<br>
+-    replaces Callgrind's old --base option.<br>
+-<br>
+-  * Cachegrind's 'cg_annotate' script no longer uses the --<pid><br>
+-    option to specify the output file.  Instead, the first non-option<br>
+-    argument is taken to be the name of the output file, and any<br>
+-    subsequent non-option arguments are taken to be the names of<br>
+-    source files to be annotated.<br>
+-<br>
+-  * Cachegrind and Callgrind now use directory names where possible in<br>
+-    their output files.  This means that the -I option to<br>
+-    'cg_annotate' and 'callgrind_annotate' should not be needed in<br>
+-    most cases.  It also means they can correctly handle the case<br>
+-    where two source files in different directories have the same<br>
+-    name.<br>
+-<br>
+-- Memcheck offers a new suppression kind: "Jump".  This is for<br>
+-  suppressing jump-to-invalid-address errors.  Previously you had to<br>
+-  use an "Addr1" suppression, which didn't make much sense.<br>
+-<br>
+-- Memcheck has new flags --malloc-fill=<hexnum> and<br>
+-  --free-fill=<hexnum> which free malloc'd / free'd areas with the<br>
+-  specified byte.  This can help shake out obscure memory corruption<br>
+-  problems.  The definedness and addressability of these areas is<br>
+-  unchanged -- only the contents are affected.<br>
+-<br>
+-- The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and<br>
+-  VALGRIND_SET_VBITS have changed slightly.  They no longer issue<br>
+-  addressability errors -- if either array is partially unaddressable,<br>
+-  they just return 3 (as before).  Also, SET_VBITS doesn't report<br>
+-  definedness errors if any of the V bits are undefined.<br>
+-<br>
+-- The following Memcheck client requests have been removed:<br>
+-    VALGRIND_MAKE_NOACCESS<br>
+-    VALGRIND_MAKE_WRITABLE<br>
+-    VALGRIND_MAKE_READABLE<br>
+-    VALGRIND_CHECK_WRITABLE<br>
+-    VALGRIND_CHECK_READABLE<br>
+-    VALGRIND_CHECK_DEFINED<br>
+-  They were deprecated in 3.2.0, when equivalent but better-named client<br>
+-  requests were added.  See the 3.2.0 release notes for more details.<br>
+-<br>
+-- The behaviour of the tool Lackey has changed slightly.  First, the output<br>
+-  from --trace-mem has been made more compact, to reduce the size of the<br>
+-  traces.  Second, a new option --trace-superblocks has been added, which<br>
+-  shows the addresses of superblocks (code blocks) as they are executed.<br>
+-<br>
+-- The following bugs have been fixed.  Note that "n-i-bz" stands for<br>
+-  "not in bugzilla" -- that is, a bug that was reported to us but<br>
+-  never got a bugzilla entry.  We encourage you to file bugs in<br>
+-  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than<br>
+-  mailing the developers (or mailing lists) directly.<br>
+-<br>
+-  n-i-bz  x86_linux_REDIR_FOR_index() broken<br>
+-  n-i-bz  guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.<br>
+-  n-i-bz  Support x86 INT insn (INT (0xCD) 0x40 - 0x43)<br>
+-  n-i-bz  Add sys_utimensat system call for Linux x86 platform<br>
+-   79844  Helgrind complains about race condition which does not exist<br>
+-   82871  Massif output function names too short<br>
+-   89061  Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...'<br>
+-   92615  Write output from Massif at crash<br>
+-   95483  massif feature request: include peak allocation in report<br>
+-  112163  MASSIF crashed with signal 7 (SIGBUS) after running 2 days<br>
+-  119404  problems running setuid executables (partial fix)<br>
+-  121629  add instruction-counting mode for timing<br>
+-  127371  java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65<br>
+-  129937  ==150380<br>
+-  129576  Massif loses track of memory, incorrect graphs<br>
+-  132132  massif --format=html output does not do html entity escaping<br>
+-  132950  Heap alloc/usage summary<br>
+-  133962  unhandled instruction bytes: 0xF2 0x4C 0xF 0x10<br>
+-  134990  use -fno-stack-protector if possible<br>
+-  136382  ==134990<br>
+-  137396  I would really like helgrind to work again...<br>
+-  137714  x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq)<br>
+-  141631  Massif: percentages don't add up correctly<br>
+-  142706  massif numbers don't seem to add up<br>
+-  143062  massif crashes on app exit with signal 8 SIGFPE<br>
+-  144453  (get_XCon): Assertion 'xpt->max_children != 0' failed.<br>
+-  145559  valgrind aborts when malloc_stats is called<br>
+-  145609  valgrind aborts all runs with 'repeated section!'<br>
+-  145622  --db-attach broken again on x86-64<br>
+-  145837  ==149519<br>
+-  145887  PPC32: getitimer() system call is not supported<br>
+-  146252  ==150678<br>
+-  146456  (update_XCon): Assertion 'xpt->curr_space >= -space_delta'...<br>
+-  146701  ==134990<br>
+-  146781  Adding support for private futexes<br>
+-  147325  valgrind internal error on syscall (SYS_io_destroy, 0)<br>
+-  147498  amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))<br>
+-  147545  Memcheck: mc_main.c:817 (get_sec_vbits8): Assertion 'n' failed.<br>
+-  147628  SALC opcode 0xd6 unimplemented<br>
+-  147825  crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)<br>
+-  148174  Incorrect type of freed_list_volume causes assertion [...]<br>
+-  148447  x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f<br>
+-  149182  PPC Trap instructions not implemented in valgrind<br>
+-  149504  Assertion hit on alloc_xpt->curr_space >= -space_delta<br>
+-  149519  ppc32: V aborts with SIGSEGV on execution of a signal handler<br>
+-  149892  ==137714<br>
+-  150044  SEGV during stack deregister<br>
+-  150380  dwarf/gcc interoperation (dwarf3 read problems)<br>
+-  150408  ==148447<br>
+-  150678  guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed<br>
+-  151209  V unable to execute programs for users with UID > 2^16<br>
+-  151938  help on --db-command= misleading<br>
+-  152022  subw $0x28, %%sp causes assertion failure in memcheck<br>
+-  152357  inb and outb not recognized in 64-bit mode<br>
+-  152501  vex x86->IR: 0x27 0x66 0x89 0x45 (daa) <br>
+-  152818  vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb)<br>
+-<br>
+-Developer-visible changes:<br>
+-<br>
+-- The names of some functions and types within the Vex IR have<br>
+-  changed.  Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.<br>
+-  Any existing standalone tools will have to be updated to reflect<br>
+-  these changes.  The new names should be clearer.  The file<br>
+-  VEX/pub/libvex_ir.h is also much better commented.<br>
+-<br>
+-- A number of new debugging command line options have been added.<br>
+-  These are mostly of use for debugging the symbol table and line<br>
+-  number readers:<br>
+-<br>
+-  --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt><br>
+-  --trace-cfi=no|yes        show call-frame-info details? [no]<br>
+-  --debug-dump=syms         mimic /usr/bin/readelf --syms<br>
+-  --debug-dump=line         mimic /usr/bin/readelf --debug-dump=line<br>
+-  --debug-dump=frames       mimic /usr/bin/readelf --debug-dump=frames<br>
+-  --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]<br>
+-<br>
+-- Internally, the code base has been further factorised and<br>
+-  abstractified, particularly with respect to support for non-Linux<br>
+-  OSs.<br>
+-<br>
+-(3.3.0.RC1:  2 Dec 2007, vex r1803, valgrind r7268).<br>
+-(3.3.0.RC2:  5 Dec 2007, vex r1804, valgrind r7282).<br>
+-(3.3.0.RC3:  9 Dec 2007, vex r1804, valgrind r7288).<br>
+-(3.3.0:     10 Dec 2007, vex r1804, valgrind r7290).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.2.3 (29 Jan 2007)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-Unfortunately 3.2.2 introduced a regression which can cause an<br>
+-assertion failure ("vex: the `impossible' happened: eqIRConst") when<br>
+-running obscure pieces of SSE code.  3.2.3 fixes this and adds one<br>
+-more glibc-2.5 intercept.  In all other respects it is identical to<br>
+-3.2.2.  Please do not use (or package) 3.2.2; instead use 3.2.3.<br>
+-<br>
+-n-i-bz   vex: the `impossible' happened: eqIRConst<br>
+-n-i-bz   Add an intercept for glibc-2.5 __stpcpy_chk<br>
+-<br>
+-(3.2.3: 29 Jan 2007, vex r1732, valgrind r6560).<br>
+-<br>
+-<br>
+-Release 3.2.2 (22 Jan 2007)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.2.2 fixes a bunch of bugs in 3.2.1, adds support for glibc-2.5 based<br>
+-systems (openSUSE 10.2, Fedora Core 6), improves support for icc-9.X<br>
+-compiled code, and brings modest performance improvements in some<br>
+-areas, including amd64 floating point, powerpc support, and startup<br>
+-responsiveness on all targets.<br>
+-<br>
+-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in<br>
+-bugzilla" -- that is, a bug that was reported to us but never got a<br>
+-bugzilla entry.  We encourage you to file bugs in bugzilla<br>
+-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the<br>
+-developers (or mailing lists) directly.<br>
+-<br>
+-129390   ppc?->IR: some kind of VMX prefetch (dstt)<br>
+-129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)<br>
+-134319   ==129968<br>
+-133054   'make install' fails with syntax errors<br>
+-118903   ==133054<br>
+-132998   startup fails in when running on UML<br>
+-134207   pkg-config output contains @VG_PLATFORM@<br>
+-134727   valgrind exits with "Value too large for defined data type"<br>
+-n-i-bz   ppc32/64: support mcrfs<br>
+-n-i-bz   Cachegrind/Callgrind: Update cache parameter detection<br>
+-135012   x86->IR: 0xD7 0x8A 0xE0 0xD0 (xlat)<br>
+-125959   ==135012<br>
+-126147   x86->IR: 0xF2 0xA5 0xF 0x77 (repne movsw)<br>
+-136650   amd64->IR: 0xC2 0x8 0x0<br>
+-135421   x86->IR: unhandled Grp5(R) case 6<br>
+-n-i-bz   Improved documentation of the IR intermediate representation<br>
+-n-i-bz   jcxz (x86) (users list, 8 Nov)<br>
+-n-i-bz   ExeContext hashing fix<br>
+-n-i-bz   fix CFI reading failures ("Dwarf CFI 0:24 0:32 0:48 0:7")<br>
+-n-i-bz   fix Cachegrind/Callgrind simulation bug<br>
+-n-i-bz   libmpiwrap.c: fix handling of MPI_LONG_DOUBLE<br>
+-n-i-bz   make User errors suppressible<br>
+-136844   corrupted malloc line when using --gen-suppressions=yes<br>
+-138507   ==136844<br>
+-n-i-bz   Speed up the JIT's register allocator<br>
+-n-i-bz   Fix confusing leak-checker flag hints<br>
+-n-i-bz   Support recent autoswamp versions<br>
+-n-i-bz   ppc32/64 dispatcher speedups<br>
+-n-i-bz   ppc64 front end rld/rlw improvements<br>
+-n-i-bz   ppc64 back end imm64 improvements<br>
+-136300   support 64K pages on ppc64-linux<br>
+-139124   == 136300<br>
+-n-i-bz   fix ppc insn set tests for gcc >= 4.1<br>
+-137493   x86->IR: recent binutils no-ops<br>
+-137714   x86->IR: 0x66 0xF 0xF7 0xC6 (maskmovdqu)<br>
+-138424   "failed in UME with error 22" (produce a better error msg)<br>
+-138856   ==138424<br>
+-138627   Enhancement support for prctl ioctls<br>
+-138896   Add support for usb ioctls<br>
+-136059   ==138896<br>
+-139050   ppc32->IR: mfspr 268/269 instructions not handled<br>
+-n-i-bz   ppc32->IR: lvxl/stvxl<br>
+-n-i-bz   glibc-2.5 support<br>
+-n-i-bz   memcheck: provide replacement for mempcpy<br>
+-n-i-bz   memcheck: replace bcmp in ld.so<br>
+-n-i-bz   Use 'ifndef' in VEX's Makefile correctly<br>
+-n-i-bz   Suppressions for MVL 4.0.1 on ppc32-linux<br>
+-n-i-bz   libmpiwrap.c: Fixes for MPICH<br>
+-n-i-bz   More robust handling of hinted client mmaps<br>
+-139776   Invalid read in unaligned memcpy with Intel compiler v9<br>
+-n-i-bz   Generate valid XML even for very long fn names<br>
+-n-i-bz   Don't prompt about suppressions for unshown reachable leaks<br>
+-139910   amd64 rcl is not supported<br>
+-n-i-bz   DWARF CFI reader: handle DW_CFA_undefined<br>
+-n-i-bz   DWARF CFI reader: handle icc9 generated CFI info better<br>
+-n-i-bz   fix false uninit-value errs in icc9 generated FP code<br>
+-n-i-bz   reduce extraneous frames in libmpiwrap.c<br>
+-n-i-bz   support pselect6 on amd64-linux<br>
+-<br>
+-(3.2.2: 22 Jan 2007, vex r1729, valgrind r6545).<br>
+-<br>
+-<br>
+-Release 3.2.1 (16 Sept 2006)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.2.1 adds x86/amd64 support for all SSE3 instructions except monitor<br>
+-and mwait, further reduces memcheck's false error rate on all<br>
+-platforms, adds support for recent binutils (in OpenSUSE 10.2 and<br>
+-Fedora Rawhide) and fixes a bunch of bugs in 3.2.0.  Some of the fixed<br>
+-bugs were causing large programs to segfault with --tool=callgrind and<br>
+---tool=cachegrind, so an upgrade is recommended.<br>
+-<br>
+-In view of the fact that any 3.3.0 release is unlikely to happen until<br>
+-well into 1Q07, we intend to keep the 3.2.X line alive for a while<br>
+-yet, and so we tentatively plan a 3.2.2 release sometime in December<br>
+-06.<br>
+-<br>
+-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in<br>
+-bugzilla" -- that is, a bug that was reported to us but never got a<br>
+-bugzilla entry.<br>
+-<br>
+-n-i-bz   Expanding brk() into last available page asserts<br>
+-n-i-bz   ppc64-linux stack RZ fast-case snafu<br>
+-n-i-bz   'c' in --gen-supps=yes doesn't work<br>
+-n-i-bz   VG_N_SEGMENTS too low (users, 28 June)<br>
+-n-i-bz   VG_N_SEGNAMES too low (Stu Robinson)<br>
+-106852   x86->IR: fisttp (SSE3)<br>
+-117172   FUTEX_WAKE does not use uaddr2<br>
+-124039   Lacks support for VKI_[GP]IO_UNIMAP*<br>
+-127521   amd64->IR: 0xF0 0x48 0xF 0xC7 (cmpxchg8b)<br>
+-128917   amd64->IR: 0x66 0xF 0xF6 0xC4 (psadbw,SSE2)<br>
+-129246   JJ: ppc32/ppc64 syscalls, w/ patch<br>
+-129358   x86->IR: fisttpl (SSE3)<br>
+-129866   cachegrind/callgrind causes executable to die<br>
+-130020   Can't stat .so/.exe error while reading symbols<br>
+-130388   Valgrind aborts when process calls malloc_trim()<br>
+-130638   PATCH: ppc32 missing system calls<br>
+-130785   amd64->IR: unhandled instruction "pushfq"<br>
+-131481:  (HINT_NOP) vex x86->IR: 0xF 0x1F 0x0 0xF<br>
+-131298   ==131481<br>
+-132146   Programs with long sequences of bswap[l,q]s<br>
+-132918   vex amd64->IR: 0xD9 0xF8 (fprem)<br>
+-132813   Assertion at priv/guest-x86/toIR.c:652 fails<br>
+-133051   'cfsi->len > 0 && cfsi->len < 2000000' failed<br>
+-132722   valgrind header files are not standard C<br>
+-n-i-bz   Livelocks entire machine (users list, Timothy Terriberry)<br>
+-n-i-bz   Alex Bennee mmap problem (9 Aug)<br>
+-n-i-bz   BartV: Don't print more lines of a stack-trace than were obtained.<br>
+-n-i-bz   ppc32 SuSE 10.1 redir<br>
+-n-i-bz   amd64 padding suppressions<br>
+-n-i-bz   amd64 insn printing fix.<br>
+-n-i-bz   ppc cmp reg,reg fix<br>
+-n-i-bz   x86/amd64 iropt e/rflag reduction rules<br>
+-n-i-bz   SuSE 10.1 (ppc32) minor fixes<br>
+-133678   amd64->IR: 0x48 0xF 0xC5 0xC0 (pextrw?)<br>
+-133694   aspacem assertion: aspacem_minAddr <= holeStart<br>
+-n-i-bz   callgrind: fix warning about malformed creator line <br>
+-n-i-bz   callgrind: fix annotate script for data produced with <br>
+-         --dump-instr=yes<br>
+-n-i-bz   callgrind: fix failed assertion when toggling <br>
+-         instrumentation mode<br>
+-n-i-bz   callgrind: fix annotate script fix warnings with<br>
+-         --collect-jumps=yes<br>
+-n-i-bz   docs path hardwired (Dennis Lubert)<br>
+-<br>
+-The following bugs were not fixed, due primarily to lack of developer<br>
+-time, and also because bug reporters did not answer requests for<br>
+-feedback in time for the release:<br>
+-<br>
+-129390   ppc?->IR: some kind of VMX prefetch (dstt)<br>
+-129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)<br>
+-133054   'make install' fails with syntax errors<br>
+-n-i-bz   Signal race condition (users list, 13 June, Johannes Berg)<br>
+-n-i-bz   Unrecognised instruction at address 0x70198EC2 (users list,<br>
+-         19 July, Bennee)<br>
+-132998   startup fails in when running on UML<br>
+-<br>
+-The following bug was tentatively fixed on the mainline but the fix<br>
+-was considered too risky to push into 3.2.X:<br>
+-<br>
+-133154   crash when using client requests to register/deregister stack<br>
+-<br>
+-(3.2.1: 16 Sept 2006, vex r1658, valgrind r6070).<br>
+-<br>
+-<br>
+-Release 3.2.0 (7 June 2006)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.2.0 is a feature release with many significant improvements and the<br>
+-usual collection of bug fixes.  This release supports X86/Linux,<br>
+-AMD64/Linux, PPC32/Linux and PPC64/Linux.<br>
+-<br>
+-Performance, especially of Memcheck, is improved, Addrcheck has been<br>
+-removed, Callgrind has been added, PPC64/Linux support has been added,<br>
+-Lackey has been improved, and MPI support has been added.  In detail:<br>
+-<br>
+-- Memcheck has improved speed and reduced memory use.  Run times are<br>
+-  typically reduced by 15-30%, averaging about 24% for SPEC CPU2000.<br>
+-  The other tools have smaller but noticeable speed improvements.  We<br>
+-  are interested to hear what improvements users get.<br>
+-<br>
+-  Memcheck uses less memory due to the introduction of a compressed<br>
+-  representation for shadow memory.  The space overhead has been<br>
+-  reduced by a factor of up to four, depending on program behaviour.<br>
+-  This means you should be able to run programs that use more memory<br>
+-  than before without hitting problems.<br>
+-<br>
+-- Addrcheck has been removed.  It has not worked since version 2.4.0,<br>
+-  and the speed and memory improvements to Memcheck make it redundant.<br>
+-  If you liked using Addrcheck because it didn't give undefined value<br>
+-  errors, you can use the new Memcheck option --undef-value-errors=no<br>
+-  to get the same behaviour.<br>
+-<br>
+-- The number of undefined-value errors incorrectly reported by<br>
+-  Memcheck has been reduced (such false reports were already very<br>
+-  rare).  In particular, efforts have been made to ensure Memcheck<br>
+-  works really well with gcc 4.0/4.1-generated code on X86/Linux and<br>
+-  AMD64/Linux.<br>
+-<br>
+-- Josef Weidendorfer's popular Callgrind tool has been added.  Folding<br>
+-  it in was a logical step given its popularity and usefulness, and<br>
+-  makes it easier for us to ensure it works "out of the box" on all<br>
+-  supported targets.  The associated KDE KCachegrind GUI remains a<br>
+-  separate project.<br>
+-<br>
+-- A new release of the Valkyrie GUI for Memcheck, version 1.2.0,<br>
+-  accompanies this release.  Improvements over previous releases<br>
+-  include improved robustness, many refinements to the user interface,<br>
+-  and use of a standard autoconf/automake build system.  You can get<br>
+-  it from http://www.valgrind.org/downloads/guis.html.<br>
+-<br>
+-- Valgrind now works on PPC64/Linux.  As with the AMD64/Linux port,<br>
+-  this supports programs using to 32G of address space.  On 64-bit<br>
+-  capable PPC64/Linux setups, you get a dual architecture build so<br>
+-  that both 32-bit and 64-bit executables can be run.  Linux on POWER5<br>
+-  is supported, and POWER4 is also believed to work.  Both 32-bit and<br>
+-  64-bit DWARF2 is supported.  This port is known to work well with<br>
+-  both gcc-compiled and xlc/xlf-compiled code.<br>
+-<br>
+-- Floating point accuracy has been improved for PPC32/Linux.<br>
+-  Specifically, the floating point rounding mode is observed on all FP<br>
+-  arithmetic operations, and multiply-accumulate instructions are<br>
+-  preserved by the compilation pipeline.  This means you should get FP<br>
+-  results which are bit-for-bit identical to a native run.  These<br>
+-  improvements are also present in the PPC64/Linux port.<br>
+-<br>
+-- Lackey, the example tool, has been improved:<br>
+-<br>
+-  * It has a new option --detailed-counts (off by default) which<br>
+-    causes it to print out a count of loads, stores and ALU operations<br>
+-    done, and their sizes.<br>
+-<br>
+-  * It has a new option --trace-mem (off by default) which causes it<br>
+-    to print out a trace of all memory accesses performed by a<br>
+-    program.  It's a good starting point for building Valgrind tools<br>
+-    that need to track memory accesses.  Read the comments at the top<br>
+-    of the file lackey/lk_main.c for details.<br>
+-<br>
+-  * The original instrumentation (counting numbers of instructions,<br>
+-    jumps, etc) is now controlled by a new option --basic-counts.  It<br>
+-    is on by default.<br>
+-<br>
+-- MPI support: partial support for debugging distributed applications<br>
+-  using the MPI library specification has been added.  Valgrind is<br>
+-  aware of the memory state changes caused by a subset of the MPI<br>
+-  functions, and will carefully check data passed to the (P)MPI_<br>
+-  interface.<br>
+-<br>
+-- A new flag, --error-exitcode=, has been added.  This allows changing<br>
+-  the exit code in runs where Valgrind reported errors, which is<br>
+-  useful when using Valgrind as part of an automated test suite.<br>
+-<br>
+-- Various segfaults when reading old-style "stabs" debug information<br>
+-  have been fixed.<br>
+-<br>
+-- A simple performance evaluation suite has been added.  See<br>
+-  perf/README and README_DEVELOPERS for details.  There are<br>
+-  various bells and whistles.<br>
+-<br>
+-- New configuration flags:<br>
+-    --enable-only32bit<br>
+-    --enable-only64bit<br>
+-  By default, on 64 bit platforms (ppc64-linux, amd64-linux) the build<br>
+-  system will attempt to build a Valgrind which supports both 32-bit<br>
+-  and 64-bit executables.  This may not be what you want, and you can<br>
+-  override the default behaviour using these flags.<br>
+-<br>
+-Please note that Helgrind is still not working.  We have made an<br>
+-important step towards making it work again, however, with the<br>
+-addition of function wrapping (see below).<br>
+-<br>
+-Other user-visible changes:<br>
+-<br>
+-- Valgrind now has the ability to intercept and wrap arbitrary<br>
+-  functions.  This is a preliminary step towards making Helgrind work<br>
+-  again, and was required for MPI support.<br>
+-<br>
+-- There are some changes to Memcheck's client requests.  Some of them<br>
+-  have changed names:<br>
+-<br>
+-    MAKE_NOACCESS  --> MAKE_MEM_NOACCESS<br>
+-    MAKE_WRITABLE  --> MAKE_MEM_UNDEFINED<br>
+-    MAKE_READABLE  --> MAKE_MEM_DEFINED<br>
+-<br>
+-    CHECK_WRITABLE --> CHECK_MEM_IS_ADDRESSABLE<br>
+-    CHECK_READABLE --> CHECK_MEM_IS_DEFINED<br>
+-    CHECK_DEFINED  --> CHECK_VALUE_IS_DEFINED<br>
+-<br>
+-  The reason for the change is that the old names are subtly<br>
+-  misleading.  The old names will still work, but they are deprecated<br>
+-  and may be removed in a future release.<br>
+-<br>
+-  We also added a new client request:<br>
+-  <br>
+-    MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)<br>
+-    <br>
+-  which is like MAKE_MEM_DEFINED but only affects a byte if the byte is<br>
+-  already addressable.<br>
+-<br>
+-- The way client requests are encoded in the instruction stream has<br>
+-  changed.  Unfortunately, this means 3.2.0 will not honour client<br>
+-  requests compiled into binaries using headers from earlier versions<br>
+-  of Valgrind.  We will try to keep the client request encodings more <br>
+-  stable in future.<br>
+-<br>
+-BUGS FIXED:<br>
+-<br>
+-108258   NPTL pthread cleanup handlers not called <br>
+-117290   valgrind is sigKILL'd on startup<br>
+-117295   == 117290<br>
+-118703   m_signals.c:1427 Assertion 'tst->status == VgTs_WaitSys'<br>
+-118466   add %reg, %reg generates incorrect validity for bit 0<br>
+-123210   New: strlen from ld-linux on amd64<br>
+-123244   DWARF2 CFI reader: unhandled CFI instruction 0:18<br>
+-123248   syscalls in glibc-2.4: openat, fstatat, symlinkat<br>
+-123258   socketcall.recvmsg(msg.msg_iov[i] points to uninit<br>
+-123535   mremap(new_addr) requires MREMAP_FIXED in 4th arg<br>
+-123836   small typo in the doc<br>
+-124029   ppc compile failed: `vor' gcc 3.3.5<br>
+-124222   Segfault: @@don't know what type ':' is<br>
+-124475   ppc32: crash (syscall?) timer_settime()<br>
+-124499   amd64->IR: 0xF 0xE 0x48 0x85 (femms)<br>
+-124528   FATAL: aspacem assertion failed: segment_is_sane<br>
+-124697   vex x86->IR: 0xF 0x70 0xC9 0x0 (pshufw)<br>
+-124892   vex x86->IR: 0xF3 0xAE (REPx SCASB)<br>
+-126216   == 124892<br>
+-124808   ppc32: sys_sched_getaffinity() not handled<br>
+-n-i-bz   Very long stabs strings crash m_debuginfo<br>
+-n-i-bz   amd64->IR: 0x66 0xF 0xF5 (pmaddwd)<br>
+-125492   ppc32: support a bunch more syscalls<br>
+-121617   ppc32/64: coredumping gives assertion failure<br>
+-121814   Coregrind return error as exitcode patch<br>
+-126517   == 121814<br>
+-125607   amd64->IR: 0x66 0xF 0xA3 0x2 (btw etc)<br>
+-125651   amd64->IR: 0xF8 0x49 0xFF 0xE3 (clc?)<br>
+-126253   x86 movx is wrong<br>
+-126451   3.2 SVN doesn't work on ppc32 CPU's without FPU<br>
+-126217   increase # threads<br>
+-126243   vex x86->IR: popw mem<br>
+-126583   amd64->IR: 0x48 0xF 0xA4 0xC2 (shld $1,%rax,%rdx)<br>
+-126668   amd64->IR: 0x1C 0xFF (sbb $0xff,%al)<br>
+-126696   support for CDROMREADRAW ioctl and CDROMREADTOCENTRY fix<br>
+-126722   assertion: segment_is_sane at m_aspacemgr/aspacemgr.c:1624<br>
+-126938   bad checking for syscalls linkat, renameat, symlinkat<br>
+-<br>
+-(3.2.0RC1: 27 May  2006, vex r1626, valgrind r5947).<br>
+-(3.2.0:     7 June 2006, vex r1628, valgrind r5957).<br>
+-<br>
+-<br>
+-Release 3.1.1 (15 March 2006)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.1.1 fixes a bunch of bugs reported in 3.1.0.  There is no new<br>
+-functionality.  The fixed bugs are:<br>
+-<br>
+-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have<br>
+- a bugzilla entry).<br>
+-<br>
+-n-i-bz   ppc32: fsub 3,3,3 in dispatcher doesn't clear NaNs<br>
+-n-i-bz   ppc32: __NR_{set,get}priority<br>
+-117332   x86: missing line info with icc 8.1<br>
+-117366   amd64: 0xDD 0x7C fnstsw<br>
+-118274   == 117366<br>
+-117367   amd64: 0xD9 0xF4 fxtract<br>
+-117369   amd64: __NR_getpriority (140)<br>
+-117419   ppc32: lfsu f5, -4(r11)<br>
+-117419   ppc32: fsqrt<br>
+-117936   more stabs problems (segfaults while reading debug info)<br>
+-119914   == 117936<br>
+-120345   == 117936<br>
+-118239   amd64: 0xF 0xAE 0x3F (clflush)<br>
+-118939   vm86old system call<br>
+-n-i-bz   memcheck/tests/mempool reads freed memory<br>
+-n-i-bz   AshleyP's custom-allocator assertion<br>
+-n-i-bz   Dirk strict-aliasing stuff<br>
+-n-i-bz   More space for debugger cmd line (Dan Thaler)<br>
+-n-i-bz   Clarified leak checker output message<br>
+-n-i-bz   AshleyP's --gen-suppressions output fix<br>
+-n-i-bz   cg_annotate's --sort option broken<br>
+-n-i-bz   OSet 64-bit fastcmp bug<br>
+-n-i-bz   VG_(getgroups) fix (Shinichi Noda)<br>
+-n-i-bz   ppc32: allocate from callee-saved FP/VMX regs<br>
+-n-i-bz   misaligned path word-size bug in mc_main.c<br>
+-119297   Incorrect error message for sse code<br>
+-120410   x86: prefetchw (0xF 0xD 0x48 0x4)<br>
+-120728   TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls<br>
+-120658   Build fixes for gcc 2.96<br>
+-120734   x86: Support for changing EIP in signal handler<br>
+-n-i-bz   memcheck/tests/zeropage de-looping fix<br>
+-n-i-bz   x86: fxtract doesn't work reliably<br>
+-121662   x86: lock xadd (0xF0 0xF 0xC0 0x2)<br>
+-121893   calloc does not always return zeroed memory<br>
+-121901   no support for syscall tkill<br>
+-n-i-bz   Suppression update for Debian unstable<br>
+-122067   amd64: fcmovnu (0xDB 0xD9)<br>
+-n-i-bz   ppc32: broken signal handling in cpu feature detection<br>
+-n-i-bz   ppc32: rounding mode problems (improved, partial fix only)<br>
+-119482   ppc32: mtfsb1<br>
+-n-i-bz   ppc32: mtocrf/mfocrf<br>
+-<br>
+-(3.1.1:  15 March 2006, vex r1597, valgrind r5771).<br>
+-<br>
+-<br>
+-Release 3.1.0 (25 November 2005)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.1.0 is a feature release with a number of significant improvements:<br>
+-AMD64 support is much improved, PPC32 support is good enough to be<br>
+-usable, and the handling of memory management and address space is<br>
+-much more robust.  In detail:<br>
+-<br>
+-- AMD64 support is much improved.  The 64-bit vs. 32-bit issues in<br>
+-  3.0.X have been resolved, and it should "just work" now in all<br>
+-  cases.  On AMD64 machines both 64-bit and 32-bit versions of<br>
+-  Valgrind are built.  The right version will be invoked<br>
+-  automatically, even when using --trace-children and mixing execution<br>
+-  between 64-bit and 32-bit executables.  Also, many more instructions<br>
+-  are supported.<br>
+-<br>
+-- PPC32 support is now good enough to be usable.  It should work with<br>
+-  all tools, but please let us know if you have problems.  Three<br>
+-  classes of CPUs are supported: integer only (no FP, no Altivec),<br>
+-  which covers embedded PPC uses, integer and FP but no Altivec<br>
+-  (G3-ish), and CPUs capable of Altivec too (G4, G5).<br>
+-<br>
+-- Valgrind's address space management has been overhauled.  As a<br>
+-  result, Valgrind should be much more robust with programs that use<br>
+-  large amounts of memory.  There should be many fewer "memory<br>
+-  exhausted" messages, and debug symbols should be read correctly on<br>
+-  large (eg. 300MB+) executables.  On 32-bit machines the full address<br>
+-  space available to user programs (usually 3GB or 4GB) can be fully<br>
+-  utilised.  On 64-bit machines up to 32GB of space is usable; when<br>
+-  using Memcheck that means your program can use up to about 14GB.<br>
+-<br>
+-  A side effect of this change is that Valgrind is no longer protected<br>
+-  against wild writes by the client.  This feature was nice but relied<br>
+-  on the x86 segment registers and so wasn't portable.<br>
+-<br>
+-- Most users should not notice, but as part of the address space<br>
+-  manager change, the way Valgrind is built has been changed.  Each<br>
+-  tool is now built as a statically linked stand-alone executable,<br>
+-  rather than as a shared object that is dynamically linked with the<br>
+-  core.  The "valgrind" program invokes the appropriate tool depending<br>
+-  on the --tool option.  This slightly increases the amount of disk<br>
+-  space used by Valgrind, but it greatly simplified many things and<br>
+-  removed Valgrind's dependence on glibc.<br>
+-<br>
+-Please note that Addrcheck and Helgrind are still not working.  Work<br>
+-is underway to reinstate them (or equivalents).  We apologise for the<br>
+-inconvenience.<br>
+-<br>
+-Other user-visible changes:<br>
+-<br>
+-- The --weird-hacks option has been renamed --sim-hints.<br>
+-<br>
+-- The --time-stamp option no longer gives an absolute date and time.<br>
+-  It now prints the time elapsed since the program began.<br>
+-<br>
+-- It should build with gcc-2.96.<br>
+-<br>
+-- Valgrind can now run itself (see README_DEVELOPERS for how).<br>
+-  This is not much use to you, but it means the developers can now<br>
+-  profile Valgrind using Cachegrind.  As a result a couple of<br>
+-  performance bad cases have been fixed.<br>
+-<br>
+-- The XML output format has changed slightly.  See<br>
+-  docs/internals/xml-output.txt.<br>
+-<br>
+-- Core dumping has been reinstated (it was disabled in 3.0.0 and 3.0.1).<br>
+-  If your program crashes while running under Valgrind, a core file with<br>
+-  the name "vgcore.<pid>" will be created (if your settings allow core<br>
+-  file creation).  Note that the floating point information is not all<br>
+-  there.  If Valgrind itself crashes, the OS will create a normal core<br>
+-  file.<br>
+-<br>
+-The following are some user-visible changes that occurred in earlier<br>
+-versions that may not have been announced, or were announced but not<br>
+-widely noticed.  So we're mentioning them now.<br>
+-<br>
+-- The --tool flag is optional once again;  if you omit it, Memcheck<br>
+-  is run by default.<br>
+-<br>
+-- The --num-callers flag now has a default value of 12.  It was<br>
+-  previously 4.<br>
+-<br>
+-- The --xml=yes flag causes Valgrind's output to be produced in XML<br>
+-  format.  This is designed to make it easy for other programs to<br>
+-  consume Valgrind's output.  The format is described in the file<br>
+-  docs/internals/xml-format.txt.<br>
+-<br>
+-- The --gen-suppressions flag supports an "all" value that causes every<br>
+-  suppression to be printed without asking.<br>
+-<br>
+-- The --log-file option no longer puts "pid" in the filename, eg. the<br>
+-  old name "foo.pid12345" is now "foo.12345".<br>
+-<br>
+-- There are several graphical front-ends for Valgrind, such as Valkyrie,<br>
+-  Alleyoop and Valgui.  See http://www.valgrind.org/downloads/guis.html<br>
+-  for a list.<br>
+-<br>
+-BUGS FIXED:<br>
+-<br>
+-109861  amd64 hangs at startup<br>
+-110301  ditto<br>
+-111554  valgrind crashes with Cannot allocate memory<br>
+-111809  Memcheck tool doesn't start java<br>
+-111901  cross-platform run of cachegrind fails on opteron<br>
+-113468  (vgPlain_mprotect_range): Assertion 'r != -1' failed.<br>
+- 92071  Reading debugging info uses too much memory<br>
+-109744  memcheck loses track of mmap from direct ld-linux.so.2<br>
+-110183  tail of page with _end<br>
+- 82301  FV memory layout too rigid<br>
+- 98278  Infinite recursion possible when allocating memory<br>
+-108994  Valgrind runs out of memory due to 133x overhead<br>
+-115643  valgrind cannot allocate memory<br>
+-105974  vg_hashtable.c static hash table<br>
+-109323  ppc32: dispatch.S uses Altivec insn, which doesn't work on POWER. <br>
+-109345  ptrace_setregs not yet implemented for ppc<br>
+-110831  Would like to be able to run against both 32 and 64 bit <br>
+-        binaries on AMD64<br>
+-110829  == 110831<br>
+-111781  compile of valgrind-3.0.0 fails on my linux (gcc 2.X prob)<br>
+-112670  Cachegrind: cg_main.c:486 (handleOneStatement ...<br>
+-112941  vex x86: 0xD9 0xF4 (fxtract)<br>
+-110201  == 112941<br>
+-113015  vex amd64->IR: 0xE3 0x14 0x48 0x83 (jrcxz)<br>
+-113126  Crash with binaries built with -gstabs+/-ggdb<br>
+-104065  == 113126<br>
+-115741  == 113126<br>
+-113403  Partial SSE3 support on x86<br>
+-113541  vex: Grp5(x86) (alt encoding inc/dec) case 1<br>
+-113642  valgrind crashes when trying to read debug information<br>
+-113810  vex x86->IR: 66 0F F6 (66 + PSADBW == SSE PSADBW)<br>
+-113796  read() and write() do not work if buffer is in shared memory<br>
+-113851  vex x86->IR: (pmaddwd): 0x66 0xF 0xF5 0xC7<br>
+-114366  vex amd64 cannnot handle __asm__( "fninit" )<br>
+-114412  vex amd64->IR: 0xF 0xAD 0xC2 0xD3 (128-bit shift, shrdq?)<br>
+-114455  vex amd64->IR: 0xF 0xAC 0xD0 0x1 (also shrdq)<br>
+-115590: amd64->IR: 0x67 0xE3 0x9 0xEB (address size override)<br>
+-115953  valgrind svn r5042 does not build with parallel make (-j3)<br>
+-116057  maximum instruction size - VG_MAX_INSTR_SZB too small?<br>
+-116483  shmat failes with invalid argument<br>
+-102202  valgrind crashes when realloc'ing until out of memory<br>
+-109487  == 102202<br>
+-110536  == 102202<br>
+-112687  == 102202<br>
+-111724  vex amd64->IR: 0x41 0xF 0xAB (more BT{,S,R,C} fun n games)<br>
+-111748  vex amd64->IR: 0xDD 0xE2 (fucom)<br>
+-111785  make fails if CC contains spaces<br>
+-111829  vex x86->IR: sbb AL, Ib<br>
+-111851  vex x86->IR: 0x9F 0x89 (lahf/sahf)<br>
+-112031  iopl on AMD64 and README_MISSING_SYSCALL_OR_IOCTL update<br>
+-112152  code generation for Xin_MFence on x86 with SSE0 subarch<br>
+-112167  == 112152<br>
+-112789  == 112152<br>
+-112199  naked ar tool is used in vex makefile<br>
+-112501  vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)<br>
+-113583  == 112501<br>
+-112538  memalign crash<br>
+-113190  Broken links in docs/html/<br>
+-113230  Valgrind sys_pipe on x86-64 wrongly thinks file descriptors<br>
+-        should be 64bit<br>
+-113996  vex amd64->IR: fucomp (0xDD 0xE9)<br>
+-114196  vex x86->IR: out %eax,(%dx) (0xEF 0xC9 0xC3 0x90)<br>
+-114289  Memcheck fails to intercept malloc when used in an uclibc environment<br>
+-114756  mbind syscall support<br>
+-114757  Valgrind dies with assertion: Assertion 'noLargerThan > 0' failed<br>
+-114563  stack tracking module not informed when valgrind switches threads<br>
+-114564  clone() and stacks<br>
+-114565  == 114564<br>
+-115496  glibc crashes trying to use sysinfo page<br>
+-116200  enable fsetxattr, fgetxattr, and fremovexattr for amd64<br>
+-<br>
+-(3.1.0RC1: 20 November 2005, vex r1466, valgrind r5224).<br>
+-(3.1.0:    26 November 2005, vex r1471, valgrind r5235).<br>
+-<br>
+-<br>
+-Release 3.0.1 (29 August 2005)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.0.1 fixes a bunch of bugs reported in 3.0.0.  There is no new<br>
+-functionality.  Some of the fixed bugs are critical, so if you<br>
+-use/distribute 3.0.0, an upgrade to 3.0.1 is recommended.  The fixed<br>
+-bugs are:<br>
+-<br>
+-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have<br>
+- a bugzilla entry).<br>
+-<br>
+-109313  (== 110505) x86 cmpxchg8b<br>
+-n-i-bz  x86: track but ignore changes to %eflags.AC (alignment check)<br>
+-110102  dis_op2_E_G(amd64)<br>
+-110202  x86 sys_waitpid(#286)<br>
+-110203  clock_getres(,0)<br>
+-110208  execve fail wrong retval<br>
+-110274  SSE1 now mandatory for x86<br>
+-110388  amd64 0xDD 0xD1<br>
+-110464  amd64 0xDC 0x1D FCOMP<br>
+-110478  amd64 0xF 0xD PREFETCH<br>
+-n-i-bz  XML <unique> printing wrong<br>
+-n-i-bz  Dirk r4359 (amd64 syscalls from trunk)<br>
+-110591  amd64 and x86: rdtsc not implemented properly<br>
+-n-i-bz  Nick r4384 (stub implementations of Addrcheck and Helgrind)<br>
+-110652  AMD64 valgrind crashes on cwtd instruction<br>
+-110653  AMD64 valgrind crashes on sarb $0x4,foo(%rip) instruction<br>
+-110656  PATH=/usr/bin::/bin valgrind foobar stats ./fooba<br>
+-110657  Small test fixes<br>
+-110671  vex x86->IR: unhandled instruction bytes: 0xF3 0xC3 (rep ret)<br>
+-n-i-bz  Nick (Cachegrind should not assert when it encounters a client<br>
+-        request.)<br>
+-110685  amd64->IR: unhandled instruction bytes: 0xE1 0x56 (loope Jb)<br>
+-110830  configuring with --host fails to build 32 bit on 64 bit target<br>
+-110875  Assertion when execve fails<br>
+-n-i-bz  Updates to Memcheck manual<br>
+-n-i-bz  Fixed broken malloc_usable_size()<br>
+-110898  opteron instructions missing: btq btsq btrq bsfq<br>
+-110954  x86->IR: unhandled instruction bytes: 0xE2 0xF6 (loop Jb)<br>
+-n-i-bz  Make suppressions work for "???" lines in stacktraces.<br>
+-111006  bogus warnings from linuxthreads<br>
+-111092  x86: dis_Grp2(Reg): unhandled case(x86) <br>
+-111231  sctp_getladdrs() and sctp_getpaddrs() returns uninitialized<br>
+-        memory<br>
+-111102  (comment #4)   Fixed 64-bit unclean "silly arg" message<br>
+-n-i-bz  vex x86->IR: unhandled instruction bytes: 0x14 0x0<br>
+-n-i-bz  minor umount/fcntl wrapper fixes<br>
+-111090  Internal Error running Massif<br>
+-101204  noisy warning<br>
+-111513  Illegal opcode for SSE instruction (x86 movups)<br>
+-111555  VEX/Makefile: CC is set to gcc<br>
+-n-i-bz  Fix XML bugs in FAQ<br>
+-<br>
+-(3.0.1: 29 August 05,<br>
+-        vex/branches/VEX_3_0_BRANCH r1367,<br>
+-        valgrind/branches/VALGRIND_3_0_BRANCH r4574).<br>
+-<br>
+-<br>
+-<br>
+-Release 3.0.0 (3 August 2005)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-3.0.0 is a major overhaul of Valgrind.  The most significant user<br>
+-visible change is that Valgrind now supports architectures other than<br>
+-x86.  The new architectures it supports are AMD64 and PPC32, and the<br>
+-infrastructure is present for other architectures to be added later.<br>
+-<br>
+-AMD64 support works well, but has some shortcomings:<br>
+-<br>
+-- It generally won't be as solid as the x86 version.  For example,<br>
+-  support for more obscure instructions and system calls may be missing.<br>
+-  We will fix these as they arise.<br>
+-<br>
+-- Address space may be limited; see the point about<br>
+-  position-independent executables below.<br>
+-<br>
+-- If Valgrind is built on an AMD64 machine, it will only run 64-bit<br>
+-  executables.  If you want to run 32-bit x86 executables under Valgrind<br>
+-  on an AMD64, you will need to build Valgrind on an x86 machine and<br>
+-  copy it to the AMD64 machine.  And it probably won't work if you do<br>
+-  something tricky like exec'ing a 32-bit program from a 64-bit program<br>
+-  while using --trace-children=yes.  We hope to improve this situation<br>
+-  in the future.<br>
+-<br>
+-The PPC32 support is very basic.  It may not work reliably even for<br>
+-small programs, but it's a start.  Many thanks to Paul Mackerras for<br>
+-his great work that enabled this support.  We are working to make<br>
+-PPC32 usable as soon as possible.<br>
+-<br>
+-Other user-visible changes:<br>
+-<br>
+-- Valgrind is no longer built by default as a position-independent<br>
+-  executable (PIE), as this caused too many problems.<br>
+-<br>
+-  Without PIE enabled, AMD64 programs will only be able to access 2GB of<br>
+-  address space.  We will fix this eventually, but not for the moment.<br>
+-  <br>
+-  Use --enable-pie at configure-time to turn this on.<br>
+-<br>
+-- Support for programs that use stack-switching has been improved.  Use<br>
+-  the --max-stackframe flag for simple cases, and the<br>
+-  VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and<br>
+-  VALGRIND_STACK_CHANGE client requests for trickier cases.<br>
+-<br>
+-- Support for programs that use self-modifying code has been improved,<br>
+-  in particular programs that put temporary code fragments on the stack.<br>
+-  This helps for C programs compiled with GCC that use nested functions,<br>
+-  and also Ada programs.  This is controlled with the --smc-check<br>
+-  flag, although the default setting should work in most cases.<br>
+-<br>
+-- Output can now be printed in XML format.  This should make it easier<br>
+-  for tools such as GUI front-ends and automated error-processing<br>
+-  schemes to use Valgrind output as input.  The --xml flag controls this.<br>
+-  As part of this change, ELF directory information is read from executables,<br>
+-  so absolute source file paths are available if needed.<br>
+-<br>
+-- Programs that allocate many heap blocks may run faster, due to<br>
+-  improvements in certain data structures.<br>
+-<br>
+-- Addrcheck is currently not working.  We hope to get it working again<br>
+-  soon.  Helgrind is still not working, as was the case for the 2.4.0<br>
+-  release.<br>
+-<br>
+-- The JITter has been completely rewritten, and is now in a separate<br>
+-  library, called Vex.  This enabled a lot of the user-visible changes,<br>
+-  such as new architecture support.  The new JIT unfortunately translates<br>
+-  more slowly than the old one, so programs may take longer to start.<br>
+-  We believe the code quality is produces is about the same, so once<br>
+-  started, programs should run at about the same speed.  Feedback about<br>
+-  this would be useful.<br>
+-<br>
+-  On the plus side, Vex and hence Memcheck tracks value flow properly<br>
+-  through floating point and vector registers, something the 2.X line<br>
+-  could not do.  That means that Memcheck is much more likely to be<br>
+-  usably accurate on vectorised code.<br>
+-<br>
+-- There is a subtle change to the way exiting of threaded programs<br>
+-  is handled.  In 3.0, Valgrind's final diagnostic output (leak check,<br>
+-  etc) is not printed until the last thread exits.  If the last thread<br>
+-  to exit was not the original thread which started the program, any<br>
+-  other process wait()-ing on this one to exit may conclude it has<br>
+-  finished before the diagnostic output is printed.  This may not be<br>
+-  what you expect.  2.X had a different scheme which avoided this<br>
+-  problem, but caused deadlocks under obscure circumstances, so we<br>
+-  are trying something different for 3.0.<br>
+-<br>
+-- Small changes in control log file naming which make it easier to<br>
+-  use valgrind for debugging MPI-based programs.  The relevant<br>
+-  new flags are --log-file-exactly= and --log-file-qualifier=.<br>
+-<br>
+-- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding<br>
+-  support was added.  In principle this means Valgrind can produce<br>
+-  meaningful backtraces on x86 code compiled with -fomit-frame-pointer<br>
+-  providing you also compile your code with -fasynchronous-unwind-tables.<br>
+-<br>
+-- The documentation build system has been completely redone.<br>
+-  The documentation masters are now in XML format, and from that<br>
+-  HTML, PostScript and PDF documentation is generated.  As a result<br>
+-  the manual is now available in book form.  Note that the<br>
+-  documentation in the source tarballs is pre-built, so you don't need<br>
+-  any XML processing tools to build Valgrind from a tarball.<br>
+-<br>
+-Changes that are not user-visible:<br>
+-<br>
+-- The code has been massively overhauled in order to modularise it.<br>
+-  As a result we hope it is easier to navigate and understand.<br>
+-<br>
+-- Lots of code has been rewritten.<br>
+-<br>
+-BUGS FIXED:<br>
+-<br>
+-110046  sz == 4 assertion failed <br>
+-109810  vex amd64->IR: unhandled instruction bytes: 0xA3 0x4C 0x70 0xD7<br>
+-109802  Add a plausible_stack_size command-line parameter ?<br>
+-109783  unhandled ioctl TIOCMGET (running hw detection tool discover) <br>
+-109780  unhandled ioctl BLKSSZGET (running fdisk -l /dev/hda)<br>
+-109718  vex x86->IR: unhandled instruction: ffreep <br>
+-109429  AMD64 unhandled syscall: 127 (sigpending)<br>
+-109401  false positive uninit in strchr from ld-linux.so.2<br>
+-109385  "stabs" parse failure <br>
+-109378  amd64: unhandled instruction REP NOP<br>
+-109376  amd64: unhandled instruction LOOP Jb <br>
+-109363  AMD64 unhandled instruction bytes <br>
+-109362  AMD64 unhandled syscall: 24 (sched_yield)<br>
+-109358  fork() won't work with valgrind-3.0 SVN<br>
+-109332  amd64 unhandled instruction: ADC Ev, Gv<br>
+-109314  Bogus memcheck report on amd64<br>
+-108883  Crash; vg_memory.c:905 (vgPlain_init_shadow_range):<br>
+-        Assertion `vgPlain_defined_init_shadow_page()' failed.<br>
+-108349  mincore syscall parameter checked incorrectly <br>
+-108059  build infrastructure: small update<br>
+-107524  epoll_ctl event parameter checked on EPOLL_CTL_DEL<br>
+-107123  Vex dies with unhandled instructions: 0xD9 0x31 0xF 0xAE<br>
+-106841  auxmap & openGL problems<br>
+-106713  SDL_Init causes valgrind to exit<br>
+-106352  setcontext and makecontext not handled correctly <br>
+-106293  addresses beyond initial client stack allocation <br>
+-        not checked in VALGRIND_DO_LEAK_CHECK<br>
+-106283  PIE client programs are loaded at address 0<br>
+-105831  Assertion `vgPlain_defined_init_shadow_page()' failed.<br>
+-105039  long run-times probably due to memory manager <br>
+-104797  valgrind needs to be aware of BLKGETSIZE64<br>
+-103594  unhandled instruction: FICOM<br>
+-103320  Valgrind 2.4.0 fails to compile with gcc 3.4.3 and -O0<br>
+-103168  potentially memory leak in coregrind/ume.c <br>
+-102039  bad permissions for mapped region at address 0xB7C73680<br>
+-101881  weird assertion problem<br>
+-101543  Support fadvise64 syscalls<br>
+-75247   x86_64/amd64 support (the biggest "bug" we have ever fixed)<br>
+-<br>
+-(3.0RC1: 27 July   05, vex r1303, valgrind r4283).<br>
+-(3.0.0:   3 August 05, vex r1313, valgrind r4316).<br>
+-<br>
+-<br>
+-<br>
+-Stable release 2.4.1 (1 August 2005)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-(The notes for this release have been lost.  Sorry!  It would have<br>
+-contained various bug fixes but no new features.)<br>
+-<br>
+-<br>
+-<br>
+-Stable release 2.4.0 (March 2005) -- CHANGES RELATIVE TO 2.2.0<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-2.4.0 brings many significant changes and bug fixes.  The most<br>
+-significant user-visible change is that we no longer supply our own<br>
+-pthread implementation.  Instead, Valgrind is finally capable of<br>
+-running the native thread library, either LinuxThreads or NPTL.<br>
+-<br>
+-This means our libpthread has gone, along with the bugs associated<br>
+-with it.  Valgrind now supports the kernel's threading syscalls, and<br>
+-lets you use your standard system libpthread.  As a result:<br>
+-<br>
+-* There are many fewer system dependencies and strange library-related<br>
+-  bugs.  There is a small performance improvement, and a large<br>
+-  stability improvement.<br>
+-<br>
+-* On the downside, Valgrind can no longer report misuses of the POSIX<br>
+-  PThreads API.  It also means that Helgrind currently does not work.<br>
+-  We hope to fix these problems in a future release.<br>
+-<br>
+-Note that running the native thread libraries does not mean Valgrind<br>
+-is able to provide genuine concurrent execution on SMPs.  We still<br>
+-impose the restriction that only one thread is running at any given<br>
+-time.<br>
+-<br>
+-There are many other significant changes too:<br>
+-<br>
+-* Memcheck is (once again) the default tool.<br>
+-<br>
+-* The default stack backtrace is now 12 call frames, rather than 4.<br>
+-<br>
+-* Suppressions can have up to 25 call frame matches, rather than 4.<br>
+-<br>
+-* Memcheck and Addrcheck use less memory.  Under some circumstances,<br>
+-  they no longer allocate shadow memory if there are large regions of<br>
+-  memory with the same A/V states - such as an mmaped file.<br>
+-<br>
+-* The memory-leak detector in Memcheck and Addrcheck has been<br>
+-  improved.  It now reports more types of memory leak, including<br>
+-  leaked cycles.  When reporting leaked memory, it can distinguish<br>
+-  between directly leaked memory (memory with no references), and<br>
+-  indirectly leaked memory (memory only referred to by other leaked<br>
+-  memory).<br>
+-<br>
+-* Memcheck's confusion over the effect of mprotect() has been fixed:<br>
+-  previously mprotect could erroneously mark undefined data as<br>
+-  defined.<br>
+-<br>
+-* Signal handling is much improved and should be very close to what<br>
+-  you get when running natively.  <br>
+-<br>
+-  One result of this is that Valgrind observes changes to sigcontexts<br>
+-  passed to signal handlers.  Such modifications will take effect when<br>
+-  the signal returns.  You will need to run with --single-step=yes to<br>
+-  make this useful.<br>
+-<br>
+-* Valgrind is built in Position Independent Executable (PIE) format if<br>
+-  your toolchain supports it.  This allows it to take advantage of all<br>
+-  the available address space on systems with 4Gbyte user address<br>
+-  spaces.<br>
+-<br>
+-* Valgrind can now run itself (requires PIE support).<br>
+-<br>
+-* Syscall arguments are now checked for validity.  Previously all<br>
+-  memory used by syscalls was checked, but now the actual values<br>
+-  passed are also checked.<br>
+-<br>
+-* Syscall wrappers are more robust against bad addresses being passed<br>
+-  to syscalls: they will fail with EFAULT rather than killing Valgrind<br>
+-  with SIGSEGV.<br>
+-<br>
+-* Because clone() is directly supported, some non-pthread uses of it<br>
+-  will work.  Partial sharing (where some resources are shared, and<br>
+-  some are not) is not supported.<br>
+-<br>
+-* open() and readlink() on /proc/self/exe are supported.<br>
+-<br>
+-BUGS FIXED:<br>
+-<br>
+-88520   pipe+fork+dup2 kills the main program<br>
+-88604 	Valgrind Aborts when using $VALGRIND_OPTS and user progra...<br>
+-88614 	valgrind: vg_libpthread.c:2323 (read): Assertion `read_pt...<br>
+-88703 	Stabs parser fails to handle ";"<br>
+-88886 	ioctl wrappers for TIOCMBIS and TIOCMBIC<br>
+-89032 	valgrind pthread_cond_timedwait fails<br>
+-89106 	the 'impossible' happened<br>
+-89139 	Missing sched_setaffinity & sched_getaffinity<br>
+-89198 	valgrind lacks support for SIOCSPGRP and SIOCGPGRP<br>
+-89263 	Missing ioctl translations for scsi-generic and CD playing<br>
+-89440 	tests/deadlock.c line endings<br>
+-89481 	`impossible' happened: EXEC FAILED<br>
+-89663 	valgrind 2.2.0 crash on Redhat 7.2<br>
+-89792 	Report pthread_mutex_lock() deadlocks instead of returnin...<br>
+-90111 	statvfs64 gives invalid error/warning<br>
+-90128 	crash+memory fault with stabs generated by gnat for a run...<br>
+-90778 	VALGRIND_CHECK_DEFINED() not as documented in memcheck.h<br>
+-90834 	cachegrind crashes at end of program without reporting re...<br>
+-91028 	valgrind: vg_memory.c:229 (vgPlain_unmap_range): Assertio...<br>
+-91162 	valgrind crash while debugging drivel 1.2.1<br>
+-91199 	Unimplemented function<br>
+-91325 	Signal routing does not propagate the siginfo structure<br>
+-91599 	Assertion `cv == ((void *)0)'<br>
+-91604 	rw_lookup clears orig and sends the NULL value to rw_new<br>
+-91821 	Small problems building valgrind with $top_builddir ne $t...<br>
+-91844 	signal 11 (SIGSEGV) at get_tcb (libpthread.c:86) in corec...<br>
+-92264 	UNIMPLEMENTED FUNCTION: pthread_condattr_setpshared<br>
+-92331 	per-target flags necessitate AM_PROG_CC_C_O<br>
+-92420 	valgrind doesn't compile with linux 2.6.8.1/9<br>
+-92513 	Valgrind 2.2.0 generates some warning messages<br>
+-92528 	vg_symtab2.c:170 (addLoc): Assertion `loc->size > 0' failed.<br>
+-93096 	unhandled ioctl 0x4B3A and 0x5601<br>
+-93117 	Tool and core interface versions do not match<br>
+-93128 	Can't run valgrind --tool=memcheck because of unimplement...<br>
+-93174 	Valgrind can crash if passed bad args to certain syscalls<br>
+-93309 	Stack frame in new thread is badly aligned<br>
+-93328 	Wrong types used with sys_sigprocmask()<br>
+-93763 	/usr/include/asm/msr.h is missing<br>
+-93776 	valgrind: vg_memory.c:508 (vgPlain_find_map_space): Asser...<br>
+-93810 	fcntl() argument checking a bit too strict<br>
+-94378 	Assertion `tst->sigqueue_head != tst->sigqueue_tail' failed.<br>
+-94429 	valgrind 2.2.0 segfault with mmap64 in glibc 2.3.3<br>
+-94645 	Impossible happened: PINSRW mem<br>
+-94953 	valgrind: the `impossible' happened: SIGSEGV<br>
+-95667 	Valgrind does not work with any KDE app<br>
+-96243 	Assertion 'res==0' failed<br>
+-96252 	stage2 loader of valgrind fails to allocate memory<br>
+-96520 	All programs crashing at _dl_start (in /lib/ld-2.3.3.so) ...<br>
+-96660 	ioctl CDROMREADTOCENTRY causes bogus warnings<br>
+-96747 	After looping in a segfault handler, the impossible happens<br>
+-96923 	Zero sized arrays crash valgrind trace back with SIGFPE<br>
+-96948 	valgrind stops with assertion failure regarding mmap2<br>
+-96966 	valgrind fails when application opens more than 16 sockets<br>
+-97398 	valgrind: vg_libpthread.c:2667 Assertion failed<br>
+-97407 	valgrind: vg_mylibc.c:1226 (vgPlain_safe_fd): Assertion `...<br>
+-97427 	"Warning: invalid file descriptor -1 in syscall close()" ...<br>
+-97785 	missing backtrace<br>
+-97792 	build in obj dir fails - autoconf / makefile cleanup<br>
+-97880 	pthread_mutex_lock fails from shared library (special ker...<br>
+-97975 	program aborts without ang VG messages<br>
+-98129 	Failed when open and close file 230000 times using stdio<br>
+-98175 	Crashes when using valgrind-2.2.0 with a program using al...<br>
+-98288 	Massif broken<br>
+-98303 	UNIMPLEMENTED FUNCTION pthread_condattr_setpshared<br>
+-98630 	failed--compilation missing warnings.pm, fails to make he...<br>
+-98756 	Cannot valgrind signal-heavy kdrive X server<br>
+-98966 	valgrinding the JVM fails with a sanity check assertion<br>
+-99035 	Valgrind crashes while profiling<br>
+-99142 	loops with message "Signal 11 being dropped from thread 0...<br>
+-99195 	threaded apps crash on thread start (using QThread::start...<br>
+-99348 	Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_off...<br>
+-99568 	False negative due to mishandling of mprotect<br>
+-99738 	valgrind memcheck crashes on program that uses sigitimer<br>
+-99923 	0-sized allocations are reported as leaks<br>
+-99949 	program seg faults after exit()<br>
+-100036 	"newSuperblock's request for 1048576 bytes failed"<br>
+-100116 	valgrind: (pthread_cond_init): Assertion `sizeof(* cond) ...<br>
+-100486 	memcheck reports "valgrind: the `impossible' happened: V...<br>
+-100833 	second call to "mremap" fails with EINVAL<br>
+-101156 	(vgPlain_find_map_space): Assertion `(addr & ((1 << 12)-1...<br>
+-101173 	Assertion `recDepth >= 0 && recDepth < 500' failed<br>
+-101291 	creating threads in a forked process fails<br>
+-101313 	valgrind causes different behavior when resizing a window...<br>
+-101423 	segfault for c++ array of floats<br>
+-101562 	valgrind massif dies on SIGINT even with signal handler r...<br>
+-<br>
+-<br>
+-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-2.2.0 brings nine months worth of improvements and bug fixes.  We<br>
+-believe it to be a worthy successor to 2.0.0.  There are literally<br>
+-hundreds of bug fixes and minor improvements.  There are also some<br>
+-fairly major user-visible changes:<br>
+-<br>
+-* A complete overhaul of handling of system calls and signals, and <br>
+-  their interaction with threads.  In general, the accuracy of the <br>
+-  system call, thread and signal simulations is much improved:<br>
+-<br>
+-  - Blocking system calls behave exactly as they do when running<br>
+-    natively (not on valgrind).  That is, if a syscall blocks only the<br>
+-    calling thread when running natively, than it behaves the same on<br>
+-    valgrind.  No more mysterious hangs because V doesn't know that some<br>
+-    syscall or other, should block only the calling thread.<br>
+-<br>
+-  - Interrupted syscalls should now give more faithful results.<br>
+-<br>
+-  - Signal contexts in signal handlers are supported.<br>
+-<br>
+-* Improvements to NPTL support to the extent that V now works <br>
+-  properly on NPTL-only setups.<br>
+-<br>
+-* Greater isolation between Valgrind and the program being run, so<br>
+-  the program is less likely to inadvertently kill Valgrind by<br>
+-  doing wild writes.<br>
+-<br>
+-* Massif: a new space profiling tool.  Try it!  It's cool, and it'll<br>
+-  tell you in detail where and when your C/C++ code is allocating heap.<br>
+-  Draws pretty .ps pictures of memory use against time.  A potentially<br>
+-  powerful tool for making sense of your program's space use.<br>
+-<br>
+-* File descriptor leakage checks.  When enabled, Valgrind will print out<br>
+-  a list of open file descriptors on exit.<br>
+-<br>
+-* Improved SSE2/SSE3 support.<br>
+-<br>
+-* Time-stamped output; use --time-stamp=yes<br>
+-<br>
+-<br>
+-<br>
+-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-2.2.0 is not much different from 2.1.2, released seven weeks ago.<br>
+-A number of bugs have been fixed, most notably #85658, which gave<br>
+-problems for quite a few people.  There have been many internal<br>
+-cleanups, but those are not user visible.<br>
+-<br>
+-The following bugs have been fixed since 2.1.2:<br>
+-<br>
+-85658   Assert in coregrind/vg_libpthread.c:2326 (open64) !=<br>
+-        (void*)0 failed<br>
+-        This bug was reported multiple times, and so the following<br>
+-        duplicates of it are also fixed: 87620, 85796, 85935, 86065, <br>
+-        86919, 86988, 87917, 88156<br>
+-<br>
+-80716   Semaphore mapping bug caused by unmap (sem_destroy)<br>
+-        (Was fixed prior to 2.1.2)<br>
+-<br>
+-86987   semctl and shmctl syscalls family is not handled properly<br>
+-<br>
+-86696   valgrind 2.1.2 + RH AS2.1 + librt<br>
+-<br>
+-86730   valgrind locks up at end of run with assertion failure <br>
+-        in __pthread_unwind<br>
+-<br>
+-86641   memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1<br>
+-        (also fixes 74298, a duplicate of this)<br>
+-<br>
+-85947   MMX/SSE unhandled instruction 'sfence'<br>
+-<br>
+-84978   Wrong error "Conditional jump or move depends on<br>
+-        uninitialised value" resulting from "sbbl %reg, %reg"<br>
+-<br>
+-86254   ssort() fails when signed int return type from comparison is <br>
+-        too small to handle result of unsigned int subtraction<br>
+-<br>
+-87089   memalign( 4, xxx) makes valgrind assert<br>
+-<br>
+-86407   Add support for low-level parallel port driver ioctls.<br>
+-<br>
+-70587   Add timestamps to Valgrind output? (wishlist)<br>
+-<br>
+-84937   vg_libpthread.c:2505 (se_remap): Assertion `res == 0'<br>
+-        (fixed prior to 2.1.2)<br>
+-<br>
+-86317   cannot load libSDL-1.2.so.0 using valgrind<br>
+-<br>
+-86989   memcpy from mac_replace_strmem.c complains about<br>
+-        uninitialized pointers passed when length to copy is zero<br>
+-<br>
+-85811   gnu pascal symbol causes segmentation fault; ok in 2.0.0<br>
+-<br>
+-79138   writing to sbrk()'d memory causes segfault<br>
+-<br>
+-77369   sched deadlock while signal received during pthread_join<br>
+-        and the joined thread exited<br>
+-<br>
+-88115   In signal handler for SIGFPE,  siginfo->si_addr is wrong <br>
+-        under Valgrind<br>
+-<br>
+-78765   Massif crashes on app exit if FP exceptions are enabled<br>
+-<br>
+-Additionally there are the following changes, which are not <br>
+-connected to any bug report numbers, AFAICS:<br>
+-<br>
+-* Fix scary bug causing mis-identification of SSE stores vs<br>
+-  loads and so causing memcheck to sometimes give nonsense results<br>
+-  on SSE code.<br>
+-<br>
+-* Add support for the POSIX message queue system calls.<br>
+-<br>
+-* Fix to allow 32-bit Valgrind to run on AMD64 boxes.  Note: this does<br>
+-  NOT allow Valgrind to work with 64-bit executables - only with 32-bit<br>
+-  executables on an AMD64 box.<br>
+-<br>
+-* At configure time, only check whether linux/mii.h can be processed <br>
+-  so that we don't generate ugly warnings by trying to compile it.<br>
+-<br>
+-* Add support for POSIX clocks and timers.<br>
+-<br>
+-<br>
+-<br>
+-Developer (cvs head) release 2.1.2 (18 July 2004)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-2.1.2 contains four months worth of bug fixes and refinements.<br>
+-Although officially a developer release, we believe it to be stable<br>
+-enough for widespread day-to-day use.  2.1.2 is pretty good, so try it<br>
+-first, although there is a chance it won't work.  If so then try 2.0.0<br>
+-and tell us what went wrong."  2.1.2 fixes a lot of problems present<br>
+-in 2.0.0 and is generally a much better product.<br>
+-<br>
+-Relative to 2.1.1, a large number of minor problems with 2.1.1 have<br>
+-been fixed, and so if you use 2.1.1 you should try 2.1.2.  Users of<br>
+-the last stable release, 2.0.0, might also want to try this release.<br>
+-<br>
+-The following bugs, and probably many more, have been fixed.  These<br>
+-are listed at http://bugs.kde.org.  Reporting a bug for valgrind in<br>
+-the http://bugs.kde.org is much more likely to get you a fix than<br>
+-mailing developers directly, so please continue to keep sending bugs<br>
+-there.<br>
+-<br>
+-76869   Crashes when running any tool under Fedora Core 2 test1<br>
+-        This fixes the problem with returning from a signal handler <br>
+-        when VDSOs are turned off in FC2.<br>
+-<br>
+-69508   java 1.4.2 client fails with erroneous "stack size too small".<br>
+-        This fix makes more of the pthread stack attribute related <br>
+-        functions work properly.  Java still doesn't work though.<br>
+-<br>
+-71906   malloc alignment should be 8, not 4<br>
+-        All memory returned by malloc/new etc is now at least<br>
+-        8-byte aligned.<br>
+-<br>
+-81970   vg_alloc_ThreadState: no free slots available<br>
+-        (closed because the workaround is simple: increase<br>
+-         VG_N_THREADS, rebuild and try again.)<br>
+-<br>
+-78514   Conditional jump or move depends on uninitialized value(s)<br>
+-        (a slight mishanding of FP code in memcheck)<br>
+-<br>
+-77952   pThread Support (crash) (due to initialisation-ordering probs)<br>
+-        (also 85118)<br>
+-<br>
+-80942   Addrcheck wasn't doing overlap checking as it should.<br>
+-78048   return NULL on malloc/new etc failure, instead of asserting<br>
+-73655   operator new() override in user .so files often doesn't get picked up<br>
+-83060   Valgrind does not handle native kernel AIO<br>
+-69872   Create proper coredumps after fatal signals<br>
+-82026   failure with new glibc versions: __libc_* functions are not exported<br>
+-70344   UNIMPLEMENTED FUNCTION: tcdrain <br>
+-81297   Cancellation of pthread_cond_wait does not require mutex<br>
+-82872   Using debug info from additional packages (wishlist)<br>
+-83025   Support for ioctls FIGETBSZ and FIBMAP<br>
+-83340   Support for ioctl HDIO_GET_IDENTITY<br>
+-79714   Support for the semtimedop system call.<br>
+-77022   Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO<br>
+-82098   hp2ps ansification (wishlist)<br>
+-83573   Valgrind SIGSEGV on execve<br>
+-82999   show which cmdline option was erroneous (wishlist)<br>
+-83040   make valgrind VPATH and distcheck-clean (wishlist)<br>
+-83998   Assertion `newfd > vgPlain_max_fd' failed (see below)<br>
+-82722   Unchecked mmap in as_pad leads to mysterious failures later<br>
+-78958   memcheck seg faults while running Mozilla <br>
+-85416   Arguments with colon (e.g. --logsocket) ignored<br>
+-<br>
+-<br>
+-Additionally there are the following changes, which are not <br>
+-connected to any bug report numbers, AFAICS:<br>
+-<br>
+-* Rearranged address space layout relative to 2.1.1, so that<br>
+-  Valgrind/tools will run out of memory later than currently in many<br>
+-  circumstances.  This is good news esp. for Calltree.  It should<br>
+-  be possible for client programs to allocate over 800MB of<br>
+-  memory when using memcheck now.<br>
+-<br>
+-* Improved checking when laying out memory.  Should hopefully avoid<br>
+-  the random segmentation faults that 2.1.1 sometimes caused.<br>
+-<br>
+-* Support for Fedora Core 2 and SuSE 9.1.  Improvements to NPTL<br>
+-  support to the extent that V now works properly on NPTL-only setups.<br>
+-<br>
+-* Renamed the following options:<br>
+-  --logfile-fd  -->  --log-fd<br>
+-  --logfile     -->  --log-file<br>
+-  --logsocket   -->  --log-socket<br>
+-  to be consistent with each other and other options (esp. --input-fd).<br>
+-<br>
+-* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and<br>
+-  improve the checking of other interface related ioctls.<br>
+-<br>
+-* Fix building with gcc-3.4.1.<br>
+-<br>
+-* Remove limit on number of semaphores supported.<br>
+-<br>
+-* Add support for syscalls: set_tid_address (258), acct (51).<br>
+-<br>
+-* Support instruction "repne movs" -- not official but seems to occur.<br>
+-<br>
+-* Implement an emulated soft limit for file descriptors in addition to<br>
+-  the current reserved area, which effectively acts as a hard limit. The<br>
+-  setrlimit system call now simply updates the emulated limits as best<br>
+-  as possible - the hard limit is not allowed to move at all and just<br>
+-  returns EPERM if you try and change it.  This should stop reductions<br>
+-  in the soft limit causing assertions when valgrind tries to allocate<br>
+-  descriptors from the reserved area.<br>
+-  (This actually came from bug #83998).<br>
+-<br>
+-* Major overhaul of Cachegrind implementation.  First user-visible change<br>
+-  is that cachegrind.out files are now typically 90% smaller than they<br>
+-  used to be;  code annotation times are correspondingly much smaller.<br>
+-  Second user-visible change is that hit/miss counts for code that is<br>
+-  unloaded at run-time is no longer dumped into a single "discard" pile,<br>
+-  but accurately preserved.<br>
+-<br>
+-* Client requests for telling valgrind about memory pools.<br>
+-<br>
+-<br>
+-<br>
+-Developer (cvs head) release 2.1.1 (12 March 2004)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-2.1.1 contains some internal structural changes needed for V's<br>
+-long-term future.  These don't affect end-users.  Most notable<br>
+-user-visible changes are:<br>
+-<br>
+-* Greater isolation between Valgrind and the program being run, so<br>
+-  the program is less likely to inadvertently kill Valgrind by<br>
+-  doing wild writes.<br>
+-<br>
+-* Massif: a new space profiling tool.  Try it!  It's cool, and it'll<br>
+-  tell you in detail where and when your C/C++ code is allocating heap.<br>
+-  Draws pretty .ps pictures of memory use against time.  A potentially<br>
+-  powerful tool for making sense of your program's space use.<br>
+-<br>
+-* Fixes for many bugs, including support for more SSE2/SSE3 instructions,<br>
+-  various signal/syscall things, and various problems with debug<br>
+-  info readers.<br>
+-<br>
+-* Support for glibc-2.3.3 based systems.<br>
+-<br>
+-We are now doing automatic overnight build-and-test runs on a variety<br>
+-of distros.  As a result, we believe 2.1.1 builds and runs on:<br>
+-Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.<br>
+-<br>
+-<br>
+-The following bugs, and probably many more, have been fixed.  These<br>
+-are listed at http://bugs.kde.org.  Reporting a bug for valgrind in<br>
+-the http://bugs.kde.org is much more likely to get you a fix than<br>
+-mailing developers directly, so please continue to keep sending bugs<br>
+-there.<br>
+-<br>
+-69616   glibc 2.3.2 w/NPTL is massively different than what valgrind expects <br>
+-69856   I don't know how to instrument MMXish stuff (Helgrind)<br>
+-73892   valgrind segfaults starting with Objective-C debug info <br>
+-        (fix for S-type stabs)<br>
+-73145   Valgrind complains too much about close(<reserved fd>) <br>
+-73902   Shadow memory allocation seems to fail on RedHat 8.0 <br>
+-68633   VG_N_SEMAPHORES too low (V itself was leaking semaphores)<br>
+-75099   impossible to trace multiprocess programs <br>
+-76839   the `impossible' happened: disInstr: INT but not 0x80 ! <br>
+-76762   vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed. <br>
+-76747   cannot include valgrind.h in c++ program <br>
+-76223   parsing B(3,10) gave NULL type => impossible happens <br>
+-75604   shmdt handling problem <br>
+-76416   Problems with gcc 3.4 snap 20040225 <br>
+-75614   using -gstabs when building your programs the `impossible' happened<br>
+-75787   Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,<br>
+-75294   gcc 3.4 snapshot's libstdc++ have unsupported instructions. <br>
+-        (REP RET)<br>
+-73326   vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed. <br>
+-72596   not recognizing __libc_malloc <br>
+-69489   Would like to attach ddd to running program <br>
+-72781   Cachegrind crashes with kde programs <br>
+-73055   Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)<br>
+-73026   Descriptor leak check reports port numbers wrongly <br>
+-71705   README_MISSING_SYSCALL_OR_IOCTL out of date <br>
+-72643   Improve support for SSE/SSE2 instructions <br>
+-72484   valgrind leaves it's own signal mask in place when execing <br>
+-72650   Signal Handling always seems to restart system calls <br>
+-72006   The mmap system call turns all errors in ENOMEM <br>
+-71781   gdb attach is pretty useless <br>
+-71180   unhandled instruction bytes: 0xF 0xAE 0x85 0xE8 <br>
+-69886   writes to zero page cause valgrind to assert on exit <br>
+-71791   crash when valgrinding gimp 1.3 (stabs reader problem)<br>
+-69783   unhandled syscall: 218 <br>
+-69782   unhandled instruction bytes: 0x66 0xF 0x2B 0x80 <br>
+-70385   valgrind fails if the soft file descriptor limit is less <br>
+-        than about 828<br>
+-69529   "rep; nop" should do a yield <br>
+-70827   programs with lots of shared libraries report "mmap failed" <br>
+-        for some of them when reading symbols <br>
+-71028   glibc's strnlen is optimised enough to confuse valgrind <br>
+-<br>
+-<br>
+-<br>
+-<br>
+-Unstable (cvs head) release 2.1.0 (15 December 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-For whatever it's worth, 2.1.0 actually seems pretty darn stable to me<br>
+-(Julian).  It looks eminently usable, and given that it fixes some<br>
+-significant bugs, may well be worth using on a day-to-day basis.<br>
+-2.1.0 is known to build and pass regression tests on: SuSE 9, SuSE<br>
+-8.2, RedHat 8.<br>
+-<br>
+-2.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of<br>
+-handling of system calls and signals, and their interaction with<br>
+-threads.  In general, the accuracy of the system call, thread and<br>
+-signal simulations is much improved.  Specifically:<br>
+-<br>
+-- Blocking system calls behave exactly as they do when running<br>
+-  natively (not on valgrind).  That is, if a syscall blocks only the<br>
+-  calling thread when running natively, than it behaves the same on<br>
+-  valgrind.  No more mysterious hangs because V doesn't know that some<br>
+-  syscall or other, should block only the calling thread.<br>
+-<br>
+-- Interrupted syscalls should now give more faithful results.<br>
+-<br>
+-- Finally, signal contexts in signal handlers are supported.  As a<br>
+-  result, konqueror on SuSE 9 no longer segfaults when notified of<br>
+-  file changes in directories it is watching.<br>
+-<br>
+-Other changes:<br>
+-<br>
+-- Robert Walsh's file descriptor leakage checks.  When enabled,<br>
+-  Valgrind will print out a list of open file descriptors on<br>
+-  exit.  Along with each file descriptor, Valgrind prints out a stack<br>
+-  backtrace of where the file was opened and any details relating to the<br>
+-  file descriptor such as the file name or socket details.<br>
+-  To use, give: --track-fds=yes<br>
+-<br>
+-- Implemented a few more SSE/SSE2 instructions.<br>
+-<br>
+-- Less crud on the stack when you do 'where' inside a GDB attach.<br>
+-<br>
+-- Fixed the following bugs:<br>
+-  68360: Valgrind does not compile against 2.6.0-testX kernels<br>
+-  68525: CVS head doesn't compile on C90 compilers<br>
+-  68566: pkgconfig support (wishlist)<br>
+-  68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)<br>
+-  69140: valgrind not able to explicitly specify a path to a binary. <br>
+-  69432: helgrind asserts encountering a MutexErr when there are <br>
+-         EraserErr suppressions<br>
+-<br>
+-- Increase the max size of the translation cache from 200k average bbs<br>
+-  to 300k average bbs.  Programs on the size of OOo (680m17) are<br>
+-  thrashing the cache at the smaller size, creating large numbers of<br>
+-  retranslations and wasting significant time as a result.<br>
+-<br>
+-<br>
+-<br>
+-Stable release 2.0.0 (5 Nov 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-2.0.0 improves SSE/SSE2 support, fixes some minor bugs, and<br>
+-improves support for SuSE 9 and the Red Hat "Severn" beta.<br>
+-<br>
+-- Further improvements to SSE/SSE2 support.  The entire test suite of<br>
+-  the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1<br>
+-  20030307Z '-g -O -xW' now works.  I think this gives pretty good<br>
+-  coverage of SSE/SSE2 floating point instructions, or at least the<br>
+-  subset emitted by Icc.<br>
+-<br>
+-- Also added support for the following instructions:<br>
+-    MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS<br>
+-    PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).<br>
+-<br>
+-- CFI support for GDB version 6.  Needed to enable newer GDBs<br>
+-  to figure out where they are when using --gdb-attach=yes.<br>
+-<br>
+-- Fix this:<br>
+-      mc_translate.c:1091 (memcheck_instrument): Assertion<br>
+-      `u_in->size == 4 || u_in->size == 16' failed.<br>
+-<br>
+-- Return an error rather than panicing when given a bad socketcall.<br>
+-<br>
+-- Fix checking of syscall rt_sigtimedwait().<br>
+-<br>
+-- Implement __NR_clock_gettime (syscall 265).  Needed on Red Hat Severn.<br>
+-<br>
+-- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'<br>
+-  bytes long, when it could be shorter, which could cause false<br>
+-  positives.<br>
+-<br>
+-- Support use of select() for very large numbers of file descriptors.<br>
+-<br>
+-- Don't fail silently if the executable is statically linked, or is<br>
+-  setuid/setgid. Print an error message instead.<br>
+-<br>
+-- Support for old DWARF-1 format line number info.<br>
+-<br>
+-<br>
+-<br>
+-Snapshot 20031012 (12 October 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-Three months worth of bug fixes, roughly.  Most significant single<br>
+-change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.<br>
+-<br>
+-20031012 builds on Red Hat Fedora ("Severn") but doesn't really work<br>
+-(curiously, mozilla runs OK, but a modest "ls -l" bombs).  I hope to<br>
+-get a working version out soon.  It may or may not work ok on the<br>
+-forthcoming SuSE 9; I hear positive noises about it but haven't been<br>
+-able to verify this myself (not until I get hold of a copy of 9).<br>
+-<br>
+-A detailed list of changes, in no particular order:<br>
+-<br>
+-- Describe --gen-suppressions in the FAQ.<br>
+-<br>
+-- Syscall __NR_waitpid supported.<br>
+-<br>
+-- Minor MMX bug fix.<br>
+-<br>
+-- -v prints program's argv[] at startup.<br>
+-<br>
+-- More glibc-2.3 suppressions.<br>
+-<br>
+-- Suppressions for stack underrun bug(s) in the c++ support library<br>
+-  distributed with Intel Icc 7.0.<br>
+-<br>
+-- Fix problems reading /proc/self/maps.<br>
+-<br>
+-- Fix a couple of messages that should have been suppressed by -q, <br>
+-  but weren't.<br>
+-<br>
+-- Make Addrcheck understand "Overlap" suppressions.<br>
+-<br>
+-- At startup, check if program is statically linked and bail out if so.<br>
+-<br>
+-- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah<br>
+-<br>
+-- Memcheck/addrcheck: minor speed optimisations<br>
+-<br>
+-- Handle syscall __NR_brk more correctly than before.<br>
+-<br>
+-- Fixed incorrect allocate/free mismatch errors when using<br>
+-  operator new(unsigned, std::nothrow_t const&)<br>
+-  operator new[](unsigned, std::nothrow_t const&)<br>
+-<br>
+-- Support POSIX pthread spinlocks.<br>
+-<br>
+-- Fixups for clean compilation with gcc-3.3.1.<br>
+-<br>
+-- Implemented more opcodes: <br>
+-    - push %es<br>
+-    - push %ds<br>
+-    - pop %es<br>
+-    - pop %ds<br>
+-    - movntq<br>
+-    - sfence<br>
+-    - pshufw<br>
+-    - pavgb<br>
+-    - ucomiss<br>
+-    - enter<br>
+-    - mov imm32, %esp<br>
+-    - all "in" and "out" opcodes<br>
+-    - inc/dec %esp<br>
+-    - A whole bunch of SSE/SSE2 instructions<br>
+-<br>
+-- Memcheck: don't bomb on SSE/SSE2 code.<br>
+-<br>
+-<br>
+-Snapshot 20030725 (25 July 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-Fixes some minor problems in 20030716.<br>
+-<br>
+-- Fix bugs in overlap checking for strcpy/memcpy etc.<br>
+-<br>
+-- Do overlap checking with Addrcheck as well as Memcheck.<br>
+-<br>
+-- Fix this:<br>
+-      Memcheck: the `impossible' happened:<br>
+-      get_error_name: unexpected type<br>
+-<br>
+-- Install headers needed to compile new skins.<br>
+-<br>
+-- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD<br>
+-  passed to non-traced children.<br>
+-<br>
+-- Fix file descriptor leak in valgrind-listener.<br>
+-<br>
+-- Fix longstanding bug in which the allocation point of a <br>
+-  block resized by realloc was not correctly set.  This may<br>
+-  have caused confusing error messages.<br>
+-<br>
+-<br>
+-Snapshot 20030716 (16 July 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-20030716 is a snapshot of our current CVS head (development) branch.<br>
+-This is the branch which will become valgrind-2.0.  It contains<br>
+-significant enhancements over the 1.9.X branch.<br>
+-<br>
+-Despite this being a snapshot of the CVS head, it is believed to be<br>
+-quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so<br>
+--- and therefore suitable for widespread use.  Please let us know asap<br>
+-if it causes problems for you.<br>
+-<br>
+-Two reasons for releasing a snapshot now are:<br>
+-<br>
+-- It's been a while since 1.9.6, and this snapshot fixes<br>
+-  various problems that 1.9.6 has with threaded programs <br>
+-  on glibc-2.3.X based systems.<br>
+-<br>
+-- So as to make available improvements in the 2.0 line.<br>
+-<br>
+-Major changes in 20030716, as compared to 1.9.6:<br>
+-<br>
+-- More fixes to threading support on glibc-2.3.1 and 2.3.2-based<br>
+-  systems (SuSE 8.2, Red Hat 9).  If you have had problems<br>
+-  with inconsistent/illogical behaviour of errno, h_errno or the DNS<br>
+-  resolver functions in threaded programs, 20030716 should improve<br>
+-  matters.  This snapshot seems stable enough to run OpenOffice.org<br>
+-  1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big<br>
+-  threaded app if ever I saw one.<br>
+-<br>
+-- Automatic generation of suppression records; you no longer<br>
+-  need to write them by hand.  Use --gen-suppressions=yes.<br>
+-<br>
+-- strcpy/memcpy/etc check their arguments for overlaps, when<br>
+-  running with the Memcheck or Addrcheck skins.<br>
+-<br>
+-- malloc_usable_size() is now supported.<br>
+-<br>
+-- new client requests:<br>
+-    - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS: <br>
+-      useful with regression testing<br>
+-    - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions <br>
+-      on real CPU (use with caution!)<br>
+-<br>
+-- The GDB attach mechanism is more flexible.  Allow the GDB to<br>
+-  be run to be specified by --gdb-path=/path/to/gdb, and specify<br>
+-  which file descriptor V will read its input from with<br>
+-  --input-fd=<number>.<br>
+-<br>
+-- Cachegrind gives more accurate results (wasn't tracking instructions in<br>
+-  malloc() and friends previously, is now).<br>
+-<br>
+-- Complete support for the MMX instruction set.<br>
+-<br>
+-- Partial support for the SSE and SSE2 instruction sets.  Work for this<br>
+-  is ongoing.  About half the SSE/SSE2 instructions are done, so<br>
+-  some SSE based programs may work.  Currently you need to specify<br>
+-  --skin=addrcheck.  Basically not suitable for real use yet.<br>
+-<br>
+-- Significant speedups (10%-20%) for standard memory checking.<br>
+-<br>
+-- Fix assertion failure in pthread_once().<br>
+-<br>
+-- Fix this:<br>
+-    valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select): <br>
+-              Assertion `ms_end >= ms_now' failed.<br>
+-<br>
+-- Implement pthread_mutexattr_setpshared.<br>
+-<br>
+-- Understand Pentium 4 branch hints.  Also implemented a couple more<br>
+-  obscure x86 instructions.<br>
+-<br>
+-- Lots of other minor bug fixes.<br>
+-<br>
+-- We have a decent regression test system, for the first time.<br>
+-  This doesn't help you directly, but it does make it a lot easier<br>
+-  for us to track the quality of the system, especially across<br>
+-  multiple linux distributions.  <br>
+-<br>
+-  You can run the regression tests with 'make regtest' after 'make<br>
+-  install' completes.  On SuSE 8.2 and Red Hat 9 I get this:<br>
+- <br>
+-     == 84 tests, 0 stderr failures, 0 stdout failures ==<br>
+-<br>
+-  On Red Hat 8, I get this:<br>
+-<br>
+-     == 84 tests, 2 stderr failures, 1 stdout failure ==<br>
+-     corecheck/tests/res_search               (stdout)<br>
+-     memcheck/tests/sigaltstack               (stderr)<br>
+-<br>
+-  sigaltstack is probably harmless.  res_search doesn't work<br>
+-  on R H 8 even running natively, so I'm not too worried.   <br>
+-<br>
+-  On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:<br>
+-<br>
+-     == 84 tests, 2 stderr failures, 1 stdout failure ==<br>
+-     corecheck/tests/pth_atfork1              (stdout)<br>
+-     corecheck/tests/pth_atfork1              (stderr)<br>
+-     memcheck/tests/sigaltstack               (stderr)<br>
+-<br>
+-  You need to run on a PII system, at least, since some tests<br>
+-  contain P6-specific instructions, and the test machine needs<br>
+-  access to the internet so that corecheck/tests/res_search<br>
+-  (a test that the DNS resolver works) can function.<br>
+-<br>
+-As ever, thanks for the vast amount of feedback :) and bug reports :(<br>
+-We may not answer all messages, but we do at least look at all of<br>
+-them, and tend to fix the most frequently reported bugs.<br>
+-<br>
+-<br>
+-<br>
+-Version 1.9.6 (7 May 2003 or thereabouts)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-Major changes in 1.9.6:<br>
+-<br>
+-- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,<br>
+-  RedHat 9, to name but two ...)  It turned out that 1.9.5<br>
+-  had problems with threading support on glibc >= 2.3.2,<br>
+-  usually manifested by threaded programs deadlocking in system calls,<br>
+-  or running unbelievably slowly.  Hopefully these are fixed now.  1.9.6<br>
+-  is the first valgrind which gives reasonable support for<br>
+-  glibc-2.3.2.  Also fixed a 2.3.2 problem with pthread_atfork().<br>
+-<br>
+-- Majorly expanded FAQ.txt.  We've added workarounds for all<br>
+-  common problems for which a workaround is known.<br>
+-<br>
+-Minor changes in 1.9.6:<br>
+-<br>
+-- Fix identification of the main thread's stack.  Incorrect<br>
+-  identification of it was causing some on-stack addresses to not get<br>
+-  identified as such.  This only affected the usefulness of some error<br>
+-  messages; the correctness of the checks made is unchanged.<br>
+-<br>
+-- Support for kernels >= 2.5.68.<br>
+-<br>
+-- Dummy implementations of __libc_current_sigrtmin, <br>
+-  __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully<br>
+-  good enough to keep alive programs which previously died for lack of<br>
+-  them.<br>
+-<br>
+-- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.<br>
+-<br>
+-- Fix bug in the DWARF2 debug line info loader, when instructions <br>
+-  following each other have source lines far from each other <br>
+-  (e.g. with inlined functions).<br>
+-<br>
+-- Debug info reading: read symbols from both "symtab" and "dynsym"<br>
+-  sections, rather than merely from the one that comes last in the<br>
+-  file.<br>
+-<br>
+-- New syscall support: prctl(), creat(), lookup_dcookie().<br>
+-<br>
+-- When checking calls to accept(), recvfrom(), getsocketopt(),<br>
+-  don't complain if buffer values are NULL.<br>
+-<br>
+-- Try and avoid assertion failures in<br>
+-  mash_LD_PRELOAD_and_LD_LIBRARY_PATH.<br>
+-<br>
+-- Minor bug fixes in cg_annotate.<br>
+-<br>
+-<br>
+-<br>
+-Version 1.9.5 (7 April 2003)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-It occurs to me that it would be helpful for valgrind users to record<br>
+-in the source distribution the changes in each release.  So I now<br>
+-attempt to mend my errant ways :-)  Changes in this and future releases<br>
+-will be documented in the NEWS file in the source distribution.<br>
+-<br>
+-Major changes in 1.9.5:<br>
+-<br>
+-- (Critical bug fix): Fix a bug in the FPU simulation.  This was<br>
+-  causing some floating point conditional tests not to work right.<br>
+-  Several people reported this.  If you had floating point code which<br>
+-  didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.<br>
+-<br>
+-- Partial support for Red Hat 9.  RH9 uses the new Native Posix <br>
+-  Threads Library (NPTL), instead of the older LinuxThreads.  <br>
+-  This potentially causes problems with V which will take some<br>
+-  time to correct.  In the meantime we have partially worked around<br>
+-  this, and so 1.9.5 works on RH9.  Threaded programs still work,<br>
+-  but they may deadlock, because some system calls (accept, read,<br>
+-  write, etc) which should be nonblocking, in fact do block.  This<br>
+-  is a known bug which we are looking into.<br>
+-<br>
+-  If you can, your best bet (unfortunately) is to avoid using <br>
+-  1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.<br>
+-  If your glibc is 2.3.1 or earlier, you're almost certainly OK.<br>
+-<br>
+-Minor changes in 1.9.5:<br>
+-<br>
+-- Added some #errors to valgrind.h to ensure people don't include<br>
+-  it accidentally in their sources.  This is a change from 1.0.X<br>
+-  which was never properly documented.  The right thing to include<br>
+-  is now memcheck.h.  Some people reported problems and strange<br>
+-  behaviour when (incorrectly) including valgrind.h in code with <br>
+-  1.9.1 -- 1.9.4.  This is no longer possible.<br>
+-<br>
+-- Add some __extension__ bits and pieces so that gcc configured<br>
+-  for valgrind-checking compiles even with -Werror.  If you<br>
+-  don't understand this, ignore it.  Of interest to gcc developers<br>
+-  only.<br>
+-<br>
+-- Removed a pointless check which caused problems interworking <br>
+-  with Clearcase.  V would complain about shared objects whose<br>
+-  names did not end ".so", and refuse to run.  This is now fixed.<br>
+-  In fact it was fixed in 1.9.4 but not documented.<br>
+-<br>
+-- Fixed a bug causing an assertion failure of "waiters == 1"<br>
+-  somewhere in vg_scheduler.c, when running large threaded apps,<br>
+-  notably MySQL.<br>
+-<br>
+-- Add support for the munlock system call (124).<br>
+-<br>
+-Some comments about future releases:<br>
+-<br>
+-1.9.5 is, we hope, the most stable Valgrind so far.  It pretty much<br>
+-supersedes the 1.0.X branch.  If you are a valgrind packager, please<br>
+-consider making 1.9.5 available to your users.  You can regard the<br>
+-1.0.X branch as obsolete: 1.9.5 is stable and vastly superior.  There<br>
+-are no plans at all for further releases of the 1.0.X branch.<br>
+-<br>
+-If you want a leading-edge valgrind, consider building the cvs head<br>
+-(from SourceForge), or getting a snapshot of it.  Current cool stuff<br>
+-going in includes MMX support (done); SSE/SSE2 support (in progress),<br>
+-a significant (10-20%) performance improvement (done), and the usual<br>
+-large collection of minor changes.  Hopefully we will be able to<br>
+-improve our NPTL support, but no promises.<br>
+-<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.news.html"><< 2. NEWS</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme.html">4. README >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-android.html b/docs/html/dist.readme-android.html
+deleted file mode 100644
+index 0aaef40..0000000
+--- a/docs/html/dist.readme-android.html
++++ /dev/null
+@@ -1,190 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>9. README.android</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-s390.html" title="8. README.S390">
+-<link rel="next" href="dist.readme-android_emulator.html" title="10. README.android_emulator">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-s390.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-android_emulator.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="9. README.android">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-android"></a>9. README.android</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-How to cross-compile for Android.  These notes were last updated on <br>
+-17 Feb 2012, for Valgrind SVN revision 12390/2257.<br>
+-<br>
+-This is known to work at least for :<br>
+-ARM:<br>
+-  Android 4.0.3 running on a (rooted, AOSP build) Nexus S.<br>
+-  Android 4.0.3 running on Motorola Xoom.<br>
+-  Android 4.0.3 running on android arm emulator.<br>
+-  Android 4.1   running on android emulator.<br>
+-  Android 2.3.4 on Nexus S worked at some time in the past.<br>
+-<br>
+-x86:<br>
+-  Android 4.0.3 running on android x86 emulator.<br>
+-<br>
+-On android-arm, GDBserver might insert breaks at wrong addresses.<br>
+-Feedback on this welcome.<br>
+-<br>
+-Other configurations and toolchains might work, but haven't been tested.<br>
+-Feedback is welcome.<br>
+-<br>
+-<br>
+-You need the android-ndk-r6 native development kit.  r6b and r7<br>
+-give a non-completely-working build; see<br>
+-http://code.google.com/p/android/issues/detail?id=23203<br>
+-For the android emulator, the versions needed and how to<br>
+-install them are described in README.android_emulator.<br>
+-<br>
+-Install it somewhere.  Doesn't matter where.  Then do this:<br>
+-<br>
+-<br>
+-# Modify this (obviously).  Note, this "export" command is only done<br>
+-# so as to reduce the amount of typing required.  None of the commands<br>
+-# below read it as part of their operation.<br>
+-#<br>
+-export NDKROOT=/path/to/android-ndk-r6<br>
+-<br>
+-<br>
+-# Modify this too.  Tell the build system which Android hardware you<br>
+-# are building for.  It needs to know this so it can compile in<br>
+-# support for the right Android-hw-specific ioctls.  (sigh.)  As with<br>
+-# NDKROOT above, this is merely to avoid repeated typing; none of the<br>
+-# commands read it.<br>
+-#<br>
+-# Currently the supported values are:  nexus_s pandaboard<br>
+-# So choose one of the below:<br>
+-#<br>
+-export HWKIND=nexus_s         # Samsung Nexus S; also Xoom (for now)<br>
+-export HWKIND=generic         # A generic Android device. eg, Pandaboard<br>
+-export HWKIND=emulator        # Android emulator<br>
+-<br>
+-# Then cd to the root of your Valgrind source tree.<br>
+-#<br>
+-cd /path/to/valgrind/source/tree<br>
+-<br>
+-<br>
+-# After this point, you don't need to modify anything; just copy and<br>
+-# paste the commands below.<br>
+-<br>
+-<br>
+-# Set up toolchain paths.<br>
+-#<br>
+-# For ARM<br>
+-export AR=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar<br>
+-export LD=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld<br>
+-export CC=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc<br>
+-<br>
+-# For x86<br>
+-export AR=$NDKROOT/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-android-linux-ar<br>
+-export LD=$NDKROOT/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-android-linux-ld<br>
+-export CC=$NDKROOT/toolchains/x86-4.4.3/prebuilt/linux-x86/bin/i686-android-linux-gcc<br>
+-<br>
+-<br>
+-# Do configuration stuff.  Don't mess with the --prefix in the<br>
+-# configure command below, even if you think it's wrong.<br>
+-# You may need to set the --with-tmpdir path to something<br>
+-# different if /sdcard doesn't work on the device -- this is<br>
+-# a known cause of difficulties.<br>
+-<br>
+-# The below re-generates configure, Makefiles, ...<br>
+-# This is not needed if you start from a release tarball.<br>
+-./autogen.sh<br>
+-<br>
+-# for ARM<br>
+-CPPFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm -DANDROID_HARDWARE_$HWKIND" \<br>
+-   CFLAGS="--sysroot=$NDKROOT/platforms/android-3/arch-arm" \<br>
+-   ./configure --prefix=/data/local/Inst \<br>
+-   --host=armv7-unknown-linux --target=armv7-unknown-linux \<br>
+-   --with-tmpdir=/sdcard<br>
+-# note: on android emulator, android-14 platform was also tested and works.<br>
+-# It is not clear what this platform nr really is.<br>
+-<br>
+-# for x86<br>
+-CPPFLAGS="--sysroot=$NDKROOT/platforms/android-9/arch-x86 -DANDROID_HARDWARE_$HWKIND" \<br>
+-   CFLAGS="--sysroot=$NDKROOT/platforms/android-9/arch-x86 -fno-pic" \<br>
+-   ./configure --prefix=/data/local/Inst \<br>
+-   --host=i686-android-linux --target=i686-android-linux \<br>
+-   --with-tmpdir=/sdcard<br>
+-<br>
+-# At the end of the configure run, a few lines of details<br>
+-# are printed.  Make sure that you see these two lines:<br>
+-#<br>
+-# For ARM:<br>
+-#          Platform variant: android<br>
+-#     Primary -DVGPV string: -DVGPV_arm_linux_android=1<br>
+-#<br>
+-# For x86:<br>
+-#          Platform variant: android<br>
+-#     Primary -DVGPV string: -DVGPV_x86_linux_android=1<br>
+-#<br>
+-# If you see anything else at this point, something is wrong, and<br>
+-# either the build will fail, or will succeed but you'll get something<br>
+-# which won't work.<br>
+-<br>
+-<br>
+-# Build, and park the install tree in `pwd`/Inst<br>
+-#<br>
+-make -j2<br>
+-make -j2 install DESTDIR=`pwd`/Inst<br>
+-<br>
+-<br>
+-# To get the install tree onto the device:<br>
+-# (I don't know why it's not "adb push Inst /data/local", but this<br>
+-# formulation does appear to put the result in /data/local/Inst.)<br>
+-#<br>
+-adb push Inst /<br>
+-<br>
+-# To run (on the device)<br>
+-/data/local/Inst/bin/valgrind [the usual args etc]<br>
+-<br>
+-<br>
+-# Once you're up and running, a handy modify-V-rebuild-reinstall<br>
+-# command line (on the host, of course) is<br>
+-#<br>
+-mq -j2 && mq -j2 install DESTDIR=`pwd`/Inst && adb push Inst /<br>
+-#<br>
+-# where 'mq' is an alias for 'make --quiet'.<br>
+-<br>
+-<br>
+-# One common cause of runs failing at startup is the inability of<br>
+-# Valgrind to find a suitable temporary directory.  On the device,<br>
+-# there doesn't seem to be any one location which we always have<br>
+-# permission to write to.  The instructions above use /sdcard.  If<br>
+-# that doesn't work for you, and you're Valgrinding one specific<br>
+-# application which is already installed, you could try using its<br>
+-# temporary directory, in /data/data, for example<br>
+-# /data/data/org.mozilla.firefox_beta.<br>
+-#<br>
+-# Using /system/bin/logcat on the device is helpful for diagnosing<br>
+-# these kinds of problems.<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-s390.html"><< 8. README.S390</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-android_emulator.html">10. README.android_emulator >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-android_emulator.html b/docs/html/dist.readme-android_emulator.html
+deleted file mode 100644
+index 4392580..0000000
+--- a/docs/html/dist.readme-android_emulator.html
++++ /dev/null
+@@ -1,113 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>10. README.android_emulator</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-android.html" title="9. README.android">
+-<link rel="next" href="dist.readme-mips.html" title="11. README.mips">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-android.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-mips.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="10. README.android_emulator">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-android_emulator"></a>10. README.android_emulator</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-How to install and run an android emulator.<br>
+-<br>
+-mkdir android # or any other place you prefer<br>
+-cd android<br>
+-<br>
+-# download java JDK<br>
+-# http://www.oracle.com/technetwork/java/javase/downloads/index.html<br>
+-# download android SDK<br>
+-# http://developer.android.com/sdk/index.html<br>
+-# download android NDK<br>
+-# http://developer.android.com/sdk/ndk/index.html<br>
+-<br>
+-# versions I used:<br>
+-#  jdk-7u4-linux-i586.tar.gz<br>
+-#  android-ndk-r8-linux-x86.tar.bz2<br>
+-#  android-sdk_r18-linux.tgz<br>
+-<br>
+-# install jdk<br>
+-tar xzf jdk-7u4-linux-i586.tar.gz<br>
+-<br>
+-# install sdk<br>
+-tar xzf android-sdk_r18-linux.tgz<br>
+-<br>
+-# install ndk<br>
+-tar xjf android-ndk-r8-linux-x86.tar.bz2<br>
+-<br>
+-<br>
+-# setup PATH to use the installed software:<br>
+-export SDKROOT=$HOME/android/android-sdk-linux<br>
+-export PATH=$PATH:$SDKROOT/tools:$SDKROOT/platform-tools<br>
+-export NDKROOT=$HOME/android/android-ndk-r8<br>
+-<br>
+-# install android platforms you want by starting:<br>
+-android <br>
+-# (from $SDKROOT/tools)<br>
+-<br>
+-# select the platforms you need<br>
+-# I selected and installed:<br>
+-#   Android 4.0.3 (API 15)<br>
+-# Upgraded then to the newer version available:<br>
+-#     Android sdk 20<br>
+-#     Android platform tools 12<br>
+-<br>
+-# then define a virtual device:<br>
+-Tools -> Manage AVDs...<br>
+-# I define an AVD Name with 64 Mb SD Card, (4.0.3, api 15)<br>
+-# rest is default<br>
+-<br>
+-<br>
+-# compile and make install Valgrind, following README.android<br>
+-<br>
+-<br>
+-# Start your android emulator (it takes some time).<br>
+-# You can use adb shell to get a shell on the device<br>
+-# and see it is working. Note that I usually get<br>
+-# one or two time out from adb shell before it works<br>
+-adb shell<br>
+-<br>
+-# Once the emulator is ready, push your Valgrind to the emulator:<br>
+-adb push Inst /<br>
+-<br>
+-<br>
+-# if you need to debug:<br>
+-# You have on the android side a gdbserver<br>
+-# on the device side:<br>
+-gdbserver :1234 your_exe<br>
+-<br>
+-# on the host side:<br>
+-adb forward tcp:1234 tcp:1234<br>
+-$HOME/android/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gdb your_exe<br>
+-target remote :1234<br>
+-<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-android.html"><< 9. README.android</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-mips.html">11. README.mips >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-developers.html b/docs/html/dist.readme-developers.html
+deleted file mode 100644
+index 1dd012f..0000000
+--- a/docs/html/dist.readme-developers.html
++++ /dev/null
+@@ -1,322 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>6. README_DEVELOPERS</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-missing.html" title="5. README_MISSING_SYSCALL_OR_IOCTL">
+-<link rel="next" href="dist.readme-packagers.html" title="7. README_PACKAGERS">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-missing.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-packagers.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="6. README_DEVELOPERS">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-developers"></a>6. README_DEVELOPERS</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Building and not installing it<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To run Valgrind without having to install it, run coregrind/valgrind<br>
+-with the VALGRIND_LIB environment variable set, where <dir> is the root<br>
+-of the source tree (and must be an absolute path).  Eg:<br>
+-<br>
+-  VALGRIND_LIB=~/grind/head4/.in_place ~/grind/head4/coregrind/valgrind <br>
+-<br>
+-This allows you to compile and run with "make" instead of "make install",<br>
+-saving you time.<br>
+-<br>
+-Or, you can use the 'vg-in-place' script which does that for you.<br>
+-<br>
+-I recommend compiling with "make --quiet" to further reduce the amount of<br>
+-output spewed out during compilation, letting you actually see any errors,<br>
+-warnings, etc.<br>
+-<br>
+-<br>
+-Building a distribution tarball<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To build a distribution tarball from the valgrind sources:<br>
+-<br>
+-  make dist<br>
+-<br>
+-In addition to compiling, linking and packaging everything up, the command<br>
+-will also build the documentation. Even if all required tools for building the<br>
+-documentation are installed, this step may not succeed because of hidden<br>
+-dependencies. E.g. on Ubuntu you must have "docbook-xsl" installed.<br>
+-Additionally, specific tool versions maybe needed.<br>
+-<br>
+-If you only want to test whether the generated tarball is complete and runs<br>
+-regression tests successfully, building documentation is not needed.<br>
+-Edit docs/Makefile.am, search for BUILD_ALL_DOCS and follow instructions there.<br>
+-<br>
+-<br>
+-Running the regression tests<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To build and run all the regression tests, run "make [--quiet] regtest".<br>
+-<br>
+-To run a subset of the regression tests, execute:<br>
+-<br>
+-  perl tests/vg_regtest <name><br>
+-<br>
+-where <name> is a directory (all tests within will be run) or a single<br>
+-.vgtest test file, or the name of a program which has a like-named .vgtest<br>
+-file.  Eg:<br>
+-<br>
+-  perl tests/vg_regtest memcheck<br>
+-  perl tests/vg_regtest memcheck/tests/badfree.vgtest<br>
+-  perl tests/vg_regtest memcheck/tests/badfree<br>
+-<br>
+-<br>
+-Running the performance tests<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To build and run all the performance tests, run "make [--quiet] perf".<br>
+-<br>
+-To run a subset of the performance suite, execute:<br>
+-<br>
+-  perl perf/vg_perf <name><br>
+-<br>
+-where <name> is a directory (all tests within will be run) or a single<br>
+-.vgperf test file, or the name of a program which has a like-named .vgperf<br>
+-file.  Eg:<br>
+-<br>
+-  perl perf/vg_perf perf/<br>
+-  perl perf/vg_perf perf/bz2.vgperf<br>
+-  perl perf/vg_perf perf/bz2<br>
+-<br>
+-To compare multiple versions of Valgrind, use the --vg= option multiple<br>
+-times.  For example, if you have two Valgrinds next to each other, one in<br>
+-trunk1/ and one in trunk2/, from within either trunk1/ or trunk2/ do this to<br>
+-compare them on all the performance tests:<br>
+-<br>
+-  perl perf/vg_perf --vg=../trunk1 --vg=../trunk2 perf/<br>
+-<br>
+-<br>
+-Debugging Valgrind with GDB<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To debug the valgrind launcher program (<prefix>/bin/valgrind) just<br>
+-run it under gdb in the normal way.<br>
+-<br>
+-Debugging the main body of the valgrind code (and/or the code for<br>
+-a particular tool) requires a bit more trickery but can be achieved<br>
+-without too much problem by following these steps:<br>
+-<br>
+-(1) Set VALGRIND_LAUNCHER to point to the valgrind executable.  Eg:<br>
+-<br>
+-      export VALGRIND_LAUNCHER=/usr/local/bin/valgrind<br>
+-<br>
+-    or for an uninstalled version in a source directory $DIR:<br>
+-<br>
+-      export VALGRIND_LAUNCHER=$DIR/coregrind/valgrind<br>
+-<br>
+-(2) Run gdb on the tool executable.  Eg:<br>
+-<br>
+-      gdb /usr/local/lib/valgrind/ppc32-linux/lackey<br>
+-<br>
+-    or<br>
+-<br>
+-      gdb $DIR/.in_place/x86-linux/memcheck<br>
+-<br>
+-(3) Do "handle SIGSEGV SIGILL nostop noprint" in GDB to prevent GDB from<br>
+-    stopping on a SIGSEGV or SIGILL:<br>
+-<br>
+-    (gdb) handle SIGILL SIGSEGV nostop noprint<br>
+-<br>
+-(4) Set any breakpoints you want and proceed as normal for gdb. The<br>
+-    macro VG_(FUNC) is expanded to vgPlain_FUNC, so If you want to set<br>
+-    a breakpoint VG_(do_exec), you could do like this in GDB:<br>
+-<br>
+-    (gdb) b vgPlain_do_exec<br>
+-<br>
+-(5) Run the tool with required options (the --tool option is required<br>
+-    for correct setup), e.g.<br>
+-<br>
+-    (gdb) run --tool=lackey pwd<br>
+-<br>
+-Steps (1)--(3) can be put in a .gdbinit file, but any directory names must<br>
+-be fully expanded (ie. not an environment variable).<br>
+-<br>
+-A different and possibly easier way is as follows:<br>
+-<br>
+-(1) Run Valgrind as normal, but add the flag --wait-for-gdb=yes.  This<br>
+-    puts the tool executable into a wait loop soon after it gains<br>
+-    control.  This delays startup for a few seconds.<br>
+-<br>
+-(2) In a different shell, do "gdb /proc/<pid>/exe <pid>", where<br>
+-    <pid> you read from the output printed by (1).  This attaches<br>
+-    GDB to the tool executable, which should be in the abovementioned<br>
+-    wait loop.<br>
+-<br>
+-(3) Do "cont" to continue.  After the loop finishes spinning, startup<br>
+-    will continue as normal.  Note that comment (3) above re passing<br>
+-    signals applies here too.<br>
+-<br>
+-<br>
+-Self-hosting<br>
+-~~~~~~~~~~~~<br>
+-This section explains :<br>
+-  (A) How to configure Valgrind to run under Valgrind.<br>
+-      Such a setup is called self hosting, or outer/inner setup.<br>
+-  (B) How to run Valgrind regression tests in a 'self-hosting' mode,<br>
+-      e.g. to verify Valgrind has no bugs such as memory leaks.<br>
+-  (C) How to run Valgrind performance tests in a 'self-hosting' mode,<br>
+-      to analyse and optimise the performance of Valgrind and its tools.<br>
+-<br>
+-(A) How to configure Valgrind to run under Valgrind:<br>
+-<br>
+-(1) Check out 2 trees, "Inner" and "Outer".  Inner runs the app<br>
+-    directly.  Outer runs Inner.<br>
+-<br>
+-(2) Configure inner with --enable-inner and build/install as usual.<br>
+-<br>
+-(3) Configure Outer normally and build/install as usual.<br>
+-<br>
+-(4) Choose a very simple program (date) and try<br>
+-<br>
+-    outer/.../bin/valgrind --sim-hints=enable-outer --trace-children=yes  \<br>
+-       --smc-check=all-non-file \<br>
+-       --run-libc-freeres=no --tool=cachegrind -v \<br>
+-       inner/.../bin/valgrind --vgdb-prefix=./inner --tool=none -v prog<br>
+-<br>
+-If you omit the --trace-children=yes, you'll only monitor Inner's launcher<br>
+-program, not its stage2. Outer needs --run-libc-freeres=no, as otherwise<br>
+-it will try to find and run __libc_freeres in the inner, while libc is not<br>
+-used by the inner. Inner needs --vgdb-prefix=./inner to avoid inner<br>
+-gdbserver colliding with outer gdbserver.<br>
+-Currently, inner does *not* use the client request <br>
+-VALGRIND_DISCARD_TRANSLATIONS for the JITted code or the code patched for<br>
+-translation chaining. So the outer needs --smc-check=all-non-file to<br>
+-detect the modified code.<br>
+-<br>
+-Debugging the whole thing might imply to use up to 3 GDB:<br>
+-  * a GDB attached to the Outer valgrind, allowing<br>
+-    to examine the state of Outer.<br>
+-  * a GDB using Outer gdbserver, allowing to<br>
+-    examine the state of Inner.<br>
+-  * a GDB using Inner gdbserver, allowing to<br>
+-    examine the state of prog.<br>
+-<br>
+-The whole thing is fragile, confusing and slow, but it does work well enough<br>
+-for you to get some useful performance data.  Inner has most of<br>
+-its output (ie. those lines beginning with "==<pid>==") prefixed with a '>',<br>
+-which helps a lot. However, when running regression tests in an Outer/Inner<br>
+-setup, this prefix causes the reg test diff to fail. Give <br>
+---sim-hints=no-inner-prefix to the Inner to disable the production<br>
+-of the prefix in the stdout/stderr output of Inner.<br>
+-<br>
+-The allocator (coregrind/m_mallocfree.c) is annotated with client requests<br>
+-so Memcheck can be used to find leaks and use after free in an Inner<br>
+-Valgrind.<br>
+-<br>
+-The Valgrind "big lock" is annotated with helgrind client requests<br>
+-so helgrind and drd can be used to find race conditions in an Inner<br>
+-Valgrind.<br>
+-<br>
+-All this has not been tested much, so don't be surprised if you hit problems.<br>
+-<br>
+-When using self-hosting with an outer Callgrind tool, use '--pop-on-jump'<br>
+-(on the outer). Otherwise, Callgrind has much higher memory requirements. <br>
+-<br>
+-(B) Regression tests in an outer/inner setup:<br>
+-<br>
+- To run all the regression tests with an outer memcheck, do :<br>
+-   perl tests/vg_regtest --outer-valgrind=../outer/.../bin/valgrind \<br>
+-                         --all<br>
+-<br>
+- To run a specific regression tests with an outer memcheck, do:<br>
+-   perl tests/vg_regtest --outer-valgrind=../outer/.../bin/valgrind \<br>
+-                         none/tests/args.vgtest<br>
+-<br>
+- To run regression tests with another outer tool:<br>
+-   perl tests/vg_regtest --outer-valgrind=../outer/.../bin/valgrind \<br>
+-                         --outer-tool=helgrind --all<br>
+-<br>
+- --outer-args allows to give specific arguments to the outer tool,<br>
+- replacing the default one provided by vg_regtest.<br>
+-<br>
+-When an outer valgrind runs an inner valgrind, a regression test<br>
+-produces one additional file <testname>.outer.log which contains the<br>
+-errors detected by the outer valgrind.  E.g. for an outer memcheck, it<br>
+-contains the leaks found in the inner, for an outer helgrind or drd,<br>
+-it contains the detected race conditions.<br>
+-<br>
+-The file tests/outer_inner.supp contains suppressions for <br>
+-the irrelevant or benign errors found in the inner.<br>
+-<br>
+-(C) Performance tests in an outer/inner setup:<br>
+-<br>
+- To run all the performance tests with an outer cachegrind, do :<br>
+-    perl perf/vg_perf --outer-valgrind=../outer/.../bin/valgrind perf<br>
+-<br>
+- To run a specific perf test (e.g. bz2) in this setup, do :<br>
+-    perl perf/vg_perf --outer-valgrind=../outer/.../bin/valgrind perf/bz2<br>
+-<br>
+- To run all the performance tests with an outer callgrind, do :<br>
+-    perl perf/vg_perf --outer-valgrind=../outer/.../bin/valgrind \<br>
+-                      --outer-tool=callgrind perf<br>
+-<br>
+- To compare the performance of multiple Valgrind versions, do :<br>
+-    perl perf/vg_perf --outer-valgrind=../outer/.../bin/valgrind \<br>
+-      --vg=../inner_xxxx --vg=../inner_yyyy perf<br>
+-  (where inner_xxxx and inner_yyyy are the versions to compare).<br>
+-  Cachegrind and cg_diff are particularly handy to obtain a delta<br>
+-  between the two versions.<br>
+-<br>
+-When the outer tool is callgrind or cachegrind, the following<br>
+-output files will be created for each test:<br>
+-   <outertoolname>.out.<inner_valgrind_dir>.<tt>.<perftestname>.<pid><br>
+-   <outertoolname>.outer.log.<inner_valgrind_dir>.<tt>.<perftestname>.<pid><br>
+- (where tt is the two letters abbreviation for the inner tool(s) run).<br>
+-<br>
+-For example, the command<br>
+-    perl perf/vg_perf \<br>
+-      --outer-valgrind=../outer_trunk/install/bin/valgrind \<br>
+-      --outer-tool=callgrind \<br>
+-      --vg=../inner_tchain --vg=../inner_trunk perf/many-loss-records<br>
+-<br>
+-produces the files<br>
+-    callgrind.out.inner_tchain.no.many-loss-records.18465<br>
+-    callgrind.outer.log.inner_tchain.no.many-loss-records.18465<br>
+-    callgrind.out.inner_tchain.me.many-loss-records.21899<br>
+-    callgrind.outer.log.inner_tchain.me.many-loss-records.21899<br>
+-    callgrind.out.inner_trunk.no.many-loss-records.21224<br>
+-    callgrind.outer.log.inner_trunk.no.many-loss-records.21224<br>
+-    callgrind.out.inner_trunk.me.many-loss-records.22916<br>
+-    callgrind.outer.log.inner_trunk.me.many-loss-records.22916<br>
+-<br>
+-<br>
+-Printing out problematic blocks<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-If you want to print out a disassembly of a particular block that<br>
+-causes a crash, do the following.<br>
+-<br>
+-Try running with "--vex-guest-chase-thresh=0 --trace-flags=10000000<br>
+---trace-notbelow=999999".  This should print one line for each block<br>
+-translated, and that includes the address.<br>
+-<br>
+-Then re-run with 999999 changed to the highest bb number shown.<br>
+-This will print the one line per block, and also will print a<br>
+-disassembly of the block in which the fault occurred.<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-missing.html"><< 5. README_MISSING_SYSCALL_OR_IOCTL</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-packagers.html">7. README_PACKAGERS >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-mips.html b/docs/html/dist.readme-mips.html
+deleted file mode 100644
+index 2be9e19..0000000
+--- a/docs/html/dist.readme-mips.html
++++ /dev/null
+@@ -1,91 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>11. README.mips</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-android_emulator.html" title="10. README.android_emulator">
+-<link rel="next" href="licenses.html" title="GNU Licenses">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-android_emulator.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="licenses.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="11. README.mips">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-mips"></a>11. README.mips</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Supported platforms<br>
+--------------------<br>
+-- MIPS32 and MIPS32r2 platforms are currently supported.<br>
+-- Both little-endian and big-endian cores are supported.<br>
+-<br>
+-<br>
+-Building V for MIPS<br>
+--------------------<br>
+-- Native build is available for all supported platforms. The build system<br>
+-expects that native GCC is configured correctly and optimized for the platform.<br>
+-Yet, this may not be the case with some Debian distributions which configure<br>
+-GCC to compile to "mips1" by default. Depending on a target platform, using<br>
+-CFLAGS="-mips32r2" or CFLAGS="-mips32" will do the trick and compile Valgrind<br>
+-correctly.<br>
+-- Use of cross-toolchain is supported as well.<br>
+-- Example of configure line and additional configure options:<br>
+-<br>
+-   $ ./configure --host=mipsel-linux-gnu --prefix=<path_to_install_directory><br>
+-        [--with-pagesize=<4|16|64>]<br>
+-<br>
+- * --host=mips-linux-gnu is necessary only if Valgrind is built on platform<br>
+-   other then MIPS, tools for building MIPS application have to be in PATH.<br>
+-<br>
+- * --with-pagesize option is used to set default PAGE SIZE. If option is not<br>
+-   used, PAGE SIZE is set to value default for platform on which Valgrind is<br>
+-   built on. Possible values are 4, 16 of 64 and represent size in kilobytes.<br>
+-<br>
+- * --host=mips-linux-gnu is necessary if you compile it with cross toolchain<br>
+-   compiler for big endian platform.<br>
+-<br>
+- * --host=mipsel-linux-gnu is necessary if you compile it with cross toolchain<br>
+-   compiler for little endian platform.<br>
+-<br>
+- * --build=mips-linux is needed if you want to build it for MIPS32 on 64-bit<br>
+-   MIPS system.<br>
+-<br>
+- * If you are compiling Valgrind with gcc version older then gcc (GCC) 4.5.1<br>
+-   you must specify CFLAGS="-mips32r2 -mplt", e.g.<br>
+-   ./configure --prefix=<path_to_install_directory><br>
+-   CFLAGS="-mips32r2 -mplt"<br>
+-<br>
+-<br>
+-Limitations<br>
+------------<br>
+-- Currently, memcheck, massif, lackey, callgrind and none are supported.<br>
+-- Support for helgrind, drd and exp-ptrcheck is still incomplete.<br>
+-- Some Valgrind tests for MIPS expect mips32r2 architecture and will not<br>
+-compile when target is one of the older instruction sets.<br>
+-- Older GCC may have issues with some inline assembly blocks. Get a toolchain<br>
+-based on newer GCC versions, if possible.<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-android_emulator.html"><< 10. README.android_emulator</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="licenses.html">GNU Licenses >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-missing.html b/docs/html/dist.readme-missing.html
+deleted file mode 100644
+index 21e7725..0000000
+--- a/docs/html/dist.readme-missing.html
++++ /dev/null
+@@ -1,224 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>5. README_MISSING_SYSCALL_OR_IOCTL</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme.html" title="4. README">
+-<link rel="next" href="dist.readme-developers.html" title="6. README_DEVELOPERS">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-developers.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="5. README_MISSING_SYSCALL_OR_IOCTL">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-missing"></a>5. README_MISSING_SYSCALL_OR_IOCTL</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Dealing with missing system call or ioctl wrappers in Valgrind<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-You're probably reading this because Valgrind bombed out whilst<br>
+-running your program, and advised you to read this file.  The good<br>
+-news is that, in general, it's easy to write the missing syscall or<br>
+-ioctl wrappers you need, so that you can continue your debugging.  If<br>
+-you send the resulting patches to me, then you'll be doing a favour to<br>
+-all future Valgrind users too.<br>
+-<br>
+-Note that an "ioctl" is just a special kind of system call, really; so<br>
+-there's not a lot of need to distinguish them (at least conceptually)<br>
+-in the discussion that follows.<br>
+-<br>
+-All this machinery is in coregrind/m_syswrap.<br>
+-<br>
+-<br>
+-What are syscall/ioctl wrappers?  What do they do?<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-Valgrind does what it does, in part, by keeping track of everything your<br>
+-program does.  When a system call happens, for example a request to read<br>
+-part of a file, control passes to the Linux kernel, which fulfills the<br>
+-request, and returns control to your program.  The problem is that the<br>
+-kernel will often change the status of some part of your program's memory<br>
+-as a result, and tools (instrumentation plug-ins) may need to know about<br>
+-this.<br>
+-<br>
+-Syscall and ioctl wrappers have two jobs: <br>
+-<br>
+-1. Tell a tool what's about to happen, before the syscall takes place.  A<br>
+-   tool could perform checks beforehand, eg. if memory about to be written<br>
+-   is actually writeable.  This part is useful, but not strictly<br>
+-   essential.<br>
+-<br>
+-2. Tell a tool what just happened, after a syscall takes place.  This is<br>
+-   so it can update its view of the program's state, eg. that memory has<br>
+-   just been written to.  This step is essential.<br>
+-<br>
+-The "happenings" mostly involve reading/writing of memory.<br>
+-<br>
+-So, let's look at an example of a wrapper for a system call which<br>
+-should be familiar to many Unix programmers.<br>
+-<br>
+-<br>
+-The syscall wrapper for time()<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-The wrapper for the time system call looks like this:<br>
+-<br>
+-  PRE(sys_time)<br>
+-  {<br>
+-     /* time_t time(time_t *t); */<br>
+-     PRINT("sys_time ( %p )",ARG1);<br>
+-     PRE_REG_READ1(long, "time", int *, t);<br>
+-     if (ARG1 != 0) {<br>
+-        PRE_MEM_WRITE( "time(t)", ARG1, sizeof(vki_time_t) );<br>
+-     }<br>
+-  }<br>
+-<br>
+-  POST(sys_time)<br>
+-  {  <br>
+-     if (ARG1 != 0) {<br>
+-        POST_MEM_WRITE( ARG1, sizeof(vki_time_t) );<br>
+-     }<br>
+-  }<br>
+-<br>
+-The first thing we do happens before the syscall occurs, in the PRE() function.<br>
+-The PRE() function typically starts with invoking to the PRINT() macro. This<br>
+-PRINT() macro implements support for the --trace-syscalls command line option.<br>
+-Next, the tool is told the return type of the syscall, that the syscall has<br>
+-one argument, the type of the syscall argument and that the argument is being<br>
+-read from a register:<br>
+-<br>
+-     PRE_REG_READ1(long, "time", int *, t);<br>
+-<br>
+-Next, if a non-NULL buffer is passed in as the argument, tell the tool that the<br>
+-buffer is about to be written to:<br>
+-<br>
+-     if (ARG1 != 0) {<br>
+-        PRE_MEM_WRITE( "time", ARG1, sizeof(vki_time_t) );<br>
+-     }<br>
+-<br>
+-Finally, the really important bit, after the syscall occurs, in the POST()<br>
+-function:  if, and only if, the system call was successful, tell the tool that<br>
+-the memory was written:<br>
+-<br>
+-     if (ARG1 != 0) {<br>
+-        POST_MEM_WRITE( ARG1, sizeof(vki_time_t) );<br>
+-     }<br>
+-<br>
+-The POST() function won't be called if the syscall failed, so you<br>
+-don't need to worry about checking that in the POST() function.<br>
+-(Note: this is sometimes a bug; some syscalls do return results when<br>
+-they "fail" - for example, nanosleep returns the amount of unslept<br>
+-time if interrupted. TODO: add another per-syscall flag for this<br>
+-case.)<br>
+-<br>
+-Note that we use the type 'vki_time_t'.  This is a copy of the kernel<br>
+-type, with 'vki_' prefixed.  Our copies of such types are kept in the<br>
+-appropriate vki*.h file(s).  We don't include kernel headers or glibc headers<br>
+-directly.<br>
+-<br>
+-<br>
+-Writing your own syscall wrappers (see below for ioctl wrappers)<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-If Valgrind tells you that system call NNN is unimplemented, do the <br>
+-following:<br>
+-<br>
+-1.  Find out the name of the system call:<br>
+-<br>
+-       grep NNN /usr/include/asm/unistd*.h<br>
+-<br>
+-    This should tell you something like  __NR_mysyscallname.<br>
+-    Copy this entry to include/vki/vki-scnums-$(VG_PLATFORM).h.<br>
+-<br>
+-<br>
+-2.  Do 'man 2 mysyscallname' to get some idea of what the syscall<br>
+-    does.  Note that the actual kernel interface can differ from this,<br>
+-    so you might also want to check a version of the Linux kernel<br>
+-    source.<br>
+-<br>
+-    NOTE: any syscall which has something to do with signals or<br>
+-    threads is probably "special", and needs more careful handling.<br>
+-    Post something to valgrind-developers if you aren't sure.<br>
+-<br>
+-<br>
+-3.  Add a case to the already-huge collection of wrappers in <br>
+-    the coregrind/m_syswrap/syswrap-*.c files. <br>
+-    For each in-memory parameter which is read or written by<br>
+-    the syscall, do one of<br>
+-    <br>
+-      PRE_MEM_READ( ... )<br>
+-      PRE_MEM_RASCIIZ( ... ) <br>
+-      PRE_MEM_WRITE( ... ) <br>
+-      <br>
+-    for  that parameter.  Then do the syscall.  Then, if the syscall<br>
+-    succeeds, issue suitable POST_MEM_WRITE( ... ) calls.<br>
+-    (There's no need for POST_MEM_READ calls.)<br>
+-<br>
+-    Also, add it to the syscall_table[] array; use one of GENX_, GENXY<br>
+-    LINX_, LINXY, PLAX_, PLAXY.<br>
+-    GEN* for generic syscalls (in syswrap-generic.c), LIN* for linux<br>
+-    specific ones (in syswrap-linux.c) and PLA* for the platform<br>
+-    dependant ones (in syswrap-$(PLATFORM)-linux.c).<br>
+-    The *XY variant if it requires a PRE() and POST() function, and<br>
+-    the *X_ variant if it only requires a PRE()<br>
+-    function.  <br>
+-    <br>
+-    If you find this difficult, read the wrappers for other syscalls<br>
+-    for ideas.  A good tip is to look for the wrapper for a syscall<br>
+-    which has a similar behaviour to yours, and use it as a <br>
+-    starting point.<br>
+-<br>
+-    If you need structure definitions and/or constants for your syscall,<br>
+-    copy them from the kernel headers into include/vki.h and co., with<br>
+-    the appropriate vki_*/VKI_* name mangling.  Don't #include any<br>
+-    kernel headers.  And certainly don't #include any glibc headers.<br>
+-<br>
+-    Test it.<br>
+-<br>
+-    Note that a common error is to call POST_MEM_WRITE( ... )<br>
+-    with 0 (NULL) as the first (address) argument.  This usually means<br>
+-    your logic is slightly inadequate.  It's a sufficiently common bug<br>
+-    that there's a built-in check for it, and you'll get a "probably<br>
+-    sanity check failure" for the syscall wrapper you just made, if this<br>
+-    is the case.<br>
+-<br>
+-<br>
+-4.  Once happy, send us the patch.  Pretty please.<br>
+-<br>
+-<br>
+-<br>
+-<br>
+-Writing your own ioctl wrappers<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-<br>
+-Is pretty much the same as writing syscall wrappers, except that all<br>
+-the action happens within PRE(ioctl) and POST(ioctl).<br>
+-<br>
+-There's a default case, sometimes it isn't correct and you have to write a<br>
+-more specific case to get the right behaviour.<br>
+-<br>
+-As above, please create a bug report and attach the patch as described<br>
+-on http://www.valgrind.org.<br>
+-<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme.html"><< 4. README</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-developers.html">6. README_DEVELOPERS >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-packagers.html b/docs/html/dist.readme-packagers.html
+deleted file mode 100644
+index bdf0b7b..0000000
+--- a/docs/html/dist.readme-packagers.html
++++ /dev/null
+@@ -1,135 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>7. README_PACKAGERS</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-developers.html" title="6. README_DEVELOPERS">
+-<link rel="next" href="dist.readme-s390.html" title="8. README.S390">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-developers.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-s390.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="7. README_PACKAGERS">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-packagers"></a>7. README_PACKAGERS</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Greetings, packaging person!  This information is aimed at people<br>
+-building binary distributions of Valgrind.<br>
+-<br>
+-Thanks for taking the time and effort to make a binary distribution of<br>
+-Valgrind.  The following notes may save you some trouble.<br>
+-<br>
+-<br>
+--- Do not ship your Linux distro with a completely stripped<br>
+-   /lib/ld.so.  At least leave the debugging symbol names on -- line<br>
+-   number info isn't necessary.  If you don't want to leave symbols on<br>
+-   ld.so, alternatively you can have your distro install ld.so's<br>
+-   debuginfo package by default, or make ld.so.debuginfo be a<br>
+-   requirement of your Valgrind RPM/DEB/whatever.<br>
+-<br>
+-   Reason for this is that Valgrind's Memcheck tool needs to intercept<br>
+-   calls to, and provide replacements for, some symbols in ld.so at<br>
+-   startup (most importantly strlen).  If it cannot do that, Memcheck<br>
+-   shows a large number of false positives due to the highly optimised<br>
+-   strlen (etc) routines in ld.so.  This has caused some trouble in<br>
+-   the past.  As of version 3.3.0, on some targets (ppc32-linux,<br>
+-   ppc64-linux), Memcheck will simply stop at startup (and print an<br>
+-   error message) if such symbols are not present, because it is<br>
+-   infeasible to continue.<br>
+-<br>
+-   It's not like this is going to cost you much space.  We only need<br>
+-   the symbols for ld.so (a few K at most).  Not the debug info and<br>
+-   not any debuginfo or extra symbols for any other libraries.<br>
+-<br>
+-<br>
+--- (Unfortunate but true) When you configure to build with the <br>
+-   --prefix=/foo/bar/xyzzy option, the prefix /foo/bar/xyzzy gets<br>
+-   baked into valgrind.  The consequence is that you _must_ install<br>
+-   valgrind at the location specified in the prefix.  If you don't,<br>
+-   it may appear to work, but will break doing some obscure things,<br>
+-   particularly doing fork() and exec().<br>
+-<br>
+-   So you can't build a relocatable RPM / whatever from Valgrind.<br>
+-<br>
+-<br>
+--- Don't strip the debug info off lib/valgrind/$platform/vgpreload*.so<br>
+-   in the installation tree.  Either Valgrind won't work at all, or it<br>
+-   will still work if you do, but will generate less helpful error<br>
+-   messages.  Here's an example:<br>
+-<br>
+-   Mismatched free() / delete / delete []<br>
+-      at 0x40043249: free (vg_clientfuncs.c:171)<br>
+-      by 0x4102BB4E: QGArray::~QGArray(void) (tools/qgarray.cpp:149)<br>
+-      by 0x4C261C41: PptDoc::~PptDoc(void) (include/qmemarray.h:60)<br>
+-      by 0x4C261F0E: PptXml::~PptXml(void) (pptxml.cc:44)<br>
+-      Address 0x4BB292A8 is 0 bytes inside a block of size 64 alloc'd<br>
+-      at 0x4004318C: __builtin_vec_new (vg_clientfuncs.c:152)<br>
+-      by 0x4C21BC15: KLaola::readSBStream(int) const (klaola.cc:314)<br>
+-      by 0x4C21C155: KLaola::stream(KLaola::OLENode const *) (klaola.cc:416)<br>
+-      by 0x4C21788F: OLEFilter::convert(QCString const &) (olefilter.cc:272)<br>
+-<br>
+-   This tells you that some memory allocated with new[] was freed with<br>
+-   free().<br>
+-<br>
+-   Mismatched free() / delete / delete []<br>
+-      at 0x40043249: (inside vgpreload_memcheck.so)<br>
+-      by 0x4102BB4E: QGArray::~QGArray(void) (tools/qgarray.cpp:149)<br>
+-      by 0x4C261C41: PptDoc::~PptDoc(void) (include/qmemarray.h:60)<br>
+-      by 0x4C261F0E: PptXml::~PptXml(void) (pptxml.cc:44)<br>
+-      Address 0x4BB292A8 is 0 bytes inside a block of size 64 alloc'd<br>
+-      at 0x4004318C: (inside vgpreload_memcheck.so)<br>
+-      by 0x4C21BC15: KLaola::readSBStream(int) const (klaola.cc:314)<br>
+-      by 0x4C21C155: KLaola::stream(KLaola::OLENode const *) (klaola.cc:416)<br>
+-      by 0x4C21788F: OLEFilter::convert(QCString const &) (olefilter.cc:272)<br>
+-<br>
+-   This isn't so helpful.  Although you can tell there is a mismatch, <br>
+-   the names of the allocating and deallocating functions are no longer<br>
+-   visible.  The same kind of thing occurs in various other messages <br>
+-   from valgrind.<br>
+-<br>
+-<br>
+--- Don't strip symbols from lib/valgrind/* in the installation tree.<br>
+-   Doing so will likely cause problems.  Removing the line number info is<br>
+-   probably OK (at least for some of the files in that directory), although<br>
+-   that has not been tested by the Valgrind developers.<br>
+-<br>
+-<br>
+--- Please test the final installation works by running it on something<br>
+-   huge.  I suggest checking that it can start and exit successfully<br>
+-   both Firefox and OpenOffice.org.  I use these as test programs, and I<br>
+-   know they fairly thoroughly exercise Valgrind.  The command lines to use<br>
+-   are:<br>
+-<br>
+-   valgrind -v --trace-children=yes firefox<br>
+-<br>
+-   valgrind -v --trace-children=yes soffice<br>
+-<br>
+-<br>
+-If you find any more hints/tips for packaging, please report<br>
+-it as a bugreport. See http://www.valgrind.org for details.<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-developers.html"><< 6. README_DEVELOPERS</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-s390.html">8. README.S390 >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme-s390.html b/docs/html/dist.readme-s390.html
+deleted file mode 100644
+index b6eeb57..0000000
+--- a/docs/html/dist.readme-s390.html
++++ /dev/null
+@@ -1,76 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>8. README.S390</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.readme-packagers.html" title="7. README_PACKAGERS">
+-<link rel="next" href="dist.readme-android.html" title="9. README.android">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-packagers.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-android.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="8. README.S390">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme-s390"></a>8. README.S390</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Requirements<br>
+-------------<br>
+-- You need GCC 3.4 or later to compile the s390 port.<br>
+-- A working combination of autotools is required.<br>
+-- To run valgrind a z900 machine or any later model is needed.<br>
+-<br>
+-<br>
+-Limitations<br>
+------------<br>
+-- 31-bit client programs are not supported.<br>
+-- Hexadecimal floating point is not supported.<br>
+-- Decimal floating point is not supported yet.<br>
+-- Currently, only memcheck, massif, lackey, and none are supported<br>
+-- helgrind and drd seem to work on SLES10,11 and RHEL5,6 on z9,z10 and z196<br>
+-  but might fail on other hardware/software combinations.<br>
+-- exp-sgcheck, cachegrind, and callgrind are currently not supported.<br>
+-- Some gcc versions use mvc to copy 4/8 byte values. This will affect some<br>
+-  debug messages. Valgrind will complain about 4 or 8 one-byte reads/writes<br>
+-  instead of just 1 read/write.<br>
+-<br>
+-<br>
+-Recommendations<br>
+----------------<br>
+-Applications should be compiled with -fno-builtin to avoid<br>
+-false positives due to builtin string operations when running memcheck.<br>
+-<br>
+-<br>
+-Reading Material<br>
+-----------------<br>
+-(1) Linux for zSeries ELF ABI Supplement<br>
+-    http://refspecs.linuxfoundation.org/ELF/zSeries/index.html<br>
+-(2) z/Architecture Principles of Operation<br>
+-    http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr008.pdf<br>
+-(3) z/Architecture Reference Summary<br>
+-    http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs006.pdf<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-packagers.html"><< 7. README_PACKAGERS</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-android.html">9. README.android >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/dist.readme.html b/docs/html/dist.readme.html
+deleted file mode 100644
+index af7c6bc..0000000
+--- a/docs/html/dist.readme.html
++++ /dev/null
+@@ -1,137 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>4. README</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
+-<link rel="prev" href="dist.news.old.html" title="3. OLDER NEWS">
+-<link rel="next" href="dist.readme-missing.html" title="5. README_MISSING_SYSCALL_OR_IOCTL">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.news.old.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Distribution Documents</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-missing.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="4. README">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="dist.readme"></a>4. README</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      <br>
+-Release notes for Valgrind<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-If you are building a binary package of Valgrind for distribution,<br>
+-please read README_PACKAGERS.  It contains some important information.<br>
+-<br>
+-If you are developing Valgrind, please read README_DEVELOPERS.  It contains<br>
+-some useful information.<br>
+-<br>
+-For instructions on how to build/install, see the end of this file.<br>
+-<br>
+-If you have problems, consult the FAQ to see if there are workarounds.<br>
+-<br>
+-<br>
+-Executive Summary<br>
+-~~~~~~~~~~~~~~~~~<br>
+-Valgrind is a framework for building dynamic analysis tools. There are<br>
+-Valgrind tools that can automatically detect many memory management<br>
+-and threading bugs, and profile your programs in detail. You can also<br>
+-use Valgrind to build new tools.<br>
+-<br>
+-The Valgrind distribution currently includes six production-quality<br>
+-tools: a memory error detector, two thread error detectors, a cache<br>
+-and branch-prediction profiler, a call-graph generating cache abd<br>
+-branch-prediction profiler, and a heap profiler. It also includes<br>
+-three experimental tools: a heap/stack/global array overrun detector,<br>
+-a different kind of heap profiler, and a SimPoint basic block vector<br>
+-generator.<br>
+-<br>
+-Valgrind is closely tied to details of the CPU, operating system and to<br>
+-a lesser extent, compiler and basic C libraries. This makes it difficult<br>
+-to make it portable.  Nonetheless, it is available for the following<br>
+-platforms: <br>
+-<br>
+-- X86/Linux<br>
+-- AMD64/Linux<br>
+-- PPC32/Linux<br>
+-- PPC64/Linux<br>
+-- ARM/Linux<br>
+-- x86/MacOSX<br>
+-- AMD64/MacOSX<br>
+-- S390X/Linux<br>
+-- MIPS32/Linux<br>
+-<br>
+-Note that AMD64 is just another name for x86_64, and Valgrind runs fine<br>
+-on Intel processors.  Also note that the core of MacOSX is called<br>
+-"Darwin" and this name is used sometimes.<br>
+-<br>
+-Valgrind is licensed under the GNU General Public License, version 2. <br>
+-Read the file COPYING in the source distribution for details.<br>
+-<br>
+-However: if you contribute code, you need to make it available as GPL<br>
+-version 2 or later, and not 2-only.<br>
+-<br>
+-<br>
+-Documentation<br>
+-~~~~~~~~~~~~~<br>
+-A comprehensive user guide is supplied.  Point your browser at<br>
+-$PREFIX/share/doc/valgrind/manual.html, where $PREFIX is whatever you<br>
+-specified with --prefix= when building.<br>
+-<br>
+-<br>
+-Building and installing it<br>
+-~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
+-To install from the Subversion repository :<br>
+-<br>
+-  0. Check out the code from SVN, following the instructions at<br>
+-     http://www.valgrind.org/downloads/repository.html.<br>
+-<br>
+-  1. cd into the source directory.<br>
+-<br>
+-  2. Run ./autogen.sh to setup the environment (you need the standard<br>
+-     autoconf tools to do so).<br>
+-<br>
+-  3. Continue with the following instructions...<br>
+-<br>
+-To install from a tar.bz2 distribution:<br>
+-<br>
+-  4. Run ./configure, with some options if you wish.  The only interesting<br>
+-     one is the usual --prefix=/where/you/want/it/installed.<br>
+-<br>
+-  5. Run "make".<br>
+-<br>
+-  6. Run "make install", possibly as root if the destination permissions<br>
+-     require that.<br>
+-<br>
+-  7. See if it works.  Try "valgrind ls -l".  Either this works, or it<br>
+-     bombs out with some complaint.  In that case, please let us know<br>
+-     (see www.valgrind.org).<br>
+-<br>
+-Important!  Do not move the valgrind installation into a place<br>
+-different from that specified by --prefix at build time.  This will<br>
+-cause things to break in subtle ways, mostly when Valgrind handles<br>
+-fork/exec calls.<br>
+-<br>
+-<br>
+-The Valgrind Developers<br>
+-<br>
+-    </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.news.old.html"><< 3. OLDER NEWS</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-missing.html">5. README_MISSING_SYSCALL_OR_IOCTL >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/drd-manual.html b/docs/html/drd-manual.html
+deleted file mode 100644
+index 90d584f..0000000
+--- a/docs/html/drd-manual.html
++++ /dev/null
+@@ -1,1471 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>8. DRD: a thread error detector</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="hg-manual.html" title="7. Helgrind: a thread error detector">
+-<link rel="next" href="ms-manual.html" title="9. Massif: a heap profiler">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="hg-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="ms-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="8. DRD: a thread error detector">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="drd-manual"></a>8. DRD: a thread error detector</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.overview">8.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mt-progr-models">8.1.1. Multithreaded Programming Paradigms</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.pthreads-model">8.1.2. POSIX Threads Programming Model</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mt-problems">8.1.3. Multithreaded Programming Problems</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.data-race-detection">8.1.4. Data Race Detection</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.using-drd">8.2. Using DRD</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.options">8.2.1. DRD Command-line Options</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.data-races">8.2.2. Detected Errors: Data Races</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.lock-contention">8.2.3. Detected Errors: Lock Contention</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.api-checks">8.2.4. Detected Errors: Misuse of the POSIX threads API</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.clientreqs">8.2.5. Client Requests</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.gnome">8.2.6. Debugging GNOME Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.boost.thread">8.2.7. Debugging Boost.Thread Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.openmp">8.2.8. Debugging OpenMP Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.cust-mem-alloc">8.2.9. DRD and Custom Memory Allocators</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.drd-versus-memcheck">8.2.10. DRD Versus Memcheck</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.resource-requirements">8.2.11. Resource Requirements</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.effective-use">8.2.12. Hints and Tips for Effective Use of DRD</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.Pthreads">8.3. Using the POSIX Threads API Effectively</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mutex-types">8.3.1. Mutex types</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.condvar">8.3.2. Condition variables</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.pctw">8.3.3. pthread_cond_timedwait and timeouts</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.limitations">8.4. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.feedback">8.5. Feedback</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=drd</code>
+-on the Valgrind command line.</p>
+-<div class="sect1" title="8.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="drd-manual.overview"></a>8.1. Overview</h2></div></div></div>
+-<p>
+-DRD is a Valgrind tool for detecting errors in multithreaded C and C++
+-programs. The tool works for any program that uses the POSIX threading
+-primitives or that uses threading concepts built on top of the POSIX threading
+-primitives.
+-</p>
+-<div class="sect2" title="8.1.1. Multithreaded Programming Paradigms">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.mt-progr-models"></a>8.1.1. Multithreaded Programming Paradigms</h3></div></div></div>
+-<p>
+-There are two possible reasons for using multithreading in a program:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      To model concurrent activities. Assigning one thread to each activity
+-      can be a great simplification compared to multiplexing the states of
+-      multiple activities in a single thread. This is why most server software
+-      and embedded software is multithreaded.
+-    </p></li>
+-<li class="listitem"><p>
+-      To use multiple CPU cores simultaneously for speeding up
+-      computations. This is why many High Performance Computing (HPC)
+-      applications are multithreaded.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-Multithreaded programs can use one or more of the following programming
+-paradigms. Which paradigm is appropriate depends e.g. on the application type.
+-Some examples of multithreaded programming paradigms are:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      Locking. Data that is shared over threads is protected from concurrent
+-      accesses via locking. E.g. the POSIX threads library, the Qt library
+-      and the Boost.Thread library support this paradigm directly.
+-    </p></li>
+-<li class="listitem"><p>
+-      Message passing. No data is shared between threads, but threads exchange
+-      data by passing messages to each other. Examples of implementations of
+-      the message passing paradigm are MPI and CORBA.
+-    </p></li>
+-<li class="listitem"><p>
+-      Automatic parallelization. A compiler converts a sequential program into
+-      a multithreaded program. The original program may or may not contain
+-      parallelization hints. One example of such parallelization hints is the
+-      OpenMP standard. In this standard a set of directives are defined which
+-      tell a compiler how to parallelize a C, C++ or Fortran program. OpenMP
+-      is well suited for computational intensive applications. As an example,
+-      an open source image processing software package is using OpenMP to
+-      maximize performance on systems with multiple CPU
+-      cores. GCC supports the
+-      OpenMP standard from version 4.2.0 on.
+-    </p></li>
+-<li class="listitem"><p>
+-      Software Transactional Memory (STM). Any data that is shared between
+-      threads is updated via transactions. After each transaction it is
+-      verified whether there were any conflicting transactions. If there were
+-      conflicts, the transaction is aborted, otherwise it is committed. This
+-      is a so-called optimistic approach. There is a prototype of the Intel C++
+-      Compiler available that supports STM. Research about the addition of
+-      STM support to GCC is ongoing.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-DRD supports any combination of multithreaded programming paradigms as
+-long as the implementation of these paradigms is based on the POSIX
+-threads primitives. DRD however does not support programs that use
+-e.g. Linux' futexes directly. Attempts to analyze such programs with
+-DRD will cause DRD to report many false positives.
+-</p>
+-</div>
+-<div class="sect2" title="8.1.2. POSIX Threads Programming Model">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.pthreads-model"></a>8.1.2. POSIX Threads Programming Model</h3></div></div></div>
+-<p>
+-POSIX threads, also known as Pthreads, is the most widely available
+-threading library on Unix systems.
+-</p>
+-<p>
+-The POSIX threads programming model is based on the following abstractions:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      A shared address space. All threads running within the same
+-      process share the same address space. All data, whether shared or
+-      not, is identified by its address.
+-    </p></li>
+-<li class="listitem"><p>
+-      Regular load and store operations, which allow to read values
+-      from or to write values to the memory shared by all threads
+-      running in the same process.
+-    </p></li>
+-<li class="listitem"><p>
+-      Atomic store and load-modify-store operations. While these are
+-      not mentioned in the POSIX threads standard, most
+-      microprocessors support atomic memory operations.
+-    </p></li>
+-<li class="listitem"><p>
+-      Threads. Each thread represents a concurrent activity.
+-    </p></li>
+-<li class="listitem"><p>
+-      Synchronization objects and operations on these synchronization
+-      objects. The following types of synchronization objects have been
+-      defined in the POSIX threads standard: mutexes, condition variables,
+-      semaphores, reader-writer synchronization objects, barriers and
+-      spinlocks.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-Which source code statements generate which memory accesses depends on
+-the <span class="emphasis"><em>memory model</em></span> of the programming language being
+-used. There is not yet a definitive memory model for the C and C++
+-languages. For a draft memory model, see also the document
+-<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2338.html" target="_top">
+-WG21/N2338: Concurrency memory model compiler consequences</a>.
+-</p>
+-<p>
+-For more information about POSIX threads, see also the Single UNIX
+-Specification version 3, also known as
+-<a class="ulink" href="http://www.opengroup.org/onlinepubs/000095399/idx/threads.html" target="_top">
+-IEEE Std 1003.1</a>.
+-</p>
+-</div>
+-<div class="sect2" title="8.1.3. Multithreaded Programming Problems">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.mt-problems"></a>8.1.3. Multithreaded Programming Problems</h3></div></div></div>
+-<p>
+-Depending on which multithreading paradigm is being used in a program,
+-one or more of the following problems can occur:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      Data races. One or more threads access the same memory location without
+-      sufficient locking. Most but not all data races are programming errors
+-      and are the cause of subtle and hard-to-find bugs.
+-    </p></li>
+-<li class="listitem"><p>
+-      Lock contention. One thread blocks the progress of one or more other
+-      threads by holding a lock too long.
+-    </p></li>
+-<li class="listitem"><p>
+-      Improper use of the POSIX threads API. Most implementations of the POSIX
+-      threads API have been optimized for runtime speed. Such implementations
+-      will not complain on certain errors, e.g. when a mutex is being unlocked
+-      by another thread than the thread that obtained a lock on the mutex.
+-    </p></li>
+-<li class="listitem"><p>
+-      Deadlock. A deadlock occurs when two or more threads wait for
+-      each other indefinitely.
+-    </p></li>
+-<li class="listitem"><p>
+-      False sharing. If threads that run on different processor cores
+-      access different variables located in the same cache line
+-      frequently, this will slow down the involved threads a lot due
+-      to frequent exchange of cache lines.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-Although the likelihood of the occurrence of data races can be reduced
+-through a disciplined programming style, a tool for automatic
+-detection of data races is a necessity when developing multithreaded
+-software. DRD can detect these, as well as lock contention and
+-improper use of the POSIX threads API.
+-</p>
+-</div>
+-<div class="sect2" title="8.1.4. Data Race Detection">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.data-race-detection"></a>8.1.4. Data Race Detection</h3></div></div></div>
+-<p>
+-The result of load and store operations performed by a multithreaded program
+-depends on the order in which memory operations are performed. This order is
+-determined by:
+-</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>
+-      All memory operations performed by the same thread are performed in
+-      <span class="emphasis"><em>program order</em></span>, that is, the order determined by the
+-      program source code and the results of previous load operations.
+-    </p></li>
+-<li class="listitem"><p>
+-      Synchronization operations determine certain ordering constraints on
+-      memory operations performed by different threads. These ordering
+-      constraints are called the <span class="emphasis"><em>synchronization order</em></span>.
+-    </p></li>
+-</ol></div>
+-<p>
+-The combination of program order and synchronization order is called the
+-<span class="emphasis"><em>happens-before relationship</em></span>. This concept was first
+-defined by S. Adve et al in the paper <span class="emphasis"><em>Detecting data races on weak
+-memory systems</em></span>, ACM SIGARCH Computer Architecture News, v.19 n.3,
+-p.234-243, May 1991.
+-</p>
+-<p>
+-Two memory operations <span class="emphasis"><em>conflict</em></span> if both operations are
+-performed by different threads, refer to the same memory location and at least
+-one of them is a store operation.
+-</p>
+-<p>
+-A multithreaded program is <span class="emphasis"><em>data-race free</em></span> if all
+-conflicting memory accesses are ordered by synchronization
+-operations.
+-</p>
+-<p>
+-A well known way to ensure that a multithreaded program is data-race
+-free is to ensure that a locking discipline is followed. It is e.g.
+-possible to associate a mutex with each shared data item, and to hold
+-a lock on the associated mutex while the shared data is accessed.
+-</p>
+-<p>
+-All programs that follow a locking discipline are data-race free, but not all
+-data-race free programs follow a locking discipline. There exist multithreaded
+-programs where access to shared data is arbitrated via condition variables,
+-semaphores or barriers. As an example, a certain class of HPC applications
+-consists of a sequence of computation steps separated in time by barriers, and
+-where these barriers are the only means of synchronization. Although there are
+-many conflicting memory accesses in such applications and although such
+-applications do not make use mutexes, most of these applications do not
+-contain data races.
+-</p>
+-<p>
+-There exist two different approaches for verifying the correctness of
+-multithreaded programs at runtime. The approach of the so-called Eraser
+-algorithm is to verify whether all shared memory accesses follow a consistent
+-locking strategy. And the happens-before data race detectors verify directly
+-whether all interthread memory accesses are ordered by synchronization
+-operations. While the last approach is more complex to implement, and while it
+-is more sensitive to OS scheduling, it is a general approach that works for
+-all classes of multithreaded programs. An important advantage of
+-happens-before data race detectors is that these do not report any false
+-positives.
+-</p>
+-<p>
+-DRD is based on the happens-before algorithm.
+-</p>
+-</div>
+-</div>
+-<div class="sect1" title="8.2. Using DRD">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="drd-manual.using-drd"></a>8.2. Using DRD</h2></div></div></div>
+-<div class="sect2" title="8.2.1. DRD Command-line Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.options"></a>8.2.1. DRD Command-line Options</h3></div></div></div>
+-<p>The following command-line options are available for controlling the
+-behavior of the DRD tool itself:</p>
+-<div class="variablelist">
+-<a name="drd.opts.list"></a><dl>
+-<dt><span class="term">
+-      <code class="option">--check-stack-var=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Controls whether DRD detects data races on stack
+-        variables. Verifying stack variables is disabled by default because
+-        most programs do not share stack variables over threads.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--exclusive-threshold=<n> [default: off]</code>
+-    </span></dt>
+-<dd><p>
+-        Print an error message if any mutex or writer lock has been
+-        held longer than the time specified in milliseconds. This
+-        option enables the detection of lock contention.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--join-list-vol=<n> [default: 10]</code>
+-    </span></dt>
+-<dd><p>
+-        Data races that occur between a statement at the end of one thread
+-	and another thread can be missed if memory access information is
+-	discarded immediately after a thread has been joined. This option
+-	allows to specify for how many joined threads memory access information
+-	should be retained.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">
+-        --first-race-only=<yes|no> [default: no]
+-      </code>
+-    </span></dt>
+-<dd><p>
+-        Whether to report only the first data race that has been detected on a
+-        memory location or all data races that have been detected on a memory
+-        location.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">
+-        --free-is-write=<yes|no> [default: no]
+-      </code>
+-    </span></dt>
+-<dd>
+-<p>
+-        Whether to report races between accessing memory and freeing
+-        memory. Enabling this option may cause DRD to run slightly
+-        slower. Notes:
+-	</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-	      Don't enable this option when using custom memory allocators
+-	      that use
+-	      the <code class="computeroutput">VG_USERREQ__MALLOCLIKE_BLOCK</code>
+-	      and <code class="computeroutput">VG_USERREQ__FREELIKE_BLOCK</code>
+-	      because that would result in false positives.
+-	    </p></li>
+-<li class="listitem"><p>Don't enable this option when using reference-counted
+-	      objects because that will result in false positives, even when
+-	      that code has been annotated properly with
+-	      <code class="computeroutput">ANNOTATE_HAPPENS_BEFORE</code>
+-	      and <code class="computeroutput">ANNOTATE_HAPPENS_AFTER</code>. See
+-	      e.g.  the output of the following command for an example:
+-	      <code class="computeroutput">valgrind --tool=drd --free-is-write=yes
+-		drd/tests/annotate_smart_pointer</code>.
+-	    </p></li>
+-</ul></div>
+-<p>
+-      </p>
+-</dd>
+-<dt><span class="term">
+-      <code class="option">
+-        --report-signal-unlocked=<yes|no> [default: yes]
+-      </code>
+-    </span></dt>
+-<dd><p>
+-        Whether to report calls to
+-        <code class="function">pthread_cond_signal</code> and
+-        <code class="function">pthread_cond_broadcast</code> where the mutex
+-        associated with the signal through
+-        <code class="function">pthread_cond_wait</code> or
+-        <code class="function">pthread_cond_timed_wait</code>is not locked at
+-        the time the signal is sent.  Sending a signal without holding
+-        a lock on the associated mutex is a common programming error
+-        which can cause subtle race conditions and unpredictable
+-        behavior. There exist some uncommon synchronization patterns
+-        however where it is safe to send a signal without holding a
+-        lock on the associated mutex.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--segment-merging=<yes|no> [default: yes]</code>
+-    </span></dt>
+-<dd><p>
+-        Controls segment merging. Segment merging is an algorithm to
+-        limit memory usage of the data race detection
+-        algorithm. Disabling segment merging may improve the accuracy
+-        of the so-called 'other segments' displayed in race reports
+-        but can also trigger an out of memory error.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--segment-merging-interval=<n> [default: 10]</code>
+-    </span></dt>
+-<dd><p>
+-        Perform segment merging only after the specified number of new
+-        segments have been created. This is an advanced configuration option
+-        that allows to choose whether to minimize DRD's memory usage by
+-        choosing a low value or to let DRD run faster by choosing a slightly
+-        higher value. The optimal value for this parameter depends on the
+-        program being analyzed. The default value works well for most programs.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--shared-threshold=<n> [default: off]</code>
+-    </span></dt>
+-<dd><p>
+-        Print an error message if a reader lock has been held longer
+-        than the specified time (in milliseconds). This option enables
+-        the detection of lock contention.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--show-confl-seg=<yes|no> [default: yes]</code>
+-    </span></dt>
+-<dd><p>
+-         Show conflicting segments in race reports. Since this
+-         information can help to find the cause of a data race, this
+-         option is enabled by default. Disabling this option makes the
+-         output of DRD more compact.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--show-stack-usage=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Print stack usage at thread exit time. When a program creates a large
+-        number of threads it becomes important to limit the amount of virtual
+-        memory allocated for thread stacks. This option makes it possible to
+-        observe how much stack memory has been used by each thread of the the
+-        client program. Note: the DRD tool itself allocates some temporary
+-        data on the client thread stack. The space necessary for this
+-        temporary data must be allocated by the client program when it
+-        allocates stack memory, but is not included in stack usage reported by
+-        DRD.
+-      </p></dd>
+-</dl>
+-</div>
+-<p>
+-The following options are available for monitoring the behavior of the
+-client program:
+-</p>
+-<div class="variablelist">
+-<a name="drd.debugopts.list"></a><dl>
+-<dt><span class="term">
+-      <code class="option">--trace-addr=<address> [default: none]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all load and store activity for the specified
+-        address. This option may be specified more than once.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--ptrace-addr=<address> [default: none]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all load and store activity for the specified address and keep
+-        doing that even after the memory at that address has been freed and
+-        reallocated.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-alloc=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all memory allocations and deallocations. May produce a huge
+-        amount of output.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-barrier=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all barrier activity.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-cond=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all condition variable activity.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-fork-join=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all thread creation and all thread termination events.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-hb=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace execution of the <code class="literal">ANNOTATE_HAPPENS_BEFORE()</code>,
+-	<code class="literal">ANNOTATE_HAPPENS_AFTER()</code> and
+-	<code class="literal">ANNOTATE_HAPPENS_DONE()</code> client requests.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-mutex=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all mutex activity.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-rwlock=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-         Trace all reader-writer lock activity.
+-      </p></dd>
+-<dt><span class="term">
+-      <code class="option">--trace-semaphore=<yes|no> [default: no]</code>
+-    </span></dt>
+-<dd><p>
+-        Trace all semaphore activity.
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="8.2.2. Detected Errors: Data Races">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.data-races"></a>8.2.2. Detected Errors: Data Races</h3></div></div></div>
+-<p>
+-DRD prints a message every time it detects a data race. Please keep
+-the following in mind when interpreting DRD's output:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      Every thread is assigned a <span class="emphasis"><em>thread ID</em></span> by the DRD
+-      tool. A thread ID is a number. Thread ID's start at one and are never
+-      recycled.
+-    </p></li>
+-<li class="listitem"><p>
+-      The term <span class="emphasis"><em>segment</em></span> refers to a consecutive
+-      sequence of load, store and synchronization operations, all
+-      issued by the same thread. A segment always starts and ends at a
+-      synchronization operation. Data race analysis is performed
+-      between segments instead of between individual load and store
+-      operations because of performance reasons.
+-    </p></li>
+-<li class="listitem"><p>
+-      There are always at least two memory accesses involved in a data
+-      race. Memory accesses involved in a data race are called
+-      <span class="emphasis"><em>conflicting memory accesses</em></span>. DRD prints a
+-      report for each memory access that conflicts with a past memory
+-      access.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-Below you can find an example of a message printed by DRD when it
+-detects a data race:
+-</p>
+-<pre class="programlisting">
+-$ valgrind --tool=drd --read-var-info=yes drd/tests/rwlock_race
+-...
+-==9466== Thread 3:
+-==9466== Conflicting load by thread 3 at 0x006020b8 size 4
+-==9466==    at 0x400B6C: thread_func (rwlock_race.c:29)
+-==9466==    by 0x4C291DF: vg_thread_wrapper (drd_pthread_intercepts.c:186)
+-==9466==    by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-==9466==    by 0x53250CC: clone (in /lib64/libc-2.8.so)
+-==9466== Location 0x6020b8 is 0 bytes inside local var "s_racy"
+-==9466== declared at rwlock_race.c:18, in frame #0 of thread 3
+-==9466== Other segment start (thread 2)
+-==9466==    at 0x4C2847D: pthread_rwlock_rdlock* (drd_pthread_intercepts.c:813)
+-==9466==    by 0x400B6B: thread_func (rwlock_race.c:28)
+-==9466==    by 0x4C291DF: vg_thread_wrapper (drd_pthread_intercepts.c:186)
+-==9466==    by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-==9466==    by 0x53250CC: clone (in /lib64/libc-2.8.so)
+-==9466== Other segment end (thread 2)
+-==9466==    at 0x4C28B54: pthread_rwlock_unlock* (drd_pthread_intercepts.c:912)
+-==9466==    by 0x400B84: thread_func (rwlock_race.c:30)
+-==9466==    by 0x4C291DF: vg_thread_wrapper (drd_pthread_intercepts.c:186)
+-==9466==    by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-==9466==    by 0x53250CC: clone (in /lib64/libc-2.8.so)
+-...
+-</pre>
+-<p>
+-The above report has the following meaning:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      The number in the column on the left is the process ID of the
+-      process being analyzed by DRD.
+-    </p></li>
+-<li class="listitem"><p>
+-      The first line ("Thread 3") tells you the thread ID for
+-      the thread in which context the data race has been detected.
+-    </p></li>
+-<li class="listitem"><p>
+-      The next line tells which kind of operation was performed (load or
+-      store) and by which thread. On the same line the start address and the
+-      number of bytes involved in the conflicting access are also displayed.
+-    </p></li>
+-<li class="listitem"><p>
+-      Next, the call stack of the conflicting access is displayed. If
+-      your program has been compiled with debug information
+-      (<code class="option">-g</code>), this call stack will include file names and
+-      line numbers. The two
+-      bottommost frames in this call stack (<code class="function">clone</code>
+-      and <code class="function">start_thread</code>) show how the NPTL starts
+-      a thread. The third frame
+-      (<code class="function">vg_thread_wrapper</code>) is added by DRD. The
+-      fourth frame (<code class="function">thread_func</code>) is the first
+-      interesting line because it shows the thread entry point, that
+-      is the function that has been passed as the third argument to
+-      <code class="function">pthread_create</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      Next, the allocation context for the conflicting address is
+-      displayed. For dynamically allocated data the allocation call
+-      stack is shown. For static variables and stack variables the
+-      allocation context is only shown when the option
+-      <code class="option">--read-var-info=yes</code> has been
+-      specified. Otherwise DRD will print <code class="computeroutput">Allocation
+-      context: unknown</code>.
+-    </p></li>
+-<li class="listitem">
+-<p>
+-      A conflicting access involves at least two memory accesses. For
+-      one of these accesses an exact call stack is displayed, and for
+-      the other accesses an approximate call stack is displayed,
+-      namely the start and the end of the segments of the other
+-      accesses. This information can be interpreted as follows:
+-      </p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>
+-            Start at the bottom of both call stacks, and count the
+-            number stack frames with identical function name, file
+-            name and line number. In the above example the three
+-            bottommost frames are identical
+-            (<code class="function">clone</code>,
+-            <code class="function">start_thread</code> and
+-            <code class="function">vg_thread_wrapper</code>).
+-          </p></li>
+-<li class="listitem"><p>
+-            The next higher stack frame in both call stacks now tells
+-            you between in which source code region the other memory
+-            access happened. The above output tells that the other
+-            memory access involved in the data race happened between
+-            source code lines 28 and 30 in file
+-            <code class="computeroutput">rwlock_race.c</code>.
+-          </p></li>
+-</ol></div>
+-<p>
+-    </p>
+-</li>
+-</ul></div>
+-<p>
+-</p>
+-</div>
+-<div class="sect2" title="8.2.3. Detected Errors: Lock Contention">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.lock-contention"></a>8.2.3. Detected Errors: Lock Contention</h3></div></div></div>
+-<p>
+-Threads must be able to make progress without being blocked for too long by
+-other threads. Sometimes a thread has to wait until a mutex or reader-writer
+-synchronization object is unlocked by another thread. This is called
+-<span class="emphasis"><em>lock contention</em></span>.
+-</p>
+-<p>
+-Lock contention causes delays. Such delays should be as short as
+-possible. The two command line options
+-<code class="literal">--exclusive-threshold=<n></code> and
+-<code class="literal">--shared-threshold=<n></code> make it possible to
+-detect excessive lock contention by making DRD report any lock that
+-has been held longer than the specified threshold. An example:
+-</p>
+-<pre class="programlisting">
+-$ valgrind --tool=drd --exclusive-threshold=10 drd/tests/hold_lock -i 500
+-...
+-==10668== Acquired at:
+-==10668==    at 0x4C267C8: pthread_mutex_lock (drd_pthread_intercepts.c:395)
+-==10668==    by 0x400D92: main (hold_lock.c:51)
+-==10668== Lock on mutex 0x7fefffd50 was held during 503 ms (threshold: 10 ms).
+-==10668==    at 0x4C26ADA: pthread_mutex_unlock (drd_pthread_intercepts.c:441)
+-==10668==    by 0x400DB5: main (hold_lock.c:55)
+-...
+-</pre>
+-<p>
+-The <code class="literal">hold_lock</code> test program holds a lock as long as
+-specified by the <code class="literal">-i</code> (interval) argument. The DRD
+-output reports that the lock acquired at line 51 in source file
+-<code class="literal">hold_lock.c</code> and released at line 55 was held during
+-503 ms, while a threshold of 10 ms was specified to DRD.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.4. Detected Errors: Misuse of the POSIX threads API">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.api-checks"></a>8.2.4. Detected Errors: Misuse of the POSIX threads API</h3></div></div></div>
+-<p>
+-  DRD is able to detect and report the following misuses of the POSIX
+-  threads API:
+-  </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-        Passing the address of one type of synchronization object
+-        (e.g. a mutex) to a POSIX API call that expects a pointer to
+-        another type of synchronization object (e.g. a condition
+-        variable).
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to unlock a mutex that has not been locked.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to unlock a mutex that was locked by another thread.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to lock a mutex of type
+-        <code class="literal">PTHREAD_MUTEX_NORMAL</code> or a spinlock
+-        recursively.
+-      </p></li>
+-<li class="listitem"><p>
+-        Destruction or deallocation of a locked mutex.
+-      </p></li>
+-<li class="listitem"><p>
+-        Sending a signal to a condition variable while no lock is held
+-        on the mutex associated with the condition variable.
+-      </p></li>
+-<li class="listitem"><p>
+-        Calling <code class="function">pthread_cond_wait</code> on a mutex
+-        that is not locked, that is locked by another thread or that
+-        has been locked recursively.
+-      </p></li>
+-<li class="listitem"><p>
+-        Associating two different mutexes with a condition variable
+-        through <code class="function">pthread_cond_wait</code>.
+-      </p></li>
+-<li class="listitem"><p>
+-        Destruction or deallocation of a condition variable that is
+-        being waited upon.
+-      </p></li>
+-<li class="listitem"><p>
+-        Destruction or deallocation of a locked reader-writer synchronization
+-        object.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to unlock a reader-writer synchronization object that was not
+-        locked by the calling thread.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to recursively lock a reader-writer synchronization object
+-        exclusively.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to pass the address of a user-defined reader-writer
+-        synchronization object to a POSIX threads function.
+-      </p></li>
+-<li class="listitem"><p>
+-        Attempts to pass the address of a POSIX reader-writer synchronization
+-        object to one of the annotations for user-defined reader-writer
+-        synchronization objects.
+-      </p></li>
+-<li class="listitem"><p>
+-        Reinitialization of a mutex, condition variable, reader-writer
+-        lock, semaphore or barrier.
+-      </p></li>
+-<li class="listitem"><p>
+-        Destruction or deallocation of a semaphore or barrier that is
+-        being waited upon.
+-      </p></li>
+-<li class="listitem"><p>
+-        Missing synchronization between barrier wait and barrier destruction.
+-      </p></li>
+-<li class="listitem"><p>
+-        Exiting a thread without first unlocking the spinlocks, mutexes or
+-        reader-writer synchronization objects that were locked by that thread.
+-      </p></li>
+-<li class="listitem"><p>
+-        Passing an invalid thread ID to <code class="function">pthread_join</code>
+-        or <code class="function">pthread_cancel</code>.
+-      </p></li>
+-</ul></div>
+-<p>
+-</p>
+-</div>
+-<div class="sect2" title="8.2.5. Client Requests">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.clientreqs"></a>8.2.5. Client Requests</h3></div></div></div>
+-<p>
+-Just as for other Valgrind tools it is possible to let a client program
+-interact with the DRD tool through client requests. In addition to the
+-client requests several macros have been defined that allow to use the
+-client requests in a convenient way.
+-</p>
+-<p>
+-The interface between client programs and the DRD tool is defined in
+-the header file <code class="literal"><valgrind/drd.h></code>. The
+-available macros and client requests are:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      The macro <code class="literal">DRD_GET_VALGRIND_THREADID</code> and the
+-      corresponding client
+-      request <code class="varname">VG_USERREQ__DRD_GET_VALGRIND_THREAD_ID</code>.
+-      Query the thread ID that has been assigned by the Valgrind core to the
+-      thread executing this client request. Valgrind's thread ID's start at
+-      one and are recycled in case a thread stops.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">DRD_GET_DRD_THREADID</code> and the corresponding
+-      client request <code class="varname">VG_USERREQ__DRD_GET_DRD_THREAD_ID</code>.
+-      Query the thread ID that has been assigned by DRD to the thread
+-      executing this client request. These are the thread ID's reported by DRD
+-      in data race reports and in trace messages. DRD's thread ID's start at
+-      one and are never recycled.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macros <code class="literal">DRD_IGNORE_VAR(x)</code>,
+-      <code class="literal">ANNOTATE_TRACE_MEMORY(&x)</code> and the corresponding
+-      client request <code class="varname">VG_USERREQ__DRD_START_SUPPRESSION</code>. Some
+-      applications contain intentional races. There exist e.g. applications
+-      where the same value is assigned to a shared variable from two different
+-      threads. It may be more convenient to suppress such races than to solve
+-      these. This client request allows to suppress such races.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">DRD_STOP_IGNORING_VAR(x)</code> and the
+-      corresponding client request
+-      <code class="varname">VG_USERREQ__DRD_FINISH_SUPPRESSION</code>. Tell DRD
+-      to no longer ignore data races for the address range that was suppressed
+-      either via the macro <code class="literal">DRD_IGNORE_VAR(x)</code> or via the
+-      client request <code class="varname">VG_USERREQ__DRD_START_SUPPRESSION</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">DRD_TRACE_VAR(x)</code>. Trace all load and store
+-      activity for the address range starting at <code class="literal">&x</code> and
+-      occupying <code class="literal">sizeof(x)</code> bytes. When DRD reports a data
+-      race on a specified variable, and it's not immediately clear which
+-      source code statements triggered the conflicting accesses, it can be
+-      very helpful to trace all activity on the offending memory location.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">DRD_STOP_TRACING_VAR(x)</code>. Stop tracing load
+-      and store activity for the address range starting
+-      at <code class="literal">&x</code> and occupying <code class="literal">sizeof(x)</code>
+-      bytes.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_TRACE_MEMORY(&x)</code>. Trace all
+-      load and store activity that touches at least the single byte at the
+-      address <code class="literal">&x</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The client request <code class="varname">VG_USERREQ__DRD_START_TRACE_ADDR</code>,
+-      which allows to trace all load and store activity for the specified
+-      address range.
+-    </p></li>
+-<li class="listitem"><p>
+-      The client
+-      request <code class="varname">VG_USERREQ__DRD_STOP_TRACE_ADDR</code>. Do no longer
+-      trace load and store activity for the specified address range.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_HAPPENS_BEFORE(addr)</code> tells DRD to
+-      insert a mark. Insert this macro just after an access to the variable at
+-      the specified address has been performed.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_HAPPENS_AFTER(addr)</code> tells DRD that
+-      the next access to the variable at the specified address should be
+-      considered to have happened after the access just before the latest
+-      <code class="literal">ANNOTATE_HAPPENS_BEFORE(addr)</code> annotation that
+-      references the same variable. The purpose of these two macros is to tell
+-      DRD about the order of inter-thread memory accesses implemented via
+-      atomic memory operations. See
+-      also <code class="literal">drd/tests/annotate_smart_pointer.cpp</code> for an
+-      example.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_RWLOCK_CREATE(rwlock)</code> tells DRD
+-      that the object at address <code class="literal">rwlock</code> is a
+-      reader-writer synchronization object that is not a
+-      <code class="literal">pthread_rwlock_t</code> synchronization object.  See
+-      also <code class="literal">drd/tests/annotate_rwlock.c</code> for an example.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_RWLOCK_DESTROY(rwlock)</code> tells DRD
+-      that the reader-writer synchronization object at
+-      address <code class="literal">rwlock</code> has been destroyed.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_WRITERLOCK_ACQUIRED(rwlock)</code> tells
+-      DRD that a writer lock has been acquired on the reader-writer
+-      synchronization object at address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_READERLOCK_ACQUIRED(rwlock)</code> tells
+-      DRD that a reader lock has been acquired on the reader-writer
+-      synchronization object at address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_RWLOCK_ACQUIRED(rwlock, is_w)</code>
+-      tells DRD that a writer lock (when <code class="literal">is_w != 0</code>) or that
+-      a reader lock (when <code class="literal">is_w == 0</code>) has been acquired on
+-      the reader-writer synchronization object at
+-      address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_WRITERLOCK_RELEASED(rwlock)</code> tells
+-      DRD that a writer lock has been released on the reader-writer
+-      synchronization object at address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_READERLOCK_RELEASED(rwlock)</code> tells
+-      DRD that a reader lock has been released on the reader-writer
+-      synchronization object at address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_RWLOCK_RELEASED(rwlock, is_w)</code>
+-      tells DRD that a writer lock (when <code class="literal">is_w != 0</code>) or that
+-      a reader lock (when <code class="literal">is_w == 0</code>) has been released on
+-      the reader-writer synchronization object at
+-      address <code class="literal">rwlock</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BARRIER_INIT(barrier, count,
+-      reinitialization_allowed)</code> tells DRD that a new barrier object
+-      at the address <code class="literal">barrier</code> has been initialized,
+-      that <code class="literal">count</code> threads participate in each barrier and
+-      also whether or not barrier reinitialization without intervening
+-      destruction should be reported as an error. See
+-      also <code class="literal">drd/tests/annotate_barrier.c</code> for an example.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BARRIER_DESTROY(barrier)</code>
+-      tells DRD that a barrier object is about to be destroyed.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BARRIER_WAIT_BEFORE(barrier)</code>
+-      tells DRD that waiting for a barrier will start.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BARRIER_WAIT_AFTER(barrier)</code>
+-      tells DRD that waiting for a barrier has finished.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BENIGN_RACE_SIZED(addr, size,
+-      descr)</code> tells DRD that any races detected on the specified
+-      address are benign and hence should not be
+-      reported. The <code class="literal">descr</code> argument is ignored but can be
+-      used to document why data races on <code class="literal">addr</code> are benign.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_BENIGN_RACE_STATIC(var, descr)</code>
+-      tells DRD that any races detected on the specified static variable are
+-      benign and hence should not be reported. The <code class="literal">descr</code>
+-      argument is ignored but can be used to document why data races
+-      on <code class="literal">var</code> are benign. Note: this macro can only be
+-      used in C++ programs and not in C programs.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_READS_BEGIN</code> tells
+-      DRD to ignore all memory loads performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_READS_END</code> tells
+-      DRD to stop ignoring the memory loads performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_WRITES_BEGIN</code> tells
+-      DRD to ignore all memory stores performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_WRITES_END</code> tells
+-      DRD to stop ignoring the memory stores performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN</code> tells
+-      DRD to ignore all memory accesses performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_IGNORE_READS_AND_WRITES_END</code> tells
+-      DRD to stop ignoring the memory accesses performed by the current thread.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_NEW_MEMORY(addr, size)</code> tells
+-      DRD that the specified memory range has been allocated by a custom
+-      memory allocator in the client program and that the client program
+-      will start using this memory range.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macro <code class="literal">ANNOTATE_THREAD_NAME(name)</code> tells DRD to
+-      associate the specified name with the current thread and to include this
+-      name in the error messages printed by DRD.
+-    </p></li>
+-<li class="listitem"><p>
+-      The macros <code class="literal">VALGRIND_MALLOCLIKE_BLOCK</code> and
+-      <code class="literal">VALGRIND_FREELIKE_BLOCK</code> from the Valgrind core are
+-      implemented;  they are described in 
+-      <a class="xref" href="manual-core-adv.html#manual-core-adv.clientreq" title="3.1. The Client Request mechanism">The Client Request mechanism</a>.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-Note: if you compiled Valgrind yourself, the header file
+-<code class="literal"><valgrind/drd.h></code> will have been installed in
+-the directory <code class="literal">/usr/include</code> by the command
+-<code class="literal">make install</code>. If you obtained Valgrind by
+-installing it as a package however, you will probably have to install
+-another package with a name like <code class="literal">valgrind-devel</code>
+-before Valgrind's header files are available.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.6. Debugging GNOME Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.gnome"></a>8.2.6. Debugging GNOME Programs</h3></div></div></div>
+-<p>
+-GNOME applications use the threading primitives provided by the
+-<code class="computeroutput">glib</code> and
+-<code class="computeroutput">gthread</code> libraries. These libraries
+-are built on top of POSIX threads, and hence are directly supported by
+-DRD. Please keep in mind that you have to call
+-<code class="function">g_thread_init</code> before creating any threads, or
+-DRD will report several data races on glib functions. See also the
+-<a class="ulink" href="http://library.gnome.org/devel/glib/stable/glib-Threads.html" target="_top">GLib
+-Reference Manual</a> for more information about
+-<code class="function">g_thread_init</code>.
+-</p>
+-<p>
+-One of the many facilities provided by the <code class="literal">glib</code>
+-library is a block allocator, called <code class="literal">g_slice</code>. You
+-have to disable this block allocator when using DRD by adding the
+-following to the shell environment variables:
+-<code class="literal">G_SLICE=always-malloc</code>. See also the <a class="ulink" href="http://library.gnome.org/devel/glib/stable/glib-Memory-Slices.html" target="_top">GLib
+-Reference Manual</a> for more information.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.7. Debugging Boost.Thread Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.boost.thread"></a>8.2.7. Debugging Boost.Thread Programs</h3></div></div></div>
+-<p>
+-The Boost.Thread library is the threading library included with the
+-cross-platform Boost Libraries. This threading library is an early
+-implementation of the upcoming C++0x threading library.
+-</p>
+-<p>
+-Applications that use the Boost.Thread library should run fine under DRD.
+-</p>
+-<p>
+-More information about Boost.Thread can be found here:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      Anthony Williams, <a class="ulink" href="http://www.boost.org/doc/libs/1_37_0/doc/html/thread.html" target="_top">Boost.Thread</a>
+-      Library Documentation, Boost website, 2007.
+-    </p></li>
+-<li class="listitem"><p>
+-      Anthony Williams, <a class="ulink" href="http://www.ddj.com/cpp/211600441" target="_top">What's New in Boost
+-      Threads?</a>, Recent changes to the Boost Thread library,
+-      Dr. Dobbs Magazine, October 2008.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-</div>
+-<div class="sect2" title="8.2.8. Debugging OpenMP Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.openmp"></a>8.2.8. Debugging OpenMP Programs</h3></div></div></div>
+-<p>
+-OpenMP stands for <span class="emphasis"><em>Open Multi-Processing</em></span>. The OpenMP
+-standard consists of a set of compiler directives for C, C++ and Fortran
+-programs that allows a compiler to transform a sequential program into a
+-parallel program. OpenMP is well suited for HPC applications and allows to
+-work at a higher level compared to direct use of the POSIX threads API. While
+-OpenMP ensures that the POSIX API is used correctly, OpenMP programs can still
+-contain data races. So it definitely makes sense to verify OpenMP programs
+-with a thread checking tool.
+-</p>
+-<p>
+-DRD supports OpenMP shared-memory programs generated by GCC. GCC
+-supports OpenMP since version 4.2.0.  GCC's runtime support
+-for OpenMP programs is provided by a library called
+-<code class="literal">libgomp</code>. The synchronization primitives implemented
+-in this library use Linux' futex system call directly, unless the
+-library has been configured with the
+-<code class="literal">--disable-linux-futex</code> option. DRD only supports
+-libgomp libraries that have been configured with this option and in
+-which symbol information is present. For most Linux distributions this
+-means that you will have to recompile GCC. See also the script
+-<code class="literal">drd/scripts/download-and-build-gcc</code> in the
+-Valgrind source tree for an example of how to compile GCC. You will
+-also have to make sure that the newly compiled
+-<code class="literal">libgomp.so</code> library is loaded when OpenMP programs
+-are started. This is possible by adding a line similar to the
+-following to your shell startup script:
+-</p>
+-<pre class="programlisting">
+-export LD_LIBRARY_PATH=~/gcc-4.4.0/lib64:~/gcc-4.4.0/lib:
+-</pre>
+-<p>
+-As an example, the test OpenMP test program
+-<code class="literal">drd/tests/omp_matinv</code> triggers a data race
+-when the option -r has been specified on the command line. The data
+-race is triggered by the following code:
+-</p>
+-<pre class="programlisting">
+-#pragma omp parallel for private(j)
+-for (j = 0; j < rows; j++)
+-{
+-  if (i != j)
+-  {
+-    const elem_t factor = a[j * cols + i];
+-    for (k = 0; k < cols; k++)
+-    {
+-      a[j * cols + k] -= a[i * cols + k] * factor;
+-    }
+-  }
+-}
+-</pre>
+-<p>
+-The above code is racy because the variable <code class="literal">k</code> has
+-not been declared private. DRD will print the following error message
+-for the above code:
+-</p>
+-<pre class="programlisting">
+-$ valgrind --tool=drd --check-stack-var=yes --read-var-info=yes drd/tests/omp_matinv 3 -t 2 -r
+-...
+-Conflicting store by thread 1/1 at 0x7fefffbc4 size 4
+-   at 0x4014A0: gj.omp_fn.0 (omp_matinv.c:203)
+-   by 0x401211: gj (omp_matinv.c:159)
+-   by 0x40166A: invert_matrix (omp_matinv.c:238)
+-   by 0x4019B4: main (omp_matinv.c:316)
+-Location 0x7fefffbc4 is 0 bytes inside local var "k"
+-declared at omp_matinv.c:160, in frame #0 of thread 1
+-...
+-</pre>
+-<p>
+-In the above output the function name <code class="function">gj.omp_fn.0</code>
+-has been generated by GCC from the function name
+-<code class="function">gj</code>. The allocation context information shows that the
+-data race has been caused by modifying the variable <code class="literal">k</code>.
+-</p>
+-<p>
+-Note: for GCC versions before 4.4.0, no allocation context information is
+-shown. With these GCC versions the most usable information in the above output
+-is the source file name and the line number where the data race has been
+-detected (<code class="literal">omp_matinv.c:203</code>).
+-</p>
+-<p>
+-For more information about OpenMP, see also 
+-<a class="ulink" href="http://openmp.org/" target="_top">openmp.org</a>.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.9. DRD and Custom Memory Allocators">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.cust-mem-alloc"></a>8.2.9. DRD and Custom Memory Allocators</h3></div></div></div>
+-<p>
+-DRD tracks all memory allocation events that happen via the
+-standard memory allocation and deallocation functions
+-(<code class="function">malloc</code>, <code class="function">free</code>,
+-<code class="function">new</code> and <code class="function">delete</code>), via entry
+-and exit of stack frames or that have been annotated with Valgrind's
+-memory pool client requests. DRD uses memory allocation and deallocation
+-information for two purposes:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      To know where the scope ends of POSIX objects that have not been
+-      destroyed explicitly. It is e.g. not required by the POSIX
+-      threads standard to call
+-      <code class="function">pthread_mutex_destroy</code> before freeing the
+-      memory in which a mutex object resides.
+-    </p></li>
+-<li class="listitem"><p>
+-      To know where the scope of variables ends. If e.g. heap memory
+-      has been used by one thread, that thread frees that memory, and
+-      another thread allocates and starts using that memory, no data
+-      races must be reported for that memory.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-It is essential for correct operation of DRD that the tool knows about
+-memory allocation and deallocation events. When analyzing a client program
+-with DRD that uses a custom memory allocator, either instrument the custom
+-memory allocator with the <code class="literal">VALGRIND_MALLOCLIKE_BLOCK</code>
+-and <code class="literal">VALGRIND_FREELIKE_BLOCK</code> macros or disable the
+-custom memory allocator.
+-</p>
+-<p>
+-As an example, the GNU libstdc++ library can be configured
+-to use standard memory allocation functions instead of memory pools by
+-setting the environment variable
+-<code class="literal">GLIBCXX_FORCE_NEW</code>. For more information, see also
+-the <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html" target="_top">libstdc++
+-manual</a>.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.10. DRD Versus Memcheck">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.drd-versus-memcheck"></a>8.2.10. DRD Versus Memcheck</h3></div></div></div>
+-<p>
+-It is essential for correct operation of DRD that there are no memory
+-errors such as dangling pointers in the client program. Which means that
+-it is a good idea to make sure that your program is Memcheck-clean
+-before you analyze it with DRD. It is possible however that some of
+-the Memcheck reports are caused by data races. In this case it makes
+-sense to run DRD before Memcheck.
+-</p>
+-<p>
+-So which tool should be run first? In case both DRD and Memcheck
+-complain about a program, a possible approach is to run both tools
+-alternatingly and to fix as many errors as possible after each run of
+-each tool until none of the two tools prints any more error messages.
+-</p>
+-</div>
+-<div class="sect2" title="8.2.11. Resource Requirements">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.resource-requirements"></a>8.2.11. Resource Requirements</h3></div></div></div>
+-<p>
+-The requirements of DRD with regard to heap and stack memory and the
+-effect on the execution time of client programs are as follows:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      When running a program under DRD with default DRD options,
+-      between 1.1 and 3.6 times more memory will be needed compared to
+-      a native run of the client program. More memory will be needed
+-      if loading debug information has been enabled
+-      (<code class="literal">--read-var-info=yes</code>).
+-    </p></li>
+-<li class="listitem"><p>
+-      DRD allocates some of its temporary data structures on the stack
+-      of the client program threads. This amount of data is limited to
+-      1 - 2 KB. Make sure that thread stacks are sufficiently large.
+-    </p></li>
+-<li class="listitem"><p>
+-      Most applications will run between 20 and 50 times slower under
+-      DRD than a native single-threaded run. The slowdown will be most
+-      noticeable for applications which perform frequent mutex lock /
+-      unlock operations.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-</div>
+-<div class="sect2" title="8.2.12. Hints and Tips for Effective Use of DRD">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.effective-use"></a>8.2.12. Hints and Tips for Effective Use of DRD</h3></div></div></div>
+-<p>
+-The following information may be helpful when using DRD:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      Make sure that debug information is present in the executable
+-      being analyzed, such that DRD can print function name and line
+-      number information in stack traces. Most compilers can be told
+-      to include debug information via compiler option
+-      <code class="option">-g</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      Compile with option <code class="option">-O1</code> instead of
+-      <code class="option">-O0</code>. This will reduce the amount of generated
+-      code, may reduce the amount of debug info and will speed up
+-      DRD's processing of the client program. For more information,
+-      see also <a class="xref" href="manual-core.html#manual-core.started" title="2.2. Getting started">Getting started</a>.
+-    </p></li>
+-<li class="listitem"><p>
+-      If DRD reports any errors on libraries that are part of your
+-      Linux distribution like e.g. <code class="literal">libc.so</code> or
+-      <code class="literal">libstdc++.so</code>, installing the debug packages
+-      for these libraries will make the output of DRD a lot more
+-      detailed.
+-    </p></li>
+-<li class="listitem">
+-<p>
+-      When using C++, do not send output from more than one thread to
+-      <code class="literal">std::cout</code>. Doing so would not only
+-      generate multiple data race reports, it could also result in
+-      output from several threads getting mixed up.  Either use
+-      <code class="function">printf</code> or do the following:
+-      </p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>Derive a class from <code class="literal">std::ostreambuf</code>
+-          and let that class send output line by line to
+-          <code class="literal">stdout</code>. This will avoid that individual
+-          lines of text produced by different threads get mixed
+-          up.</p></li>
+-<li class="listitem"><p>Create one instance of <code class="literal">std::ostream</code>
+-          for each thread. This makes stream formatting settings
+-          thread-local. Pass a per-thread instance of the class
+-          derived from <code class="literal">std::ostreambuf</code> to the
+-          constructor of each instance. </p></li>
+-<li class="listitem"><p>Let each thread send its output to its own instance of
+-          <code class="literal">std::ostream</code> instead of
+-          <code class="literal">std::cout</code>.</p></li>
+-</ol></div>
+-<p>
+-    </p>
+-</li>
+-</ul></div>
+-<p>
+-</p>
+-</div>
+-</div>
+-<div class="sect1" title="8.3. Using the POSIX Threads API Effectively">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="drd-manual.Pthreads"></a>8.3. Using the POSIX Threads API Effectively</h2></div></div></div>
+-<div class="sect2" title="8.3.1. Mutex types">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.mutex-types"></a>8.3.1. Mutex types</h3></div></div></div>
+-<p>
+-The Single UNIX Specification version two defines the following four
+-mutex types (see also the documentation of <a class="ulink" href="http://www.opengroup.org/onlinepubs/007908799/xsh/pthread_mutexattr_settype.html" target="_top"><code class="function">pthread_mutexattr_settype</code></a>):
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      <span class="emphasis"><em>normal</em></span>, which means that no error checking
+-      is performed, and that the mutex is non-recursive.
+-    </p></li>
+-<li class="listitem"><p>
+-      <span class="emphasis"><em>error checking</em></span>, which means that the mutex
+-      is non-recursive and that error checking is performed.
+-    </p></li>
+-<li class="listitem"><p>
+-      <span class="emphasis"><em>recursive</em></span>, which means that a mutex may be
+-      locked recursively.
+-    </p></li>
+-<li class="listitem"><p>
+-      <span class="emphasis"><em>default</em></span>, which means that error checking
+-      behavior is undefined, and that the behavior for recursive
+-      locking is also undefined. Or: portable code must neither
+-      trigger error conditions through the Pthreads API nor attempt to
+-      lock a mutex of default type recursively.
+-    </p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>
+-In complex applications it is not always clear from beforehand which
+-mutex will be locked recursively and which mutex will not be locked
+-recursively. Attempts lock a non-recursive mutex recursively will
+-result in race conditions that are very hard to find without a thread
+-checking tool. So either use the error checking mutex type and
+-consistently check the return value of Pthread API mutex calls, or use
+-the recursive mutex type.
+-</p>
+-</div>
+-<div class="sect2" title="8.3.2. Condition variables">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.condvar"></a>8.3.2. Condition variables</h3></div></div></div>
+-<p>
+-A condition variable allows one thread to wake up one or more other
+-threads. Condition variables are often used to notify one or more
+-threads about state changes of shared data. Unfortunately it is very
+-easy to introduce race conditions by using condition variables as the
+-only means of state information propagation. A better approach is to
+-let threads poll for changes of a state variable that is protected by
+-a mutex, and to use condition variables only as a thread wakeup
+-mechanism. See also the source file
+-<code class="computeroutput">drd/tests/monitor_example.cpp</code> for an
+-example of how to implement this concept in C++. The monitor concept
+-used in this example is a well known and very useful concept -- see
+-also Wikipedia for more information about the <a class="ulink" href="http://en.wikipedia.org/wiki/Monitor_(synchronization)" target="_top">monitor</a>
+-concept.
+-</p>
+-</div>
+-<div class="sect2" title="8.3.3. pthread_cond_timedwait and timeouts">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="drd-manual.pctw"></a>8.3.3. pthread_cond_timedwait and timeouts</h3></div></div></div>
+-<p>
+-Historically the function
+-<code class="function">pthread_cond_timedwait</code> only allowed the
+-specification of an absolute timeout, that is a timeout independent of
+-the time when this function was called. However, almost every call to
+-this function expresses a relative timeout. This typically happens by
+-passing the sum of
+-<code class="computeroutput">clock_gettime(CLOCK_REALTIME)</code> and a
+-relative timeout as the third argument. This approach is incorrect
+-since forward or backward clock adjustments by e.g. ntpd will affect
+-the timeout. A more reliable approach is as follows:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      When initializing a condition variable through
+-      <code class="function">pthread_cond_init</code>, specify that the timeout of
+-      <code class="function">pthread_cond_timedwait</code> will use the clock
+-      <code class="literal">CLOCK_MONOTONIC</code> instead of
+-      <code class="literal">CLOCK_REALTIME</code>. You can do this via
+-      <code class="computeroutput">pthread_condattr_setclock(...,
+-      CLOCK_MONOTONIC)</code>.
+-    </p></li>
+-<li class="listitem"><p>
+-      When calling <code class="function">pthread_cond_timedwait</code>, pass
+-      the sum of
+-      <code class="computeroutput">clock_gettime(CLOCK_MONOTONIC)</code>
+-      and a relative timeout as the third argument.
+-    </p></li>
+-</ul></div>
+-<p>
+-See also
+-<code class="computeroutput">drd/tests/monitor_example.cpp</code> for an
+-example.
+-</p>
+-</div>
+-</div>
+-<div class="sect1" title="8.4. Limitations">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="drd-manual.limitations"></a>8.4. Limitations</h2></div></div></div>
+-<p>DRD currently has the following limitations:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>
+-      DRD, just like Memcheck, will refuse to start on Linux
+-      distributions where all symbol information has been removed from
+-      <code class="filename">ld.so</code>. This is e.g. the case for the PPC editions
+-      of openSUSE and Gentoo. You will have to install the glibc debuginfo
+-      package on these platforms before you can use DRD. See also openSUSE
+-      bug <a class="ulink" href="http://bugzilla.novell.com/show_bug.cgi?id=396197" target="_top">
+-      396197</a> and Gentoo bug <a class="ulink" href="http://bugs.gentoo.org/214065" target="_top">214065</a>.
+-    </p></li>
+-<li class="listitem"><p>
+-      With gcc 4.4.3 and before, DRD may report data races on the C++
+-      class <code class="literal">std::string</code> in a multithreaded program. This is
+-      a know <code class="literal">libstdc++</code> issue -- see also GCC bug
+-      <a class="ulink" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518" target="_top">40518</a>
+-      for more information.
+-    </p></li>
+-<li class="listitem"><p>
+-      If you compile the DRD source code yourself, you need GCC 3.0 or
+-      later. GCC 2.95 is not supported.
+-    </p></li>
+-<li class="listitem"><p>
+-      Of the two POSIX threads implementations for Linux, only the
+-      NPTL (Native POSIX Thread Library) is supported. The older
+-      LinuxThreads library is not supported.
+-    </p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="8.5. Feedback">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="drd-manual.feedback"></a>8.5. Feedback</h2></div></div></div>
+-<p>
+-If you have any comments, suggestions, feedback or bug reports about
+-DRD, feel free to either post a message on the Valgrind users mailing
+-list or to file a bug report. See also <a class="ulink" href="http://www.valgrind.org/" target="_top">http://www.valgrind.org/</a> for more information.
+-</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="hg-manual.html"><< 7. Helgrind: a thread error detector</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="ms-manual.html">9. Massif: a heap profiler >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/faq.html b/docs/html/faq.html
+deleted file mode 100644
+index df6c7d5..0000000
+--- a/docs/html/faq.html
++++ /dev/null
+@@ -1,766 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind Frequently Asked Questions</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="FAQ.html" title="Valgrind FAQ">
+-<link rel="prev" href="FAQ.html" title="Valgrind FAQ">
+-<link rel="next" href="tech-docs.html" title="Valgrind Technical Documentation">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="FAQ.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="FAQ.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind FAQ</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="tech-docs.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="article" title="Valgrind Frequently Asked Questions">
+-<div class="titlepage">
+-<div><div><h2 class="title">
+-<a name="faq"></a>Valgrind Frequently Asked Questions</h2></div></div>
+-<hr>
+-</div>
+-<div class="qandaset">
+-<dl>
+-<dt>1.  <a href="faq.html#faq.background">Background</a>
+-</dt>
+-<dd>1.1. <a href="faq.html#faq.pronounce">How do you pronounce "Valgrind"?</a>
+-</dd>
+-<dd>1.2. <a href="faq.html#faq.whence">Where does the name "Valgrind" come from?</a>
+-</dd>
+-</dl>
+-<dl>
+-<dt>2.  <a href="faq.html#faq.installing">Compiling, installing and configuring</a>
+-</dt>
+-<dd>2.1. <a href="faq.html#faq.make_dies">When building Valgrind, 'make' dies partway with
+-  an assertion failure, something like this:</a>
+-</dd>
+-<dd>2.2. <a href="faq.html#faq.glibc_devel">When building Valgrind, 'make' fails with this:</a>
+-</dd>
+-</dl>
+-<dl>
+-<dt>3.  <a href="faq.html#faq.abort">Valgrind aborts unexpectedly</a>
+-</dt>
+-<dd>3.1. <a href="faq.html#faq.exit_errors">Programs run OK on Valgrind, but at exit produce a bunch of
+-    errors involving __libc_freeres and then die
+-    with a segmentation fault.</a>
+-</dd>
+-<dd>3.2. <a href="faq.html#faq.bugdeath">My (buggy) program dies like this:</a>
+-</dd>
+-<dd>3.3. <a href="faq.html#faq.msgdeath">My program dies, printing a message like this along the
+-    way:</a>
+-</dd>
+-<dd>3.4. <a href="faq.html#faq.java">I tried running a Java program (or another program that uses a
+-    just-in-time compiler) under Valgrind but something went wrong.
+-    Does Valgrind handle such programs?</a>
+-</dd>
+-</dl>
+-<dl>
+-<dt>4.  <a href="faq.html#faq.unexpected">Valgrind behaves unexpectedly</a>
+-</dt>
+-<dd>4.1. <a href="faq.html#faq.reports">My program uses the C++ STL and string classes.  Valgrind
+-    reports 'still reachable' memory leaks involving these classes at
+-    the exit of the program, but there should be none.</a>
+-</dd>
+-<dd>4.2. <a href="faq.html#faq.unhelpful">The stack traces given by Memcheck (or another tool) aren't
+-    helpful.  How can I improve them?</a>
+-</dd>
+-<dd>4.3. <a href="faq.html#faq.aliases">The stack traces given by Memcheck (or another tool) seem to
+-    have the wrong function name in them.  What's happening?</a>
+-</dd>
+-<dd>4.4. <a href="faq.html#faq.crashes">My program crashes normally, but doesn't under Valgrind, or vice
+-    versa.  What's happening?</a>
+-</dd>
+-<dd>4.5. <a href="faq.html#faq.hiddenbug"> Memcheck doesn't report any errors and I know my program has
+-    errors.</a>
+-</dd>
+-<dd>4.6. <a href="faq.html#faq.overruns">Why doesn't Memcheck find the array overruns in this
+-    program?</a>
+-</dd>
+-</dl>
+-<dl>
+-<dt>5.  <a href="faq.html#faq.misc">Miscellaneous</a>
+-</dt>
+-<dd>5.1. <a href="faq.html#faq.writesupp">I tried writing a suppression but it didn't work.  Can you
+-    write my suppression for me?</a>
+-</dd>
+-<dd>5.2. <a href="faq.html#faq.deflost">With Memcheck's memory leak detector, what's the
+-    difference between "definitely lost", "indirectly lost", "possibly
+-    lost", "still reachable", and "suppressed"?</a>
+-</dd>
+-<dd>5.3. <a href="faq.html#faq.undeferrors">Memcheck's uninitialised value errors are hard to track down,
+-    because they are often reported some time after they are caused.  Could 
+-    Memcheck record a trail of operations to better link the cause to the
+-    effect?  Or maybe just eagerly report any copies of uninitialised
+-    memory values?</a>
+-</dd>
+-<dd>5.4. <a href="faq.html#faq.attach">Is it possible to attach Valgrind to a program that is already
+-    running?</a>
+-</dd>
+-</dl>
+-<dl><dt>6.  <a href="faq.html#faq.help">How To Get Further Assistance</a>
+-</dt></dl>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.background"></a><h3 class="title">
+-<a name="faq.background"></a>1. Background</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2">1.1. <a href="faq.html#faq.pronounce">How do you pronounce "Valgrind"?</a><br>1.2. <a href="faq.html#faq.whence">Where does the name "Valgrind" come from?</a><br>
+-</td></tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.pronounce"></a><a name="q-pronounce"></a><b>1.1.</b>
+-</td>
+-<td align="left" valign="top"><b>How do you pronounce "Valgrind"?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-pronounce"></a></td>
+-<td align="left" valign="top">
+-<p>The "Val" as in the world "value".  The "grind" is pronounced
+-  with a short 'i' -- ie. "grinned" (rhymes with "tinned") rather than
+-  "grined" (rhymes with "find").</p>
+-<p>Don't feel bad: almost
+-  everyone gets it wrong at first.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.whence"></a><a name="q-whence"></a><b>1.2.</b>
+-</td>
+-<td align="left" valign="top"><b>Where does the name "Valgrind" come from?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-whence"></a></td>
+-<td align="left" valign="top">
+-<p>From Nordic mythology.  Originally (before release) the project
+-  was named Heimdall, after the watchman of the Nordic gods.  He could
+-  "see a hundred miles by day or night, hear the grass growing, see the
+-  wool growing on a sheep's back", etc.  This would have been a great
+-  name, but it was already taken by a security package "Heimdal".</p>
+-<p>Keeping with the Nordic theme, Valgrind was chosen.  Valgrind is
+-  the name of the main entrance to Valhalla (the Hall of the Chosen
+-  Slain in Asgard).  Over this entrance there resides a wolf and over it
+-  there is the head of a boar and on it perches a huge eagle, whose eyes
+-  can see to the far regions of the nine worlds.  Only those judged
+-  worthy by the guardians are allowed to pass through Valgrind.  All
+-  others are refused entrance.</p>
+-<p>It's not short for "value grinder", although that's not a bad
+-  guess.</p>
+-</td>
+-</tr>
+-</table>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.installing"></a><h3 class="title">
+-<a name="faq.installing"></a>2. Compiling, installing and configuring</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2">2.1. <a href="faq.html#faq.make_dies">When building Valgrind, 'make' dies partway with
+-  an assertion failure, something like this:</a><br>2.2. <a href="faq.html#faq.glibc_devel">When building Valgrind, 'make' fails with this:</a><br>
+-</td></tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.make_dies"></a><a name="q-make_dies"></a><b>2.1.</b>
+-</td>
+-<td align="left" valign="top">
+-<b>When building Valgrind, 'make' dies partway with
+-  an assertion failure, something like this:</b><pre class="screen">
+-% make: expand.c:489: allocated_variable_append: 
+-        Assertion 'current_variable_set_list->next != 0' failed.
+-</pre>
+-</td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-make_dies"></a></td>
+-<td align="left" valign="top"><p>It's probably a bug in 'make'.  Some, but not all, instances of
+-  version 3.79.1 have this bug, see
+-  <a class="ulink" href="http://www.mail-archive.com/bug-make@gnu.org/msg01658.html" target="_top">this</a>.
+-  Try upgrading to a more recent version of 'make'.  Alternatively, we have
+-  heard that unsetting the CFLAGS environment variable avoids the
+-  problem.</p></td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.glibc_devel"></a><a name="id653429"></a><b>2.2.</b>
+-</td>
+-<td align="left" valign="top">
+-<b>When building Valgrind, 'make' fails with this:</b><pre class="screen">
+-/usr/bin/ld: cannot find -lc
+-collect2: ld returned 1 exit status
+-</pre>
+-</td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"></td>
+-<td align="left" valign="top"><p>You need to install the glibc-static-devel package.</p></td>
+-</tr>
+-</table>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.abort"></a><h3 class="title">
+-<a name="faq.abort"></a>3. Valgrind aborts unexpectedly</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2">3.1. <a href="faq.html#faq.exit_errors">Programs run OK on Valgrind, but at exit produce a bunch of
+-    errors involving __libc_freeres and then die
+-    with a segmentation fault.</a><br>3.2. <a href="faq.html#faq.bugdeath">My (buggy) program dies like this:</a><br>3.3. <a href="faq.html#faq.msgdeath">My program dies, printing a message like this along the
+-    way:</a><br>3.4. <a href="faq.html#faq.java">I tried running a Java program (or another program that uses a
+-    just-in-time compiler) under Valgrind but something went wrong.
+-    Does Valgrind handle such programs?</a><br>
+-</td></tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.exit_errors"></a><a name="q-exit_errors"></a><b>3.1.</b>
+-</td>
+-<td align="left" valign="top"><b>Programs run OK on Valgrind, but at exit produce a bunch of
+-    errors involving <code class="literal">__libc_freeres</code> and then die
+-    with a segmentation fault.</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-exit_errors"></a></td>
+-<td align="left" valign="top">
+-<p>When the program exits, Valgrind runs the procedure
+-    <code class="function">__libc_freeres</code> in glibc.  This is a hook for
+-    memory debuggers, so they can ask glibc to free up any memory it has
+-    used.  Doing that is needed to ensure that Valgrind doesn't
+-    incorrectly report space leaks in glibc.</p>
+-<p>The problem is that running <code class="literal">__libc_freeres</code> in
+-    older glibc versions causes this crash.</p>
+-<p>Workaround for 1.1.X and later versions of Valgrind: use the
+-    <code class="option">--run-libc-freeres=no</code> option.  You may then get space
+-    leak reports for glibc allocations (please don't report these to
+-    the glibc people, since they are not real leaks), but at least the
+-    program runs.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.bugdeath"></a><a name="q-bugdeath"></a><b>3.2.</b>
+-</td>
+-<td align="left" valign="top">
+-<b>My (buggy) program dies like this:</b><pre class="screen">valgrind: m_mallocfree.c:248 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.</pre>
+-<b>or like this:</b><pre class="screen">valgrind: m_mallocfree.c:442 (mk_inuse_bszB): Assertion 'bszB != 0' failed.</pre>
+-<b>or otherwise aborts or crashes in m_mallocfree.c.</b>
+-</td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-bugdeath"></a></td>
+-<td align="left" valign="top"><p>If Memcheck (the memory checker) shows any invalid reads,
+-    invalid writes or invalid frees in your program, the above may
+-    happen.  Reason is that your program may trash Valgrind's low-level
+-    memory manager, which then dies with the above assertion, or
+-    something similar.  The cure is to fix your program so that it
+-    doesn't do any illegal memory accesses.  The above failure will
+-    hopefully go away after that.</p></td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.msgdeath"></a><a name="q-msgdeath"></a><b>3.3.</b>
+-</td>
+-<td align="left" valign="top">
+-<b>My program dies, printing a message like this along the
+-    way:</b><pre class="screen">vex x86->IR: unhandled instruction bytes: 0x66 0xF 0x2E 0x5</pre>
+-</td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-msgdeath"></a></td>
+-<td align="left" valign="top">
+-<p>One possibility is that your program has a bug and erroneously
+-    jumps to a non-code address, in which case you'll get a SIGILL signal.
+-    Memcheck may issue a warning just before this happens, but it might not
+-    if the jump happens to land in addressable memory.</p>
+-<p>Another possibility is that Valgrind does not handle the
+-    instruction.  If you are using an older Valgrind, a newer version might
+-    handle the instruction.  However, all instruction sets have some
+-    obscure, rarely used instructions.  Also, on amd64 there are an almost
+-    limitless number of combinations of redundant instruction prefixes, many
+-    of them undocumented but accepted by CPUs.  So Valgrind will still have
+-    decoding failures from time to time.  If this happens, please file a bug
+-    report.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.java"></a><a name="q-java"></a><b>3.4.</b>
+-</td>
+-<td align="left" valign="top"><b>I tried running a Java program (or another program that uses a
+-    just-in-time compiler) under Valgrind but something went wrong.
+-    Does Valgrind handle such programs?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-java"></a></td>
+-<td align="left" valign="top">
+-<p>Valgrind can handle dynamically generated code, so long as
+-    none of the generated code is later overwritten by other generated
+-    code.  If this happens, though, things will go wrong as Valgrind
+-    will continue running its translations of the old code (this is true
+-    on x86 and amd64, on PowerPC there are explicit cache flush
+-    instructions which Valgrind detects and honours).
+-    You should try running with
+-    <code class="option">--smc-check=all</code> in this case.  Valgrind will run
+-    much more slowly, but should detect the use of the out-of-date
+-    code.</p>
+-<p>Alternatively, if you have the source code to the JIT compiler
+-    you can insert calls to the
+-    <code class="computeroutput">VALGRIND_DISCARD_TRANSLATIONS</code>
+-    client request to mark out-of-date code, saving you from using
+-    <code class="option">--smc-check=all</code>.</p>
+-<p>Apart from this, in theory Valgrind can run any Java program
+-    just fine, even those that use JNI and are partially implemented in
+-    other languages like C and C++.  In practice, Java implementations
+-    tend to do nasty things that most programs do not, and Valgrind
+-    sometimes falls over these corner cases.</p>
+-<p>If your Java programs do not run under Valgrind, even with
+-    <code class="option">--smc-check=all</code>, please file a bug report and
+-    hopefully we'll be able to fix the problem.</p>
+-</td>
+-</tr>
+-</table>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.unexpected"></a><h3 class="title">
+-<a name="faq.unexpected"></a>4. Valgrind behaves unexpectedly</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2">4.1. <a href="faq.html#faq.reports">My program uses the C++ STL and string classes.  Valgrind
+-    reports 'still reachable' memory leaks involving these classes at
+-    the exit of the program, but there should be none.</a><br>4.2. <a href="faq.html#faq.unhelpful">The stack traces given by Memcheck (or another tool) aren't
+-    helpful.  How can I improve them?</a><br>4.3. <a href="faq.html#faq.aliases">The stack traces given by Memcheck (or another tool) seem to
+-    have the wrong function name in them.  What's happening?</a><br>4.4. <a href="faq.html#faq.crashes">My program crashes normally, but doesn't under Valgrind, or vice
+-    versa.  What's happening?</a><br>4.5. <a href="faq.html#faq.hiddenbug"> Memcheck doesn't report any errors and I know my program has
+-    errors.</a><br>4.6. <a href="faq.html#faq.overruns">Why doesn't Memcheck find the array overruns in this
+-    program?</a><br>
+-</td></tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.reports"></a><a name="q-reports"></a><b>4.1.</b>
+-</td>
+-<td align="left" valign="top"><b>My program uses the C++ STL and string classes.  Valgrind
+-    reports 'still reachable' memory leaks involving these classes at
+-    the exit of the program, but there should be none.</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-reports"></a></td>
+-<td align="left" valign="top">
+-<p>First of all: relax, it's probably not a bug, but a feature.
+-    Many implementations of the C++ standard libraries use their own
+-    memory pool allocators.  Memory for quite a number of destructed
+-    objects is not immediately freed and given back to the OS, but kept
+-    in the pool(s) for later re-use.  The fact that the pools are not
+-    freed at the exit of the program cause Valgrind to report this
+-    memory as still reachable.  The behaviour not to free pools at the
+-    exit could be called a bug of the library though.</p>
+-<p>Using GCC, you can force the STL to use malloc and to free
+-    memory as soon as possible by globally disabling memory caching.
+-    Beware!  Doing so will probably slow down your program, sometimes
+-    drastically.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>With GCC 2.91, 2.95, 3.0 and 3.1, compile all source using
+-        the STL with <code class="literal">-D__USE_MALLOC</code>. Beware!  This was
+-        removed from GCC starting with version 3.3.</p></li>
+-<li class="listitem"><p>With GCC 3.2.2 and later, you should export the
+-        environment variable <code class="literal">GLIBCPP_FORCE_NEW</code> before
+-        running your program.</p></li>
+-<li class="listitem"><p>With GCC 3.4 and later, that variable has changed name to
+-        <code class="literal">GLIBCXX_FORCE_NEW</code>.</p></li>
+-</ul></div>
+-<p>There are other ways to disable memory pooling: using the
+-    <code class="literal">malloc_alloc</code> template with your objects (not
+-    portable, but should work for GCC) or even writing your own memory
+-    allocators. But all this goes beyond the scope of this FAQ.  Start
+-    by reading 
+-    <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4_leak" target="_top">
+-         http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4_leak</a>
+-    if you absolutely want to do that. But beware: 
+-    allocators belong to the more messy parts of the STL and
+-    people went to great lengths to make the STL portable across
+-    platforms. Chances are good that your solution will work on your
+-    platform, but not on others.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.unhelpful"></a><a name="q-unhelpful"></a><b>4.2.</b>
+-</td>
+-<td align="left" valign="top"><b>The stack traces given by Memcheck (or another tool) aren't
+-    helpful.  How can I improve them?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-unhelpful"></a></td>
+-<td align="left" valign="top">
+-<p>If they're not long enough, use <code class="option">--num-callers</code>
+-    to make them longer.</p>
+-<p>If they're not detailed enough, make sure you are compiling
+-    with <code class="option">-g</code> to add debug information.  And don't strip
+-    symbol tables (programs should be unstripped unless you run 'strip'
+-    on them; some libraries ship stripped).</p>
+-<p>Also, for leak reports involving shared objects, if the shared
+-    object is unloaded before the program terminates, Valgrind will
+-    discard the debug information and the error message will be full of
+-    <code class="literal">???</code> entries.  The workaround here is to avoid
+-    calling <code class="function">dlclose</code> on these shared objects.</p>
+-<p>Also, <code class="option">-fomit-frame-pointer</code> and
+-    <code class="option">-fstack-check</code> can make stack traces worse.</p>
+-<p>Some example sub-traces:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>With debug information and unstripped (best):</p>
+-<pre class="programlisting">
+-Invalid write of size 1
+-   at 0x80483BF: really (malloc1.c:20)
+-   by 0x8048370: main (malloc1.c:9)
+-</pre>
+-</li>
+-<li class="listitem">
+-<p>With no debug information, unstripped:</p>
+-<pre class="programlisting">
+-Invalid write of size 1
+-   at 0x80483BF: really (in /auto/homes/njn25/grind/head5/a.out)
+-   by 0x8048370: main (in /auto/homes/njn25/grind/head5/a.out)
+-</pre>
+-</li>
+-<li class="listitem">
+-<p>With no debug information, stripped:</p>
+-<pre class="programlisting">
+-Invalid write of size 1
+-   at 0x80483BF: (within /auto/homes/njn25/grind/head5/a.out)
+-   by 0x8048370: (within /auto/homes/njn25/grind/head5/a.out)
+-   by 0x42015703: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+-   by 0x80482CC: (within /auto/homes/njn25/grind/head5/a.out)
+-</pre>
+-</li>
+-<li class="listitem">
+-<p>With debug information and -fomit-frame-pointer:</p>
+-<pre class="programlisting">
+-Invalid write of size 1
+-   at 0x80483C4: really (malloc1.c:20)
+-   by 0x42015703: __libc_start_main (in /lib/tls/libc-2.3.2.so)
+-   by 0x80482CC: ??? (start.S:81)
+-</pre>
+-</li>
+-<li class="listitem">
+-<p>A leak error message involving an unloaded shared object:</p>
+-<pre class="programlisting">
+-84 bytes in 1 blocks are possibly lost in loss record 488 of 713
+-   at 0x1B9036DA: operator new(unsigned) (vg_replace_malloc.c:132)
+-   by 0x1DB63EEB: ???
+-   by 0x1DB4B800: ???
+-   by 0x1D65E007: ???
+-   by 0x8049EE6: main (main.cpp:24)
+-</pre>
+-</li>
+-</ul></div>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.aliases"></a><a name="q-aliases"></a><b>4.3.</b>
+-</td>
+-<td align="left" valign="top"><b>The stack traces given by Memcheck (or another tool) seem to
+-    have the wrong function name in them.  What's happening?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-aliases"></a></td>
+-<td align="left" valign="top"><p>Occasionally Valgrind stack traces get the wrong function
+-    names.  This is caused by glibc using aliases to effectively give
+-    one function two names.  Most of the time Valgrind chooses a
+-    suitable name, but very occasionally it gets it wrong.  Examples we know
+-    of are printing <code class="function">bcmp</code> instead of
+-    <code class="function">memcmp</code>, <code class="function">index</code> instead of
+-    <code class="function">strchr</code>, and <code class="function">rindex</code> instead of
+-    <code class="function">strrchr</code>.</p></td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.crashes"></a><a name="q-crashes"></a><b>4.4.</b>
+-</td>
+-<td align="left" valign="top"><b>My program crashes normally, but doesn't under Valgrind, or vice
+-    versa.  What's happening?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-crashes"></a></td>
+-<td align="left" valign="top">
+-<p>When a program runs under Valgrind, its environment is slightly
+-    different to when it runs natively.  For example, the memory layout is
+-    different, and the way that threads are scheduled is different.</p>
+-<p>Most of the time this doesn't make any difference, but it can,
+-    particularly if your program is buggy.  For example, if your program
+-    crashes because it erroneously accesses memory that is unaddressable,
+-    it's possible that this memory will not be unaddressable when run under
+-    Valgrind.  Alternatively, if your program has data races, these may not
+-    manifest under Valgrind.</p>
+-<p>There isn't anything you can do to change this, it's just the
+-    nature of the way Valgrind works that it cannot exactly replicate a
+-    native execution environment.  In the case where your program crashes
+-    due to a memory error when run natively but not when run under Valgrind,
+-    in most cases Memcheck should identify the bad memory operation.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.hiddenbug"></a><a name="q-hiddenbug"></a><b>4.5.</b>
+-</td>
+-<td align="left" valign="top"><b> Memcheck doesn't report any errors and I know my program has
+-    errors.</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-hiddenbug"></a></td>
+-<td align="left" valign="top">
+-<p>There are two possible causes of this.</p>
+-<p>First, by default, Valgrind only traces the top-level process.
+-    So if your program spawns children, they won't be traced by Valgrind
+-    by default.  Also, if your program is started by a shell script,
+-    Perl script, or something similar, Valgrind will trace the shell, or
+-    the Perl interpreter, or equivalent.</p>
+-<p>To trace child processes, use the
+-    <code class="option">--trace-children=yes</code> option.</p>
+-<p>If you are tracing large trees of processes, it can be less
+-    disruptive to have the output sent over the network.  Give Valgrind
+-    the option <code class="option">--log-socket=127.0.0.1:12345</code> (if you want
+-    logging output sent to port <code class="literal">12345</code> on
+-    <code class="literal">localhost</code>).  You can use the valgrind-listener
+-    program to listen on that port:</p>
+-<pre class="programlisting">
+-valgrind-listener 12345
+-</pre>
+-<p>Obviously you have to start the listener process first.  See
+-    the manual for more details.</p>
+-<p>Second, if your program is statically linked, most Valgrind
+-    tools won't work as well, because they won't be able to replace
+-    certain functions, such as <code class="function">malloc</code>, with their own
+-    versions.  A key indicator of this is if Memcheck says:
+-</p>
+-<pre class="programlisting">
+-All heap blocks were freed -- no leaks are possible
+-</pre>
+-<p>
+-    when you know your program calls <code class="function">malloc</code>.  The
+-    workaround is to avoid statically linking your program.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.overruns"></a><a name="q-overruns"></a><b>4.6.</b>
+-</td>
+-<td align="left" valign="top">
+-<b>Why doesn't Memcheck find the array overruns in this
+-    program?</b><pre class="programlisting">
+-int static[5];
+-
+-int main(void)
+-{
+-  int stack[5];
+-
+-  static[5] = 0;
+-  stack [5] = 0;
+-          
+-  return 0;
+-}
+-</pre>
+-</td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-overruns"></a></td>
+-<td align="left" valign="top">
+-<p>Unfortunately, Memcheck doesn't do bounds checking on global
+-    or stack arrays.  We'd like to, but it's just not possible to do in
+-    a reasonable way that fits with how Memcheck works.  Sorry.</p>
+-<p>However, the experimental tool SGcheck can detect errors like
+-    this.  Run Valgrind with the <code class="option">--tool=exp-sgcheck</code> option
+-    to try it, but be aware that it is not as robust as Memcheck.</p>
+-</td>
+-</tr>
+-</table>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.misc"></a><h3 class="title">
+-<a name="faq.misc"></a>5. Miscellaneous</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2">5.1. <a href="faq.html#faq.writesupp">I tried writing a suppression but it didn't work.  Can you
+-    write my suppression for me?</a><br>5.2. <a href="faq.html#faq.deflost">With Memcheck's memory leak detector, what's the
+-    difference between "definitely lost", "indirectly lost", "possibly
+-    lost", "still reachable", and "suppressed"?</a><br>5.3. <a href="faq.html#faq.undeferrors">Memcheck's uninitialised value errors are hard to track down,
+-    because they are often reported some time after they are caused.  Could 
+-    Memcheck record a trail of operations to better link the cause to the
+-    effect?  Or maybe just eagerly report any copies of uninitialised
+-    memory values?</a><br>5.4. <a href="faq.html#faq.attach">Is it possible to attach Valgrind to a program that is already
+-    running?</a><br>
+-</td></tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.writesupp"></a><a name="q-writesupp"></a><b>5.1.</b>
+-</td>
+-<td align="left" valign="top"><b>I tried writing a suppression but it didn't work.  Can you
+-    write my suppression for me?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-writesupp"></a></td>
+-<td align="left" valign="top">
+-<p>Yes!  Use the <code class="option">--gen-suppressions=yes</code> feature
+-    to spit out suppressions automatically for you.  You can then edit
+-    them if you like, eg.  combining similar automatically generated
+-    suppressions using wildcards like <code class="literal">'*'</code>.</p>
+-<p>If you really want to write suppressions by hand, read the
+-    manual carefully.  Note particularly that C++ function names must be
+-    mangled (that is, not demangled).</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.deflost"></a><a name="q-deflost"></a><b>5.2.</b>
+-</td>
+-<td align="left" valign="top"><b>With Memcheck's memory leak detector, what's the
+-    difference between "definitely lost", "indirectly lost", "possibly
+-    lost", "still reachable", and "suppressed"?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-deflost"></a></td>
+-<td align="left" valign="top">
+-<p>The details are in the Memcheck section of the user manual.</p>
+-<p>In short:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>"definitely lost" means your program is leaking memory --
+-        fix those leaks!</p></li>
+-<li class="listitem"><p>"indirectly lost" means your program is leaking memory in
+-        a pointer-based structure.  (E.g. if the root node of a binary tree
+-        is "definitely lost", all the children will be "indirectly lost".) 
+-        If you fix the "definitely lost" leaks, the "indirectly lost" leaks
+-        should go away.
+-        </p></li>
+-<li class="listitem"><p>"possibly lost" means your program is leaking
+-        memory, unless you're doing unusual things with pointers that could
+-        cause them to point into the middle of an allocated block;  see the
+-        user manual for some possible causes.  Use
+-        <code class="option">--show-possibly-lost=no</code> if you don't want to see
+-        these reports.</p></li>
+-<li class="listitem"><p>"still reachable" means your program is probably ok -- it
+-        didn't free some memory it could have.  This is quite common and
+-        often reasonable.  Don't use
+-        <code class="option">--show-reachable=yes</code> if you don't want to see
+-        these reports.</p></li>
+-<li class="listitem"><p>"suppressed" means that a leak error has been suppressed.
+-        There are some suppressions in the default suppression files.
+-        You can ignore suppressed errors.</p></li>
+-</ul></div>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.undeferrors"></a><a name="q-undeferrors"></a><b>5.3.</b>
+-</td>
+-<td align="left" valign="top"><b>Memcheck's uninitialised value errors are hard to track down,
+-    because they are often reported some time after they are caused.  Could 
+-    Memcheck record a trail of operations to better link the cause to the
+-    effect?  Or maybe just eagerly report any copies of uninitialised
+-    memory values?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-undeferrors"></a></td>
+-<td align="left" valign="top">
+-<p>Prior to version 3.4.0, the answer was "we don't know how to do it
+-    without huge performance penalties".  As of 3.4.0, try using the
+-    <code class="option">--track-origins=yes</code> option.  It will run slower than
+-    usual, but will give you extra information about the origin of
+-    uninitialised values.</p>
+-<p>Or if you want to do it the old fashioned way, you can use the
+-    client request
+-    <code class="computeroutput">VALGRIND_CHECK_VALUE_IS_DEFINED</code> to help
+-    track these errors down -- work backwards from the point where the
+-    uninitialised error occurs, checking suspect values until you find the
+-    cause.  This requires editing, compiling and re-running your program
+-    multiple times, which is a pain, but still easier than debugging the
+-    problem without Memcheck's help.</p>
+-<p>As for eager reporting of copies of uninitialised memory values,
+-    this has been suggested multiple times.  Unfortunately, almost all
+-    programs legitimately copy uninitialised memory values around (because
+-    compilers pad structs to preserve alignment) and eager checking leads to
+-    hundreds of false positives.  Therefore Memcheck does not support eager
+-    checking at this time.</p>
+-</td>
+-</tr>
+-<tr><td colspan="2"> </td></tr>
+-<tr class="question">
+-<td align="left" valign="top">
+-<a name="faq.attach"></a><a name="q-attach"></a><b>5.4.</b>
+-</td>
+-<td align="left" valign="top"><b>Is it possible to attach Valgrind to a program that is already
+-    running?</b></td>
+-</tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-attach"></a></td>
+-<td align="left" valign="top">
+-<p>No.  The environment that Valgrind provides for running programs
+-    is significantly different to that for normal programs, e.g. due to
+-    different layout of memory.  Therefore Valgrind has to have full control
+-    from the very start.</p>
+-<p>It is possible to achieve something like this by running your
+-    program without any instrumentation (which involves a slow-down of about
+-    5x, less than that of most tools), and then adding instrumentation once
+-    you get to a point of interest.  Support for this must be provided by
+-    the tool, however, and Callgrind is the only tool that currently has
+-    such support.  See the instructions on the
+-    <code class="computeroutput">callgrind_control</code> program for details.
+-    </p>
+-</td>
+-</tr>
+-</table>
+-<br><table width="100%" summary="Q and A Div" cellpadding="2" cellspacing="2" border="0">
+-<tr class="qandadiv"><td align="left" valign="top" colspan="2">
+-<a name="faq.help"></a><h3 class="title">
+-<a name="faq.help"></a>6. How To Get Further Assistance</h3>
+-</td></tr>
+-<tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"></td></tr>
+-<tr class="answer">
+-<td align="left" valign="top"><a name="a-help"></a></td>
+-<td align="left" valign="top">
+-<p>Read the appropriate section(s) of the 
+-  <a class="ulink" href="http://www.valgrind.org/docs/manual/index.html" target="_top">Valgrind Documentation</a>.</p>
+-<p><a class="ulink" href="http://search.gmane.org" target="_top">Search</a> the 
+-  <a class="ulink" href="http://news.gmane.org/gmane.comp.debugging.valgrind" target="_top">valgrind-users</a> mailing list archives, using the group name 
+-  <code class="computeroutput">gmane.comp.debugging.valgrind</code>.</p>
+-<p>If you think an answer in this FAQ is incomplete or inaccurate, please
+-  e-mail <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a>.</p>
+-<p>If you have tried all of these things and are still
+-  stuck, you can try mailing the
+-  <a class="ulink" href="http://www.valgrind.org/support/mailing_lists.html" target="_top">valgrind-users mailing list</a>. 
+-  Note that an email has a better change of being answered usefully if it is
+-  clearly written.  Also remember that, despite the fact that most of the
+-  community are very helpful and responsive to emailed questions, you are
+-  probably requesting help from unpaid volunteers, so you have no guarantee
+-  of receiving an answer.</p>
+-</td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="FAQ.html"><< Valgrind FAQ</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="FAQ.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="tech-docs.html">Valgrind Technical Documentation >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/hg-manual.html b/docs/html/hg-manual.html
+deleted file mode 100644
+index f0d4b32..0000000
+--- a/docs/html/hg-manual.html
++++ /dev/null
+@@ -1,1110 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>7. Helgrind: a thread error detector</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="cl-manual.html" title="6. Callgrind: a call-graph generating cache and branch prediction profiler">
+-<link rel="next" href="drd-manual.html" title="8. DRD: a thread error detector">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="cl-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="drd-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="7. Helgrind: a thread error detector">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="hg-manual"></a>7. Helgrind: a thread error detector</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.overview">7.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.api-checks">7.2. Detected errors: Misuses of the POSIX pthreads API</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.lock-orders">7.3. Detected errors: Inconsistent Lock Orderings</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.data-races">7.4. Detected errors: Data Races</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.example">7.4.1. A Simple Data Race</a></span></dt>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.algorithm">7.4.2. Helgrind's Race Detection Algorithm</a></span></dt>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.errmsgs">7.4.3. Interpreting Race Error Messages</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.effective-use">7.5. Hints and Tips for Effective Use of Helgrind</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.options">7.6. Helgrind Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.client-requests">7.7. Helgrind Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.todolist">7.8. A To-Do List for Helgrind</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=helgrind</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="7.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.overview"></a>7.1. Overview</h2></div></div></div>
+-<p>Helgrind is a Valgrind tool for detecting synchronisation errors
+-in C, C++ and Fortran programs that use the POSIX pthreads
+-threading primitives.</p>
+-<p>The main abstractions in POSIX pthreads are: a set of threads
+-sharing a common address space, thread creation, thread joining,
+-thread exit, mutexes (locks), condition variables (inter-thread event
+-notifications), reader-writer locks, spinlocks, semaphores and
+-barriers.</p>
+-<p>Helgrind can detect three classes of errors, which are discussed
+-in detail in the next three sections:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p><a class="link" href="hg-manual.html#hg-manual.api-checks" title="7.2. Detected errors: Misuses of the POSIX pthreads API">
+-        Misuses of the POSIX pthreads API.</a></p></li>
+-<li class="listitem"><p><a class="link" href="hg-manual.html#hg-manual.lock-orders" title="7.3. Detected errors: Inconsistent Lock Orderings">
+-        Potential deadlocks arising from lock
+-        ordering problems.</a></p></li>
+-<li class="listitem"><p><a class="link" href="hg-manual.html#hg-manual.data-races" title="7.4. Detected errors: Data Races">
+-        Data races -- accessing memory without adequate locking
+-                      or synchronisation</a>.
+-  </p></li>
+-</ol></div>
+-<p>Problems like these often result in unreproducible,
+-timing-dependent crashes, deadlocks and other misbehaviour, and
+-can be difficult to find by other means.</p>
+-<p>Helgrind is aware of all the pthread abstractions and tracks
+-their effects as accurately as it can.  On x86 and amd64 platforms, it
+-understands and partially handles implicit locking arising from the
+-use of the LOCK instruction prefix.  On PowerPC/POWER and ARM
+-platforms, it partially handles implicit locking arising from 
+-load-linked and store-conditional instruction pairs.
+-</p>
+-<p>Helgrind works best when your application uses only the POSIX
+-pthreads API.  However, if you want to use custom threading 
+-primitives, you can describe their behaviour to Helgrind using the
+-<code class="varname">ANNOTATE_*</code> macros defined
+-in <code class="varname">helgrind.h</code>.</p>
+-<p>Following those is a section containing 
+-<a class="link" href="hg-manual.html#hg-manual.effective-use" title="7.5. Hints and Tips for Effective Use of Helgrind">
+-hints and tips on how to get the best out of Helgrind.</a>
+-</p>
+-<p>Then there is a
+-<a class="link" href="hg-manual.html#hg-manual.options" title="7.6. Helgrind Command-line Options">summary of command-line
+-options.</a>
+-</p>
+-<p>Finally, there is 
+-<a class="link" href="hg-manual.html#hg-manual.todolist" title="7.8. A To-Do List for Helgrind">a brief summary of areas in which Helgrind
+-could be improved.</a>
+-</p>
+-</div>
+-<div class="sect1" title="7.2. Detected errors: Misuses of the POSIX pthreads API">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.api-checks"></a>7.2. Detected errors: Misuses of the POSIX pthreads API</h2></div></div></div>
+-<p>Helgrind intercepts calls to many POSIX pthreads functions, and
+-is therefore able to report on various common problems.  Although
+-these are unglamourous errors, their presence can lead to undefined
+-program behaviour and hard-to-find bugs later on.  The detected errors
+-are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>unlocking an invalid mutex</p></li>
+-<li class="listitem"><p>unlocking a not-locked mutex</p></li>
+-<li class="listitem"><p>unlocking a mutex held by a different
+-                 thread</p></li>
+-<li class="listitem"><p>destroying an invalid or a locked mutex</p></li>
+-<li class="listitem"><p>recursively locking a non-recursive mutex</p></li>
+-<li class="listitem"><p>deallocation of memory that contains a
+-                 locked mutex</p></li>
+-<li class="listitem"><p>passing mutex arguments to functions expecting
+-                 reader-writer lock arguments, and vice
+-                 versa</p></li>
+-<li class="listitem"><p>when a POSIX pthread function fails with an
+-                 error code that must be handled</p></li>
+-<li class="listitem"><p>when a thread exits whilst still holding locked
+-                 locks</p></li>
+-<li class="listitem"><p>calling <code class="function">pthread_cond_wait</code>
+-                 with a not-locked mutex, an invalid mutex,
+-                 or one locked by a different
+-                 thread</p></li>
+-<li class="listitem"><p>inconsistent bindings between condition
+-                 variables and their associated mutexes</p></li>
+-<li class="listitem"><p>invalid or duplicate initialisation of a pthread
+-                 barrier</p></li>
+-<li class="listitem"><p>initialisation of a pthread barrier on which threads
+-                 are still waiting</p></li>
+-<li class="listitem"><p>destruction of a pthread barrier object which was
+-                 never initialised, or on which threads are still
+-                 waiting</p></li>
+-<li class="listitem"><p>waiting on an uninitialised pthread
+-                 barrier</p></li>
+-<li class="listitem"><p>for all of the pthreads functions that Helgrind
+-                 intercepts, an error is reported, along with a stack
+-                 trace, if the system threading library routine returns
+-                 an error code, even if Helgrind itself detected no
+-                 error</p></li>
+-</ul></div>
+-<p>Checks pertaining to the validity of mutexes are generally also
+-performed for reader-writer locks.</p>
+-<p>Various kinds of this-can't-possibly-happen events are also
+-reported.  These usually indicate bugs in the system threading
+-library.</p>
+-<p>Reported errors always contain a primary stack trace indicating
+-where the error was detected.  They may also contain auxiliary stack
+-traces giving additional information.  In particular, most errors
+-relating to mutexes will also tell you where that mutex first came to
+-Helgrind's attention (the "<code class="computeroutput">was first observed
+-at</code>" part), so you have a chance of figuring out which
+-mutex it is referring to.  For example:</p>
+-<pre class="programlisting">
+-Thread #1 unlocked a not-locked lock at 0x7FEFFFA90
+-   at 0x4C2408D: pthread_mutex_unlock (hg_intercepts.c:492)
+-   by 0x40073A: nearly_main (tc09_bad_unlock.c:27)
+-   by 0x40079B: main (tc09_bad_unlock.c:50)
+-  Lock at 0x7FEFFFA90 was first observed
+-   at 0x4C25D01: pthread_mutex_init (hg_intercepts.c:326)
+-   by 0x40071F: nearly_main (tc09_bad_unlock.c:23)
+-   by 0x40079B: main (tc09_bad_unlock.c:50)
+-</pre>
+-<p>Helgrind has a way of summarising thread identities, as
+-you see here with the text "<code class="computeroutput">Thread
+-#1</code>".  This is so that it can speak about threads and
+-sets of threads without overwhelming you with details.  See 
+-<a class="link" href="hg-manual.html#hg-manual.data-races.errmsgs" title="7.4.3. Interpreting Race Error Messages">below</a>
+-for more information on interpreting error messages.</p>
+-</div>
+-<div class="sect1" title="7.3. Detected errors: Inconsistent Lock Orderings">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.lock-orders"></a>7.3. Detected errors: Inconsistent Lock Orderings</h2></div></div></div>
+-<p>In this section, and in general, to "acquire" a lock simply
+-means to lock that lock, and to "release" a lock means to unlock
+-it.</p>
+-<p>Helgrind monitors the order in which threads acquire locks.
+-This allows it to detect potential deadlocks which could arise from
+-the formation of cycles of locks.  Detecting such inconsistencies is
+-useful because, whilst actual deadlocks are fairly obvious, potential
+-deadlocks may never be discovered during testing and could later lead
+-to hard-to-diagnose in-service failures.</p>
+-<p>The simplest example of such a problem is as
+-follows.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Imagine some shared resource R, which, for whatever
+-  reason, is guarded by two locks, L1 and L2, which must both be held
+-  when R is accessed.</p></li>
+-<li class="listitem"><p>Suppose a thread acquires L1, then L2, and proceeds
+-  to access R.  The implication of this is that all threads in the
+-  program must acquire the two locks in the order first L1 then L2.
+-  Not doing so risks deadlock.</p></li>
+-<li class="listitem"><p>The deadlock could happen if two threads -- call them
+-  T1 and T2 -- both want to access R.  Suppose T1 acquires L1 first,
+-  and T2 acquires L2 first.  Then T1 tries to acquire L2, and T2 tries
+-  to acquire L1, but those locks are both already held.  So T1 and T2
+-  become deadlocked.</p></li>
+-</ul></div>
+-<p>Helgrind builds a directed graph indicating the order in which
+-locks have been acquired in the past.  When a thread acquires a new
+-lock, the graph is updated, and then checked to see if it now contains
+-a cycle.  The presence of a cycle indicates a potential deadlock involving
+-the locks in the cycle.</p>
+-<p>In general, Helgrind will choose two locks involved in the cycle
+-and show you how their acquisition ordering has become inconsistent.
+-It does this by showing the program points that first defined the
+-ordering, and the program points which later violated it.  Here is a
+-simple example involving just two locks:</p>
+-<pre class="programlisting">
+-Thread #1: lock order "0x7FF0006D0 before 0x7FF0006A0" violated
+-
+-Observed (incorrect) order is: acquisition of lock at 0x7FF0006A0
+-   at 0x4C2BC62: pthread_mutex_lock (hg_intercepts.c:494)
+-   by 0x400825: main (tc13_laog1.c:23)
+-
+- followed by a later acquisition of lock at 0x7FF0006D0
+-   at 0x4C2BC62: pthread_mutex_lock (hg_intercepts.c:494)
+-   by 0x400853: main (tc13_laog1.c:24)
+-
+-Required order was established by acquisition of lock at 0x7FF0006D0
+-   at 0x4C2BC62: pthread_mutex_lock (hg_intercepts.c:494)
+-   by 0x40076D: main (tc13_laog1.c:17)
+-
+- followed by a later acquisition of lock at 0x7FF0006A0
+-   at 0x4C2BC62: pthread_mutex_lock (hg_intercepts.c:494)
+-   by 0x40079B: main (tc13_laog1.c:18)
+-</pre>
+-<p>When there are more than two locks in the cycle, the error is
+-equally serious.  However, at present Helgrind does not show the locks
+-involved, sometimes because it that information is not available, but
+-also so as to avoid flooding you with information.  For example, here
+-is an example involving a cycle of five locks from a naive
+-implementation the famous Dining Philosophers problem
+-(see <code class="computeroutput">helgrind/tests/tc14_laog_dinphils.c</code>).
+-In this case Helgrind has detected that all 5 philosophers could
+-simultaneously pick up their left fork and then deadlock whilst
+-waiting to pick up their right forks.</p>
+-<pre class="programlisting">
+-Thread #6: lock order "0x6010C0 before 0x601160" violated
+-
+-Observed (incorrect) order is: acquisition of lock at 0x601160
+-   (stack unavailable)
+-
+- followed by a later acquisition of lock at 0x6010C0
+-   at 0x4C2BC62: pthread_mutex_lock (hg_intercepts.c:494)
+-   by 0x4007DE: dine (tc14_laog_dinphils.c:19)
+-   by 0x4C2CBE7: mythread_wrapper (hg_intercepts.c:219)
+-   by 0x4E369C9: start_thread (pthread_create.c:300)
+-</pre>
+-</div>
+-<div class="sect1" title="7.4. Detected errors: Data Races">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.data-races"></a>7.4. Detected errors: Data Races</h2></div></div></div>
+-<p>A data race happens, or could happen, when two threads access a
+-shared memory location without using suitable locks or other
+-synchronisation to ensure single-threaded access.  Such missing
+-locking can cause obscure timing dependent bugs.  Ensuring programs
+-are race-free is one of the central difficulties of threaded
+-programming.</p>
+-<p>Reliably detecting races is a difficult problem, and most
+-of Helgrind's internals are devoted to dealing with it.  
+-We begin with a simple example.</p>
+-<div class="sect2" title="7.4.1. A Simple Data Race">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="hg-manual.data-races.example"></a>7.4.1. A Simple Data Race</h3></div></div></div>
+-<p>About the simplest possible example of a race is as follows.  In
+-this program, it is impossible to know what the value
+-of <code class="computeroutput">var</code> is at the end of the program.
+-Is it 2 ?  Or 1 ?</p>
+-<pre class="programlisting">
+-#include <pthread.h>
+-
+-int var = 0;
+-
+-void* child_fn ( void* arg ) {
+-   var++; /* Unprotected relative to parent */ /* this is line 6 */
+-   return NULL;
+-}
+-
+-int main ( void ) {
+-   pthread_t child;
+-   pthread_create(&child, NULL, child_fn, NULL);
+-   var++; /* Unprotected relative to child */ /* this is line 13 */
+-   pthread_join(child, NULL);
+-   return 0;
+-}
+-</pre>
+-<p>The problem is there is nothing to
+-stop <code class="varname">var</code> being updated simultaneously
+-by both threads.  A correct program would 
+-protect <code class="varname">var</code> with a lock of type
+-<code class="function">pthread_mutex_t</code>, which is acquired
+-before each access and released afterwards.  Helgrind's output for
+-this program is:</p>
+-<pre class="programlisting">
+-Thread #1 is the program's root thread
+-
+-Thread #2 was created
+-   at 0x511C08E: clone (in /lib64/libc-2.8.so)
+-   by 0x4E333A4: do_clone (in /lib64/libpthread-2.8.so)
+-   by 0x4E33A30: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.8.so)
+-   by 0x4C299D4: pthread_create@* (hg_intercepts.c:214)
+-   by 0x400605: main (simple_race.c:12)
+-
+-Possible data race during read of size 4 at 0x601038 by thread #1
+-Locks held: none
+-   at 0x400606: main (simple_race.c:13)
+-
+-This conflicts with a previous write of size 4 by thread #2
+-Locks held: none
+-   at 0x4005DC: child_fn (simple_race.c:6)
+-   by 0x4C29AFF: mythread_wrapper (hg_intercepts.c:194)
+-   by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-   by 0x511C0CC: clone (in /lib64/libc-2.8.so)
+-
+-Location 0x601038 is 0 bytes inside global var "var"
+-declared at simple_race.c:3
+-</pre>
+-<p>This is quite a lot of detail for an apparently simple error.
+-The last clause is the main error message.  It says there is a race as
+-a result of a read of size 4 (bytes), at 0x601038, which is the
+-address of <code class="computeroutput">var</code>, happening in
+-function <code class="computeroutput">main</code> at line 13 in the
+-program.</p>
+-<p>Two important parts of the message are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>Helgrind shows two stack traces for the error, not one.  By
+-   definition, a race involves two different threads accessing the
+-   same location in such a way that the result depends on the relative
+-   speeds of the two threads.</p>
+-<p>
+-   The first stack trace follows the text "<code class="computeroutput">Possible
+-   data race during read of size 4 ...</code>" and the
+-   second trace follows the text "<code class="computeroutput">This conflicts with
+-   a previous write of size 4 ...</code>".  Helgrind is
+-   usually able to show both accesses involved in a race.  At least
+-   one of these will be a write (since two concurrent, unsynchronised
+-   reads are harmless), and they will of course be from different
+-   threads.</p>
+-<p>By examining your program at the two locations, you should be
+-   able to get at least some idea of what the root cause of the
+-   problem is.  For each location, Helgrind shows the set of locks
+-   held at the time of the access.  This often makes it clear which
+-   thread, if any, failed to take a required lock.  In this example
+-   neither thread holds a lock during the access.</p>
+-</li>
+-<li class="listitem">
+-<p>For races which occur on global or stack variables, Helgrind
+-   tries to identify the name and defining point of the variable.
+-   Hence the text "<code class="computeroutput">Location 0x601038 is 0 bytes inside
+-   global var "var" declared at simple_race.c:3</code>".</p>
+-<p>Showing names of stack and global variables carries no
+-   run-time overhead once Helgrind has your program up and running.
+-   However, it does require Helgrind to spend considerable extra time
+-   and memory at program startup to read the relevant debug info.
+-   Hence this facility is disabled by default.  To enable it, you need
+-   to give the <code class="varname">--read-var-info=yes</code> option to
+-   Helgrind.</p>
+-</li>
+-</ul></div>
+-<p>The following section explains Helgrind's race detection
+-algorithm in more detail.</p>
+-</div>
+-<div class="sect2" title="7.4.2. Helgrind's Race Detection Algorithm">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="hg-manual.data-races.algorithm"></a>7.4.2. Helgrind's Race Detection Algorithm</h3></div></div></div>
+-<p>Most programmers think about threaded programming in terms of
+-the basic functionality provided by the threading library (POSIX
+-Pthreads): thread creation, thread joining, locks, condition
+-variables, semaphores and barriers.</p>
+-<p>The effect of using these functions is to impose 
+-constraints upon the order in which memory accesses can
+-happen.  This implied ordering is generally known as the
+-"happens-before relation".  Once you understand the happens-before
+-relation, it is easy to see how Helgrind finds races in your code.
+-Fortunately, the happens-before relation is itself easy to understand,
+-and is by itself a useful tool for reasoning about the behaviour of
+-parallel programs.  We now introduce it using a simple example.</p>
+-<p>Consider first the following buggy program:</p>
+-<pre class="programlisting">
+-Parent thread:                         Child thread:
+-
+-int var;
+-
+-// create child thread
+-pthread_create(...)                          
+-var = 20;                              var = 10;
+-                                       exit
+-
+-// wait for child
+-pthread_join(...)
+-printf("%d\n", var);
+-</pre>
+-<p>The parent thread creates a child.  Both then write different
+-values to some variable <code class="computeroutput">var</code>, and the
+-parent then waits for the child to exit.</p>
+-<p>What is the value of <code class="computeroutput">var</code> at the
+-end of the program, 10 or 20?  We don't know.  The program is
+-considered buggy (it has a race) because the final value
+-of <code class="computeroutput">var</code> depends on the relative rates
+-of progress of the parent and child threads.  If the parent is fast
+-and the child is slow, then the child's assignment may happen later,
+-so the final value will be 10; and vice versa if the child is faster
+-than the parent.</p>
+-<p>The relative rates of progress of parent vs child is not something
+-the programmer can control, and will often change from run to run.
+-It depends on factors such as the load on the machine, what else is
+-running, the kernel's scheduling strategy, and many other factors.</p>
+-<p>The obvious fix is to use a lock to
+-protect <code class="computeroutput">var</code>.  It is however
+-instructive to consider a somewhat more abstract solution, which is to
+-send a message from one thread to the other:</p>
+-<pre class="programlisting">
+-Parent thread:                         Child thread:
+-
+-int var;
+-
+-// create child thread
+-pthread_create(...)                          
+-var = 20;
+-// send message to child
+-                                       // wait for message to arrive
+-                                       var = 10;
+-                                       exit
+-
+-// wait for child
+-pthread_join(...)
+-printf("%d\n", var);
+-</pre>
+-<p>Now the program reliably prints "10", regardless of the speed of
+-the threads.  Why?  Because the child's assignment cannot happen until
+-after it receives the message.  And the message is not sent until
+-after the parent's assignment is done.</p>
+-<p>The message transmission creates a "happens-before" dependency
+-between the two assignments: <code class="computeroutput">var = 20;</code>
+-must now happen-before <code class="computeroutput">var = 10;</code>.
+-And so there is no longer a race
+-on <code class="computeroutput">var</code>.
+-</p>
+-<p>Note that it's not significant that the parent sends a message
+-to the child.  Sending a message from the child (after its assignment)
+-to the parent (before its assignment) would also fix the problem, causing
+-the program to reliably print "20".</p>
+-<p>Helgrind's algorithm is (conceptually) very simple.  It monitors all
+-accesses to memory locations.  If a location -- in this example, 
+-<code class="computeroutput">var</code>,
+-is accessed by two different threads, Helgrind checks to see if the
+-two accesses are ordered by the happens-before relation.  If so,
+-that's fine; if not, it reports a race.</p>
+-<p>It is important to understand that the happens-before relation
+-creates only a partial ordering, not a total ordering.  An example of
+-a total ordering is comparison of numbers: for any two numbers 
+-<code class="computeroutput">x</code> and
+-<code class="computeroutput">y</code>, either 
+-<code class="computeroutput">x</code> is less than, equal to, or greater
+-than
+-<code class="computeroutput">y</code>.  A partial ordering is like a
+-total ordering, but it can also express the concept that two elements
+-are neither equal, less or greater, but merely unordered with respect
+-to each other.</p>
+-<p>In the fixed example above, we say that 
+-<code class="computeroutput">var = 20;</code> "happens-before"
+-<code class="computeroutput">var = 10;</code>.  But in the original
+-version, they are unordered: we cannot say that either happens-before
+-the other.</p>
+-<p>What does it mean to say that two accesses from different
+-threads are ordered by the happens-before relation?  It means that
+-there is some chain of inter-thread synchronisation operations which
+-cause those accesses to happen in a particular order, irrespective of
+-the actual rates of progress of the individual threads.  This is a
+-required property for a reliable threaded program, which is why
+-Helgrind checks for it.</p>
+-<p>The happens-before relations created by standard threading
+-primitives are as follows:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>When a mutex is unlocked by thread T1 and later (or
+-  immediately) locked by thread T2, then the memory accesses in T1
+-  prior to the unlock must happen-before those in T2 after it acquires
+-  the lock.</p></li>
+-<li class="listitem"><p>The same idea applies to reader-writer locks,
+-  although with some complication so as to allow correct handling of
+-  reads vs writes.</p></li>
+-<li class="listitem"><p>When a condition variable (CV) is signalled on by
+-  thread T1 and some other thread T2 is thereby released from a wait
+-  on the same CV, then the memory accesses in T1 prior to the
+-  signalling must happen-before those in T2 after it returns from the
+-  wait.  If no thread was waiting on the CV then there is no
+-  effect.</p></li>
+-<li class="listitem"><p>If instead T1 broadcasts on a CV, then all of the
+-  waiting threads, rather than just one of them, acquire a
+-  happens-before dependency on the broadcasting thread at the point it
+-  did the broadcast.</p></li>
+-<li class="listitem"><p>A thread T2 that continues after completing sem_wait
+-  on a semaphore that thread T1 posts on, acquires a happens-before
+-  dependence on the posting thread, a bit like dependencies caused
+-  mutex unlock-lock pairs.  However, since a semaphore can be posted
+-  on many times, it is unspecified from which of the post calls the
+-  wait call gets its happens-before dependency.</p></li>
+-<li class="listitem"><p>For a group of threads T1 .. Tn which arrive at a
+-  barrier and then move on, each thread after the call has a
+-  happens-after dependency from all threads before the
+-  barrier.</p></li>
+-<li class="listitem"><p>A newly-created child thread acquires an initial
+-  happens-after dependency on the point where its parent created it.
+-  That is, all memory accesses performed by the parent prior to
+-  creating the child are regarded as happening-before all the accesses
+-  of the child.</p></li>
+-<li class="listitem"><p>Similarly, when an exiting thread is reaped via a
+-  call to <code class="function">pthread_join</code>, once the call returns, the
+-  reaping thread acquires a happens-after dependency relative to all memory
+-  accesses made by the exiting thread.</p></li>
+-</ul></div>
+-<p>In summary: Helgrind intercepts the above listed events, and builds a
+-directed acyclic graph represented the collective happens-before
+-dependencies.  It also monitors all memory accesses.</p>
+-<p>If a location is accessed by two different threads, but Helgrind
+-cannot find any path through the happens-before graph from one access
+-to the other, then it reports a race.</p>
+-<p>There are a couple of caveats:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Helgrind doesn't check for a race in the case where
+-  both accesses are reads.  That would be silly, since concurrent
+-  reads are harmless.</p></li>
+-<li class="listitem"><p>Two accesses are considered to be ordered by the
+-  happens-before dependency even through arbitrarily long chains of
+-  synchronisation events.  For example, if T1 accesses some location
+-  L, and then <code class="function">pthread_cond_signals</code> T2, which later
+-  <code class="function">pthread_cond_signals</code> T3, which then accesses L, then
+-  a suitable happens-before dependency exists between the first and second
+-  accesses, even though it involves two different inter-thread
+-  synchronisation events.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="7.4.3. Interpreting Race Error Messages">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="hg-manual.data-races.errmsgs"></a>7.4.3. Interpreting Race Error Messages</h3></div></div></div>
+-<p>Helgrind's race detection algorithm collects a lot of
+-information, and tries to present it in a helpful way when a race is
+-detected.  Here's an example:</p>
+-<pre class="programlisting">
+-Thread #2 was created
+-   at 0x511C08E: clone (in /lib64/libc-2.8.so)
+-   by 0x4E333A4: do_clone (in /lib64/libpthread-2.8.so)
+-   by 0x4E33A30: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.8.so)
+-   by 0x4C299D4: pthread_create@* (hg_intercepts.c:214)
+-   by 0x4008F2: main (tc21_pthonce.c:86)
+-
+-Thread #3 was created
+-   at 0x511C08E: clone (in /lib64/libc-2.8.so)
+-   by 0x4E333A4: do_clone (in /lib64/libpthread-2.8.so)
+-   by 0x4E33A30: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.8.so)
+-   by 0x4C299D4: pthread_create@* (hg_intercepts.c:214)
+-   by 0x4008F2: main (tc21_pthonce.c:86)
+-
+-Possible data race during read of size 4 at 0x601070 by thread #3
+-Locks held: none
+-   at 0x40087A: child (tc21_pthonce.c:74)
+-   by 0x4C29AFF: mythread_wrapper (hg_intercepts.c:194)
+-   by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-   by 0x511C0CC: clone (in /lib64/libc-2.8.so)
+-
+-This conflicts with a previous write of size 4 by thread #2
+-Locks held: none
+-   at 0x400883: child (tc21_pthonce.c:74)
+-   by 0x4C29AFF: mythread_wrapper (hg_intercepts.c:194)
+-   by 0x4E3403F: start_thread (in /lib64/libpthread-2.8.so)
+-   by 0x511C0CC: clone (in /lib64/libc-2.8.so)
+-
+-Location 0x601070 is 0 bytes inside local var "unprotected2"
+-declared at tc21_pthonce.c:51, in frame #0 of thread 3
+-</pre>
+-<p>Helgrind first announces the creation points of any threads
+-referenced in the error message.  This is so it can speak concisely
+-about threads without repeatedly printing their creation point call
+-stacks.  Each thread is only ever announced once, the first time it
+-appears in any Helgrind error message.</p>
+-<p>The main error message begins at the text
+-"<code class="computeroutput">Possible data race during read</code>".  At
+-the start is information you would expect to see -- address and size
+-of the racing access, whether a read or a write, and the call stack at
+-the point it was detected.</p>
+-<p>A second call stack is presented starting at the text
+-"<code class="computeroutput">This conflicts with a previous
+-write</code>".  This shows a previous access which also
+-accessed the stated address, and which is believed to be racing
+-against the access in the first call stack. Note that this second
+-call stack is limited to a maximum of 8 entries to limit the
+-memory usage.</p>
+-<p>Finally, Helgrind may attempt to give a description of the
+-raced-on address in source level terms.  In this example, it
+-identifies it as a local variable, shows its name, declaration point,
+-and in which frame (of the first call stack) it lives.  Note that this
+-information is only shown when <code class="varname">--read-var-info=yes</code>
+-is specified on the command line.  That's because reading the DWARF3
+-debug information in enough detail to capture variable type and
+-location information makes Helgrind much slower at startup, and also
+-requires considerable amounts of memory, for large programs.
+-</p>
+-<p>Once you have your two call stacks, how do you find the root
+-cause of the race?</p>
+-<p>The first thing to do is examine the source locations referred
+-to by each call stack.  They should both show an access to the same
+-location, or variable.</p>
+-<p>Now figure out how how that location should have been made
+-thread-safe:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Perhaps the location was intended to be protected by
+-  a mutex?  If so, you need to lock and unlock the mutex at both
+-  access points, even if one of the accesses is reported to be a read.
+-  Did you perhaps forget the locking at one or other of the accesses?
+-  To help you do this, Helgrind shows the set of locks held by each
+-  threads at the time they accessed the raced-on location.</p></li>
+-<li class="listitem">
+-<p>Alternatively, perhaps you intended to use a some
+-  other scheme to make it safe, such as signalling on a condition
+-  variable.  In all such cases, try to find a synchronisation event
+-  (or a chain thereof) which separates the earlier-observed access (as
+-  shown in the second call stack) from the later-observed access (as
+-  shown in the first call stack).  In other words, try to find
+-  evidence that the earlier access "happens-before" the later access.
+-  See the previous subsection for an explanation of the happens-before
+-  relation.</p>
+-<p>
+-  The fact that Helgrind is reporting a race means it did not observe
+-  any happens-before relation between the two accesses.  If
+-  Helgrind is working correctly, it should also be the case that you
+-  also cannot find any such relation, even on detailed inspection
+-  of the source code.  Hopefully, though, your inspection of the code
+-  will show where the missing synchronisation operation(s) should have
+-  been.</p>
+-</li>
+-</ul></div>
+-</div>
+-</div>
+-<div class="sect1" title="7.5. Hints and Tips for Effective Use of Helgrind">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.effective-use"></a>7.5. Hints and Tips for Effective Use of Helgrind</h2></div></div></div>
+-<p>Helgrind can be very helpful in finding and resolving
+-threading-related problems.  Like all sophisticated tools, it is most
+-effective when you understand how to play to its strengths.</p>
+-<p>Helgrind will be less effective when you merely throw an
+-existing threaded program at it and try to make sense of any reported
+-errors.  It will be more effective if you design threaded programs
+-from the start in a way that helps Helgrind verify correctness.  The
+-same is true for finding memory errors with Memcheck, but applies more
+-here, because thread checking is a harder problem.  Consequently it is
+-much easier to write a correct program for which Helgrind falsely
+-reports (threading) errors than it is to write a correct program for
+-which Memcheck falsely reports (memory) errors.</p>
+-<p>With that in mind, here are some tips, listed most important first,
+-for getting reliable results and avoiding false errors.  The first two
+-are critical.  Any violations of them will swamp you with huge numbers
+-of false data-race errors.</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem">
+-<p>Make sure your application, and all the libraries it uses,
+-    use the POSIX threading primitives.  Helgrind needs to be able to
+-    see all events pertaining to thread creation, exit, locking and
+-    other synchronisation events.  To do so it intercepts many POSIX
+-    pthreads functions.</p>
+-<p>Do not roll your own threading primitives (mutexes, etc)
+-    from combinations of the Linux futex syscall, atomic counters, etc.
+-    These throw Helgrind's internal what's-going-on models
+-    way off course and will give bogus results.</p>
+-<p>Also, do not reimplement existing POSIX abstractions using
+-    other POSIX abstractions.  For example, don't build your own
+-    semaphore routines or reader-writer locks from POSIX mutexes and
+-    condition variables.  Instead use POSIX reader-writer locks and
+-    semaphores directly, since Helgrind supports them directly.</p>
+-<p>Helgrind directly supports the following POSIX threading
+-    abstractions: mutexes, reader-writer locks, condition variables
+-    (but see below), semaphores and barriers.  Currently spinlocks
+-    are not supported, although they could be in future.</p>
+-<p>At the time of writing, the following popular Linux packages
+-    are known to implement their own threading primitives:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Qt version 4.X.  Qt 3.X is harmless in that it
+-      only uses POSIX pthreads primitives.  Unfortunately Qt 4.X 
+-      has its own implementation of mutexes (QMutex) and thread reaping.
+-      Helgrind 3.4.x contains direct support
+-      for Qt 4.X threading, which is experimental but is believed to
+-      work fairly well.  A side effect of supporting Qt 4 directly is
+-      that Helgrind can be used to debug KDE4 applications.  As this
+-      is an experimental feature, we would particularly appreciate
+-      feedback from folks who have used Helgrind to successfully debug
+-      Qt 4 and/or KDE4 applications.</p></li>
+-<li class="listitem">
+-<p>Runtime support library for GNU OpenMP (part of
+-      GCC), at least for GCC versions 4.2 and 4.3.  The GNU OpenMP runtime
+-      library (<code class="filename">libgomp.so</code>) constructs its own
+-      synchronisation primitives using combinations of atomic memory
+-      instructions and the futex syscall, which causes total chaos since in
+-      Helgrind since it cannot "see" those.</p>
+-<p>Fortunately, this can be solved using a configuration-time
+-      option (for GCC).  Rebuild GCC from source, and configure using
+-      <code class="varname">--disable-linux-futex</code>.
+-      This makes libgomp.so use the standard
+-      POSIX threading primitives instead.  Note that this was tested
+-      using GCC 4.2.3 and has not been re-tested using more recent GCC
+-      versions.  We would appreciate hearing about any successes or
+-      failures with more recent versions.</p>
+-</li>
+-</ul></div>
+-<p>If you must implement your own threading primitives, there
+-      are a set of client request macros
+-      in <code class="computeroutput">helgrind.h</code> to help you
+-      describe your primitives to Helgrind.  You should be able to
+-      mark up mutexes, condition variables, etc, without difficulty.
+-    </p>
+-<p>
+-      It is also possible to mark up the effects of thread-safe
+-      reference counting using the
+-      <code class="computeroutput">ANNOTATE_HAPPENS_BEFORE</code>,
+-      <code class="computeroutput">ANNOTATE_HAPPENS_AFTER</code> and
+-      <code class="computeroutput">ANNOTATE_HAPPENS_BEFORE_FORGET_ALL</code>,
+-      macros.  Thread-safe reference counting using an atomically
+-      incremented/decremented refcount variable causes Helgrind
+-      problems because a one-to-zero transition of the reference count
+-      means the accessing thread has exclusive ownership of the
+-      associated resource (normally, a C++ object) and can therefore
+-      access it (normally, to run its destructor) without locking.
+-      Helgrind doesn't understand this, and markup is essential to
+-      avoid false positives.
+-    </p>
+-<p>
+-      Here are recommended guidelines for marking up thread safe
+-      reference counting in C++.  You only need to mark up your
+-      release methods -- the ones which decrement the reference count.
+-      Given a class like this:
+-    </p>
+-<pre class="programlisting">
+-class MyClass {
+-   unsigned int mRefCount;
+-
+-   void Release ( void ) {
+-      unsigned int newCount = atomic_decrement(&mRefCount);
+-      if (newCount == 0) {
+-         delete this;
+-      }
+-   }
+-}
+-</pre>
+-<p>
+-     the release method should be marked up as follows:
+-   </p>
+-<pre class="programlisting">
+-   void Release ( void ) {
+-      unsigned int newCount = atomic_decrement(&mRefCount);
+-      if (newCount == 0) {
+-         ANNOTATE_HAPPENS_AFTER(&mRefCount);
+-         ANNOTATE_HAPPENS_BEFORE_FORGET_ALL(&mRefCount);
+-         delete this;
+-      } else {
+-         ANNOTATE_HAPPENS_BEFORE(&mRefCount);
+-      }
+-   }
+-</pre>
+-<p>
+-      There are a number of complex, mostly-theoretical objections to
+-      this scheme.  From a theoretical standpoint it appears to be
+-      impossible to devise a markup scheme which is completely correct
+-      in the sense of guaranteeing to remove all false races.  The
+-      proposed scheme however works well in practice.
+-    </p>
+-</li>
+-<li class="listitem">
+-<p>Avoid memory recycling.  If you can't avoid it, you must use
+-    tell Helgrind what is going on via the
+-    <code class="function">VALGRIND_HG_CLEAN_MEMORY</code> client request (in
+-    <code class="computeroutput">helgrind.h</code>).</p>
+-<p>Helgrind is aware of standard heap memory allocation and
+-    deallocation that occurs via
+-    <code class="function">malloc</code>/<code class="function">free</code>/<code class="function">new</code>/<code class="function">delete</code>
+-    and from entry and exit of stack frames.  In particular, when memory is
+-    deallocated via <code class="function">free</code>, <code class="function">delete</code>,
+-    or function exit, Helgrind considers that memory clean, so when it is
+-    eventually reallocated, its history is irrelevant.</p>
+-<p>However, it is common practice to implement memory recycling
+-    schemes.  In these, memory to be freed is not handed to
+-    <code class="function">free</code>/<code class="function">delete</code>, but instead put
+-    into a pool of free buffers to be handed out again as required.  The
+-    problem is that Helgrind has no
+-    way to know that such memory is logically no longer in use, and
+-    its history is irrelevant.  Hence you must make that explicit,
+-    using the <code class="function">VALGRIND_HG_CLEAN_MEMORY</code> client request
+-    to specify the relevant address ranges.  It's easiest to put these
+-    requests into the pool manager code, and use them either when memory is
+-    returned to the pool, or is allocated from it.</p>
+-</li>
+-<li class="listitem">
+-<p>Avoid POSIX condition variables.  If you can, use POSIX
+-    semaphores (<code class="function">sem_t</code>, <code class="function">sem_post</code>,
+-    <code class="function">sem_wait</code>) to do inter-thread event signalling.
+-    Semaphores with an initial value of zero are particularly useful for
+-    this.</p>
+-<p>Helgrind only partially correctly handles POSIX condition
+-    variables.  This is because Helgrind can see inter-thread
+-    dependencies between a <code class="function">pthread_cond_wait</code> call and a
+-    <code class="function">pthread_cond_signal</code>/<code class="function">pthread_cond_broadcast</code>
+-    call only if the waiting thread actually gets to the rendezvous first
+-    (so that it actually calls
+-    <code class="function">pthread_cond_wait</code>).  It can't see dependencies
+-    between the threads if the signaller arrives first.  In the latter case,
+-    POSIX guidelines imply that the associated boolean condition still
+-    provides an inter-thread synchronisation event, but one which is
+-    invisible to Helgrind.</p>
+-<p>The result of Helgrind missing some inter-thread
+-    synchronisation events is to cause it to report false positives.
+-    </p>
+-<p>The root cause of this synchronisation lossage is
+-    particularly hard to understand, so an example is helpful.  It was
+-    discussed at length by Arndt Muehlenfeld ("Runtime Race Detection
+-    in Multi-Threaded Programs", Dissertation, TU Graz, Austria).  The
+-    canonical POSIX-recommended usage scheme for condition variables
+-    is as follows:</p>
+-<pre class="programlisting">
+-b   is a Boolean condition, which is False most of the time
+-cv  is a condition variable
+-mx  is its associated mutex
+-
+-Signaller:                             Waiter:
+-
+-lock(mx)                               lock(mx)
+-b = True                               while (b == False)
+-signal(cv)                                wait(cv,mx)
+-unlock(mx)                             unlock(mx)
+-</pre>
+-<p>Assume <code class="computeroutput">b</code> is False most of
+-    the time.  If the waiter arrives at the rendezvous first, it
+-    enters its while-loop, waits for the signaller to signal, and
+-    eventually proceeds.  Helgrind sees the signal, notes the
+-    dependency, and all is well.</p>
+-<p>If the signaller arrives
+-    first, <code class="computeroutput">b</code> is set to true, and the
+-    signal disappears into nowhere.  When the waiter later arrives, it
+-    does not enter its while-loop and simply carries on.  But even in
+-    this case, the waiter code following the while-loop cannot execute
+-    until the signaller sets <code class="computeroutput">b</code> to
+-    True.  Hence there is still the same inter-thread dependency, but
+-    this time it is through an arbitrary in-memory condition, and
+-    Helgrind cannot see it.</p>
+-<p>By comparison, Helgrind's detection of inter-thread
+-    dependencies caused by semaphore operations is believed to be
+-    exactly correct.</p>
+-<p>As far as I know, a solution to this problem that does not
+-    require source-level annotation of condition-variable wait loops
+-    is beyond the current state of the art.</p>
+-</li>
+-<li class="listitem"><p>Make sure you are using a supported Linux distribution.  At
+-    present, Helgrind only properly supports glibc-2.3 or later.  This
+-    in turn means we only support glibc's NPTL threading
+-    implementation.  The old LinuxThreads implementation is not
+-    supported.</p></li>
+-<li class="listitem">
+-<p>Round up all finished threads using
+-    <code class="function">pthread_join</code>.  Avoid
+-    detaching threads: don't create threads in the detached state, and
+-    don't call <code class="function">pthread_detach</code> on existing threads.</p>
+-<p>Using <code class="function">pthread_join</code> to round up finished
+-    threads provides a clear synchronisation point that both Helgrind and
+-    programmers can see.  If you don't call
+-    <code class="function">pthread_join</code> on a thread, Helgrind has no way to
+-    know when it finishes, relative to any
+-    significant synchronisation points for other threads in the program.  So
+-    it assumes that the thread lingers indefinitely and can potentially
+-    interfere indefinitely with the memory state of the program.  It
+-    has every right to assume that -- after all, it might really be
+-    the case that, for scheduling reasons, the exiting thread did run
+-    very slowly in the last stages of its life.</p>
+-</li>
+-<li class="listitem">
+-<p>Perform thread debugging (with Helgrind) and memory
+-    debugging (with Memcheck) together.</p>
+-<p>Helgrind tracks the state of memory in detail, and memory
+-    management bugs in the application are liable to cause confusion.
+-    In extreme cases, applications which do many invalid reads and
+-    writes (particularly to freed memory) have been known to crash
+-    Helgrind.  So, ideally, you should make your application
+-    Memcheck-clean before using Helgrind.</p>
+-<p>It may be impossible to make your application Memcheck-clean
+-    unless you first remove threading bugs.  In particular, it may be
+-    difficult to remove all reads and writes to freed memory in
+-    multithreaded C++ destructor sequences at program termination.
+-    So, ideally, you should make your application Helgrind-clean
+-    before using Memcheck.</p>
+-<p>Since this circularity is obviously unresolvable, at least
+-    bear in mind that Memcheck and Helgrind are to some extent
+-    complementary, and you may need to use them together.</p>
+-</li>
+-<li class="listitem">
+-<p>POSIX requires that implementations of standard I/O
+-    (<code class="function">printf</code>, <code class="function">fprintf</code>,
+-    <code class="function">fwrite</code>, <code class="function">fread</code>, etc) are thread
+-    safe.  Unfortunately GNU libc implements this by using internal locking
+-    primitives that Helgrind is unable to intercept.  Consequently Helgrind
+-    generates many false race reports when you use these functions.</p>
+-<p>Helgrind attempts to hide these errors using the standard
+-    Valgrind error-suppression mechanism.  So, at least for simple
+-    test cases, you don't see any.  Nevertheless, some may slip
+-    through.  Just something to be aware of.</p>
+-</li>
+-<li class="listitem">
+-<p>Helgrind's error checks do not work properly inside the
+-    system threading library itself
+-    (<code class="computeroutput">libpthread.so</code>), and it usually
+-    observes large numbers of (false) errors in there.  Valgrind's
+-    suppression system then filters these out, so you should not see
+-    them.</p>
+-<p>If you see any race errors reported
+-    where <code class="computeroutput">libpthread.so</code> or
+-    <code class="computeroutput">ld.so</code> is the object associated
+-    with the innermost stack frame, please file a bug report at
+-    <a class="ulink" href="http://www.valgrind.org/" target="_top">http://www.valgrind.org/</a>.
+-    </p>
+-</li>
+-</ol></div>
+-</div>
+-<div class="sect1" title="7.6. Helgrind Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.options"></a>7.6. Helgrind Command-line Options</h2></div></div></div>
+-<p>The following end-user options are available:</p>
+-<div class="variablelist">
+-<a name="hg.opts.list"></a><dl>
+-<dt>
+-<a name="opt.free-is-write"></a><span class="term">
+-      <code class="option">--free-is-write=no|yes
+-      [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled (not the default), Helgrind treats freeing of
+-        heap memory as if the memory was written immediately before
+-        the free.  This exposes races where memory is referenced by
+-        one thread, and freed by another, but there is no observable
+-        synchronisation event to ensure that the reference happens
+-        before the free.
+-      </p>
+-<p>This functionality is new in Valgrind 3.7.0, and is
+-        regarded as experimental.  It is not enabled by default
+-        because its interaction with custom memory allocators is not
+-        well understood at present.  User feedback is welcomed.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.track-lockorders"></a><span class="term">
+-      <code class="option">--track-lockorders=no|yes
+-      [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled (the default), Helgrind performs lock order
+-      consistency checking.  For some buggy programs, the large number
+-      of lock order errors reported can become annoying, particularly
+-      if you're only interested in race errors.  You may therefore find
+-      it helpful to disable lock order checking.</p></dd>
+-<dt>
+-<a name="opt.history-level"></a><span class="term">
+-      <code class="option">--history-level=none|approx|full
+-      [default: full] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p><code class="option">--history-level=full</code> (the default) causes
+-        Helgrind collects enough information about "old" accesses that
+-        it can produce two stack traces in a race report -- both the
+-        stack trace for the current access, and the trace for the
+-        older, conflicting access. To limit memory usage, "old" accesses
+-        stack traces are limited to a maximum of 8 entries, even if
+-        <code class="option">--num-callers</code> value is bigger.</p>
+-<p>Collecting such information is expensive in both speed and
+-        memory, particularly for programs that do many inter-thread
+-        synchronisation events (locks, unlocks, etc).  Without such
+-        information, it is more difficult to track down the root
+-        causes of races.  Nonetheless, you may not need it in
+-        situations where you just want to check for the presence or
+-        absence of races, for example, when doing regression testing
+-        of a previously race-free program.</p>
+-<p><code class="option">--history-level=none</code> is the opposite
+-        extreme.  It causes Helgrind not to collect any information
+-        about previous accesses.  This can be dramatically faster
+-        than <code class="option">--history-level=full</code>.</p>
+-<p><code class="option">--history-level=approx</code> provides a
+-        compromise between these two extremes.  It causes Helgrind to
+-        show a full trace for the later access, and approximate
+-        information regarding the earlier access.  This approximate
+-        information consists of two stacks, and the earlier access is
+-        guaranteed to have occurred somewhere between program points
+-        denoted by the two stacks. This is not as useful as showing
+-        the exact stack for the previous access
+-        (as <code class="option">--history-level=full</code> does), but it is
+-        better than nothing, and it is almost as fast as
+-        <code class="option">--history-level=none</code>.</p>
+-</dd>
+-<dt>
+-<a name="opt.conflict-cache-size"></a><span class="term">
+-      <code class="option">--conflict-cache-size=N
+-      [default: 1000000] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>This flag only has any effect
+-        at <code class="option">--history-level=full</code>.</p>
+-<p>Information about "old" conflicting accesses is stored in
+-        a cache of limited size, with LRU-style management.  This is
+-        necessary because it isn't practical to store a stack trace
+-        for every single memory access made by the program.
+-        Historical information on not recently accessed locations is
+-        periodically discarded, to free up space in the cache.</p>
+-<p>This option controls the size of the cache, in terms of the
+-        number of different memory addresses for which
+-        conflicting access information is stored.  If you find that
+-        Helgrind is showing race errors with only one stack instead of
+-        the expected two stacks, try increasing this value.</p>
+-<p>The minimum value is 10,000 and the maximum is 30,000,000
+-        (thirty times the default value).  Increasing the value by 1
+-        increases Helgrind's memory requirement by very roughly 100
+-        bytes, so the maximum value will easily eat up three extra
+-        gigabytes or so of memory.</p>
+-</dd>
+-<dt>
+-<a name="opt.check-stack-refs"></a><span class="term">
+-      <code class="option">--check-stack-refs=no|yes
+-      [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>
+-        By default Helgrind checks all data memory accesses made by your
+-        program.  This flag enables you to skip checking for accesses
+-        to thread stacks (local variables).  This can improve
+-        performance, but comes at the cost of missing races on
+-        stack-allocated data.
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="7.7. Helgrind Client Requests">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.client-requests"></a>7.7. Helgrind Client Requests</h2></div></div></div>
+-<p>The following client requests are defined in
+-<code class="filename">helgrind.h</code>.  See that file for exact details of their
+-arguments.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="function">VALGRIND_HG_CLEAN_MEMORY</code></p>
+-<p>This makes Helgrind forget everything it knows about a
+-    specified memory range.  This is particularly useful for memory
+-    allocators that wish to recycle memory.</p>
+-</li>
+-<li class="listitem"><p><code class="function">ANNOTATE_HAPPENS_BEFORE</code></p></li>
+-<li class="listitem"><p><code class="function">ANNOTATE_HAPPENS_AFTER</code></p></li>
+-<li class="listitem"><p><code class="function">ANNOTATE_NEW_MEMORY</code></p></li>
+-<li class="listitem"><p><code class="function">ANNOTATE_RWLOCK_CREATE</code></p></li>
+-<li class="listitem"><p><code class="function">ANNOTATE_RWLOCK_DESTROY</code></p></li>
+-<li class="listitem"><p><code class="function">ANNOTATE_RWLOCK_ACQUIRED</code></p></li>
+-<li class="listitem">
+-<p><code class="function">ANNOTATE_RWLOCK_RELEASED</code></p>
+-<p>These are used to describe to Helgrind, the behaviour of
+-    custom (non-POSIX) synchronisation primitives, which it otherwise
+-    has no way to understand.  See comments
+-    in <code class="filename">helgrind.h</code> for further
+-    documentation.</p>
+-</li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="7.8. A To-Do List for Helgrind">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="hg-manual.todolist"></a>7.8. A To-Do List for Helgrind</h2></div></div></div>
+-<p>The following is a list of loose ends which should be tidied up
+-some time.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>For lock order errors, print the complete lock
+-    cycle, rather than only doing for size-2 cycles as at
+-    present.</p></li>
+-<li class="listitem"><p>The conflicting access mechanism sometimes
+-    mysteriously fails to show the conflicting access' stack, even
+-    when provided with unbounded storage for conflicting access info.
+-    This should be investigated.</p></li>
+-<li class="listitem"><p>Document races caused by GCC's thread-unsafe code
+-    generation for speculative stores.  In the interim see
+-    <code class="computeroutput">http://gcc.gnu.org/ml/gcc/2007-10/msg00266.html
+-    </code>
+-    and <code class="computeroutput">http://lkml.org/lkml/2007/10/24/673</code>.
+-    </p></li>
+-<li class="listitem"><p>Don't update the lock-order graph, and don't check
+-    for errors, when a "try"-style lock operation happens (e.g.
+-    <code class="function">pthread_mutex_trylock</code>).  Such calls do not add any real
+-    restrictions to the locking order, since they can always fail to
+-    acquire the lock, resulting in the caller going off and doing Plan
+-    B (presumably it will have a Plan B).  Doing such checks could
+-    generate false lock-order errors and confuse users.</p></li>
+-<li class="listitem"><p> Performance can be very poor.  Slowdowns on the
+-    order of 100:1 are not unusual.  There is limited scope for
+-    performance improvements.
+-    </p></li>
+-</ul></div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="cl-manual.html"><< 6. Callgrind: a call-graph generating cache and branch prediction profiler</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="drd-manual.html">8. DRD: a thread error detector >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+
+diff --git a/docs/html/index.html b/docs/html/index.html
+deleted file mode 100644
+index d8aba37..0000000
+--- a/docs/html/index.html
++++ /dev/null
+@@ -1,64 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind Documentation</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="next" href="QuickStart.html" title="The Valgrind Quick Start Guide">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div></div>
+-<div lang="en" class="set" title="Valgrind Documentation">
+-<div class="titlepage">
+-<div>
+-<div align="center"><h1 class="title">
+-<a name="set-index"></a>Valgrind Documentation</h1></div>
+-<div align="center"><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div align="center"><p class="copyright">Copyright © 2000-2012 
+-        <a class="link" href="dist.authors.html" title="1. AUTHORS">AUTHORS</a>
+-      </p></div>
+-<div align="center"><div class="legalnotice" title="Legal Notice">
+-<a name="id548064"></a><p>Permission is granted to copy, distribute and/or modify
+-        this document under the terms of the GNU Free Documentation
+-        License, Version 1.2 or any later version published by the
+-        Free Software Foundation; with no Invariant Sections, with no
+-        Front-Cover Texts, and with no Back-Cover Texts.  A copy of
+-        the license is included in the section entitled
+-        <a class="xref" href="license.gfdl.html" title="2. The GNU Free Documentation License">The GNU Free Documentation License</a>.
+-      </p>
+-<p>This is the top level of Valgrind's documentation tree.
+-        The documentation is contained in six logically separate
+-        documents, as listed in the following Table of Contents.  To
+-        get started quickly, read the Valgrind Quick Start Guide.  For
+-        full documentation on Valgrind, read the Valgrind User Manual.
+-      </p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="book"><a href="QuickStart.html">The Valgrind Quick Start Guide</a></span></dt>
+-<dt><span class="book"><a href="manual.html">Valgrind User Manual</a></span></dt>
+-<dt><span class="book"><a href="FAQ.html">Valgrind FAQ</a></span></dt>
+-<dt><span class="book"><a href="tech-docs.html">Valgrind Technical Documentation</a></span></dt>
+-<dt><span class="book"><a href="dist.html">Valgrind Distribution Documents</a></span></dt>
+-<dt><span class="book"><a href="licenses.html">GNU Licenses</a></span></dt>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left"> </td>
+-<td width="20%" align="center"> </td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="QuickStart.html">The Valgrind Quick Start Guide >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"> </td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/license.gfdl.html b/docs/html/license.gfdl.html
+deleted file mode 100644
+index 3827cac..0000000
+--- a/docs/html/license.gfdl.html
++++ /dev/null
+@@ -1,436 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>2. The GNU Free Documentation License</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="licenses.html" title="GNU Licenses">
+-<link rel="prev" href="license.gpl.html" title="1. The GNU General Public License">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="license.gpl.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="licenses.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">GNU Licenses</th>
+-<td width="22px" align="center" valign="middle"></td>
+-</tr></table></div>
+-<div class="chapter" title="2. The GNU Free Documentation License">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="license.gfdl"></a>2. The GNU Free Documentation License</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-              GNU Free Documentation License<br>
+-          Version 1.2, November 2002<br>
+-<br>
+-<br>
+- Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.<br>
+-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA<br>
+- Everyone is permitted to copy and distribute verbatim copies<br>
+- of this license document, but changing it is not allowed.<br>
+-<br>
+-<br>
+-0. PREAMBLE<br>
+-<br>
+-The purpose of this License is to make a manual, textbook, or other<br>
+-functional and useful document "free" in the sense of freedom: to<br>
+-assure everyone the effective freedom to copy and redistribute it,<br>
+-with or without modifying it, either commercially or noncommercially.<br>
+-Secondarily, this License preserves for the author and publisher a way<br>
+-to get credit for their work, while not being considered responsible<br>
+-for modifications made by others.<br>
+-<br>
+-This License is a kind of "copyleft", which means that derivative<br>
+-works of the document must themselves be free in the same sense.  It<br>
+-complements the GNU General Public License, which is a copyleft<br>
+-license designed for free software.<br>
+-<br>
+-We have designed this License in order to use it for manuals for free<br>
+-software, because free software needs free documentation: a free<br>
+-program should come with manuals providing the same freedoms that the<br>
+-software does.  But this License is not limited to software manuals;<br>
+-it can be used for any textual work, regardless of subject matter or<br>
+-whether it is published as a printed book.  We recommend this License<br>
+-principally for works whose purpose is instruction or reference.<br>
+-<br>
+-<br>
+-1. APPLICABILITY AND DEFINITIONS<br>
+-<br>
+-This License applies to any manual or other work, in any medium, that<br>
+-contains a notice placed by the copyright holder saying it can be<br>
+-distributed under the terms of this License.  Such a notice grants a<br>
+-world-wide, royalty-free license, unlimited in duration, to use that<br>
+-work under the conditions stated herein.  The "Document", below,<br>
+-refers to any such manual or work.  Any member of the public is a<br>
+-licensee, and is addressed as "you".  You accept the license if you<br>
+-copy, modify or distribute the work in a way requiring permission<br>
+-under copyright law.<br>
+-<br>
+-A "Modified Version" of the Document means any work containing the<br>
+-Document or a portion of it, either copied verbatim, or with<br>
+-modifications and/or translated into another language.<br>
+-<br>
+-A "Secondary Section" is a named appendix or a front-matter section of<br>
+-the Document that deals exclusively with the relationship of the<br>
+-publishers or authors of the Document to the Document's overall subject<br>
+-(or to related matters) and contains nothing that could fall directly<br>
+-within that overall subject.  (Thus, if the Document is in part a<br>
+-textbook of mathematics, a Secondary Section may not explain any<br>
+-mathematics.)  The relationship could be a matter of historical<br>
+-connection with the subject or with related matters, or of legal,<br>
+-commercial, philosophical, ethical or political position regarding<br>
+-them.<br>
+-<br>
+-The "Invariant Sections" are certain Secondary Sections whose titles<br>
+-are designated, as being those of Invariant Sections, in the notice<br>
+-that says that the Document is released under this License.  If a<br>
+-section does not fit the above definition of Secondary then it is not<br>
+-allowed to be designated as Invariant.  The Document may contain zero<br>
+-Invariant Sections.  If the Document does not identify any Invariant<br>
+-Sections then there are none.<br>
+-<br>
+-The "Cover Texts" are certain short passages of text that are listed,<br>
+-as Front-Cover Texts or Back-Cover Texts, in the notice that says that<br>
+-the Document is released under this License.  A Front-Cover Text may<br>
+-be at most 5 words, and a Back-Cover Text may be at most 25 words.<br>
+-<br>
+-A "Transparent" copy of the Document means a machine-readable copy,<br>
+-represented in a format whose specification is available to the<br>
+-general public, that is suitable for revising the document<br>
+-straightforwardly with generic text editors or (for images composed of<br>
+-pixels) generic paint programs or (for drawings) some widely available<br>
+-drawing editor, and that is suitable for input to text formatters or<br>
+-for automatic translation to a variety of formats suitable for input<br>
+-to text formatters.  A copy made in an otherwise Transparent file<br>
+-format whose markup, or absence of markup, has been arranged to thwart<br>
+-or discourage subsequent modification by readers is not Transparent.<br>
+-An image format is not Transparent if used for any substantial amount<br>
+-of text.  A copy that is not "Transparent" is called "Opaque".<br>
+-<br>
+-Examples of suitable formats for Transparent copies include plain<br>
+-ASCII without markup, Texinfo input format, LaTeX input format, SGML<br>
+-or XML using a publicly available DTD, and standard-conforming simple<br>
+-HTML, PostScript or PDF designed for human modification.  Examples of<br>
+-transparent image formats include PNG, XCF and JPG.  Opaque formats<br>
+-include proprietary formats that can be read and edited only by<br>
+-proprietary word processors, SGML or XML for which the DTD and/or<br>
+-processing tools are not generally available, and the<br>
+-machine-generated HTML, PostScript or PDF produced by some word<br>
+-processors for output purposes only.<br>
+-<br>
+-The "Title Page" means, for a printed book, the title page itself,<br>
+-plus such following pages as are needed to hold, legibly, the material<br>
+-this License requires to appear in the title page.  For works in<br>
+-formats which do not have any title page as such, "Title Page" means<br>
+-the text near the most prominent appearance of the work's title,<br>
+-preceding the beginning of the body of the text.<br>
+-<br>
+-A section "Entitled XYZ" means a named subunit of the Document whose<br>
+-title either is precisely XYZ or contains XYZ in parentheses following<br>
+-text that translates XYZ in another language.  (Here XYZ stands for a<br>
+-specific section name mentioned below, such as "Acknowledgements",<br>
+-"Dedications", "Endorsements", or "History".)  To "Preserve the Title"<br>
+-of such a section when you modify the Document means that it remains a<br>
+-section "Entitled XYZ" according to this definition.<br>
+-<br>
+-The Document may include Warranty Disclaimers next to the notice which<br>
+-states that this License applies to the Document.  These Warranty<br>
+-Disclaimers are considered to be included by reference in this<br>
+-License, but only as regards disclaiming warranties: any other<br>
+-implication that these Warranty Disclaimers may have is void and has<br>
+-no effect on the meaning of this License.<br>
+-<br>
+-<br>
+-2. VERBATIM COPYING<br>
+-<br>
+-You may copy and distribute the Document in any medium, either<br>
+-commercially or noncommercially, provided that this License, the<br>
+-copyright notices, and the license notice saying this License applies<br>
+-to the Document are reproduced in all copies, and that you add no other<br>
+-conditions whatsoever to those of this License.  You may not use<br>
+-technical measures to obstruct or control the reading or further<br>
+-copying of the copies you make or distribute.  However, you may accept<br>
+-compensation in exchange for copies.  If you distribute a large enough<br>
+-number of copies you must also follow the conditions in section 3.<br>
+-<br>
+-You may also lend copies, under the same conditions stated above, and<br>
+-you may publicly display copies.<br>
+-<br>
+-<br>
+-3. COPYING IN QUANTITY<br>
+-<br>
+-If you publish printed copies (or copies in media that commonly have<br>
+-printed covers) of the Document, numbering more than 100, and the<br>
+-Document's license notice requires Cover Texts, you must enclose the<br>
+-copies in covers that carry, clearly and legibly, all these Cover<br>
+-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on<br>
+-the back cover.  Both covers must also clearly and legibly identify<br>
+-you as the publisher of these copies.  The front cover must present<br>
+-the full title with all words of the title equally prominent and<br>
+-visible.  You may add other material on the covers in addition.<br>
+-Copying with changes limited to the covers, as long as they preserve<br>
+-the title of the Document and satisfy these conditions, can be treated<br>
+-as verbatim copying in other respects.<br>
+-<br>
+-If the required texts for either cover are too voluminous to fit<br>
+-legibly, you should put the first ones listed (as many as fit<br>
+-reasonably) on the actual cover, and continue the rest onto adjacent<br>
+-pages.<br>
+-<br>
+-If you publish or distribute Opaque copies of the Document numbering<br>
+-more than 100, you must either include a machine-readable Transparent<br>
+-copy along with each Opaque copy, or state in or with each Opaque copy<br>
+-a computer-network location from which the general network-using<br>
+-public has access to download using public-standard network protocols<br>
+-a complete Transparent copy of the Document, free of added material.<br>
+-If you use the latter option, you must take reasonably prudent steps,<br>
+-when you begin distribution of Opaque copies in quantity, to ensure<br>
+-that this Transparent copy will remain thus accessible at the stated<br>
+-location until at least one year after the last time you distribute an<br>
+-Opaque copy (directly or through your agents or retailers) of that<br>
+-edition to the public.<br>
+-<br>
+-It is requested, but not required, that you contact the authors of the<br>
+-Document well before redistributing any large number of copies, to give<br>
+-them a chance to provide you with an updated version of the Document.<br>
+-<br>
+-<br>
+-4. MODIFICATIONS<br>
+-<br>
+-You may copy and distribute a Modified Version of the Document under<br>
+-the conditions of sections 2 and 3 above, provided that you release<br>
+-the Modified Version under precisely this License, with the Modified<br>
+-Version filling the role of the Document, thus licensing distribution<br>
+-and modification of the Modified Version to whoever possesses a copy<br>
+-of it.  In addition, you must do these things in the Modified Version:<br>
+-<br>
+-A. Use in the Title Page (and on the covers, if any) a title distinct<br>
+-   from that of the Document, and from those of previous versions<br>
+-   (which should, if there were any, be listed in the History section<br>
+-   of the Document).  You may use the same title as a previous version<br>
+-   if the original publisher of that version gives permission.<br>
+-B. List on the Title Page, as authors, one or more persons or entities<br>
+-   responsible for authorship of the modifications in the Modified<br>
+-   Version, together with at least five of the principal authors of the<br>
+-   Document (all of its principal authors, if it has fewer than five),<br>
+-   unless they release you from this requirement.<br>
+-C. State on the Title page the name of the publisher of the<br>
+-   Modified Version, as the publisher.<br>
+-D. Preserve all the copyright notices of the Document.<br>
+-E. Add an appropriate copyright notice for your modifications<br>
+-   adjacent to the other copyright notices.<br>
+-F. Include, immediately after the copyright notices, a license notice<br>
+-   giving the public permission to use the Modified Version under the<br>
+-   terms of this License, in the form shown in the Addendum below.<br>
+-G. Preserve in that license notice the full lists of Invariant Sections<br>
+-   and required Cover Texts given in the Document's license notice.<br>
+-H. Include an unaltered copy of this License.<br>
+-I. Preserve the section Entitled "History", Preserve its Title, and add<br>
+-   to it an item stating at least the title, year, new authors, and<br>
+-   publisher of the Modified Version as given on the Title Page.  If<br>
+-   there is no section Entitled "History" in the Document, create one<br>
+-   stating the title, year, authors, and publisher of the Document as<br>
+-   given on its Title Page, then add an item describing the Modified<br>
+-   Version as stated in the previous sentence.<br>
+-J. Preserve the network location, if any, given in the Document for<br>
+-   public access to a Transparent copy of the Document, and likewise<br>
+-   the network locations given in the Document for previous versions<br>
+-   it was based on.  These may be placed in the "History" section.<br>
+-   You may omit a network location for a work that was published at<br>
+-   least four years before the Document itself, or if the original<br>
+-   publisher of the version it refers to gives permission.<br>
+-K. For any section Entitled "Acknowledgements" or "Dedications",<br>
+-   Preserve the Title of the section, and preserve in the section all<br>
+-   the substance and tone of each of the contributor acknowledgements<br>
+-   and/or dedications given therein.<br>
+-L. Preserve all the Invariant Sections of the Document,<br>
+-   unaltered in their text and in their titles.  Section numbers<br>
+-   or the equivalent are not considered part of the section titles.<br>
+-M. Delete any section Entitled "Endorsements".  Such a section<br>
+-   may not be included in the Modified Version.<br>
+-N. Do not retitle any existing section to be Entitled "Endorsements"<br>
+-   or to conflict in title with any Invariant Section.<br>
+-O. Preserve any Warranty Disclaimers.<br>
+-<br>
+-If the Modified Version includes new front-matter sections or<br>
+-appendices that qualify as Secondary Sections and contain no material<br>
+-copied from the Document, you may at your option designate some or all<br>
+-of these sections as invariant.  To do this, add their titles to the<br>
+-list of Invariant Sections in the Modified Version's license notice.<br>
+-These titles must be distinct from any other section titles.<br>
+-<br>
+-You may add a section Entitled "Endorsements", provided it contains<br>
+-nothing but endorsements of your Modified Version by various<br>
+-parties--for example, statements of peer review or that the text has<br>
+-been approved by an organization as the authoritative definition of a<br>
+-standard.<br>
+-<br>
+-You may add a passage of up to five words as a Front-Cover Text, and a<br>
+-passage of up to 25 words as a Back-Cover Text, to the end of the list<br>
+-of Cover Texts in the Modified Version.  Only one passage of<br>
+-Front-Cover Text and one of Back-Cover Text may be added by (or<br>
+-through arrangements made by) any one entity.  If the Document already<br>
+-includes a cover text for the same cover, previously added by you or<br>
+-by arrangement made by the same entity you are acting on behalf of,<br>
+-you may not add another; but you may replace the old one, on explicit<br>
+-permission from the previous publisher that added the old one.<br>
+-<br>
+-The author(s) and publisher(s) of the Document do not by this License<br>
+-give permission to use their names for publicity for or to assert or<br>
+-imply endorsement of any Modified Version.<br>
+-<br>
+-<br>
+-5. COMBINING DOCUMENTS<br>
+-<br>
+-You may combine the Document with other documents released under this<br>
+-License, under the terms defined in section 4 above for modified<br>
+-versions, provided that you include in the combination all of the<br>
+-Invariant Sections of all of the original documents, unmodified, and<br>
+-list them all as Invariant Sections of your combined work in its<br>
+-license notice, and that you preserve all their Warranty Disclaimers.<br>
+-<br>
+-The combined work need only contain one copy of this License, and<br>
+-multiple identical Invariant Sections may be replaced with a single<br>
+-copy.  If there are multiple Invariant Sections with the same name but<br>
+-different contents, make the title of each such section unique by<br>
+-adding at the end of it, in parentheses, the name of the original<br>
+-author or publisher of that section if known, or else a unique number.<br>
+-Make the same adjustment to the section titles in the list of<br>
+-Invariant Sections in the license notice of the combined work.<br>
+-<br>
+-In the combination, you must combine any sections Entitled "History"<br>
+-in the various original documents, forming one section Entitled<br>
+-"History"; likewise combine any sections Entitled "Acknowledgements",<br>
+-and any sections Entitled "Dedications".  You must delete all sections<br>
+-Entitled "Endorsements".<br>
+-<br>
+-<br>
+-6. COLLECTIONS OF DOCUMENTS<br>
+-<br>
+-You may make a collection consisting of the Document and other documents<br>
+-released under this License, and replace the individual copies of this<br>
+-License in the various documents with a single copy that is included in<br>
+-the collection, provided that you follow the rules of this License for<br>
+-verbatim copying of each of the documents in all other respects.<br>
+-<br>
+-You may extract a single document from such a collection, and distribute<br>
+-it individually under this License, provided you insert a copy of this<br>
+-License into the extracted document, and follow this License in all<br>
+-other respects regarding verbatim copying of that document.<br>
+-<br>
+-<br>
+-7. AGGREGATION WITH INDEPENDENT WORKS<br>
+-<br>
+-A compilation of the Document or its derivatives with other separate<br>
+-and independent documents or works, in or on a volume of a storage or<br>
+-distribution medium, is called an "aggregate" if the copyright<br>
+-resulting from the compilation is not used to limit the legal rights<br>
+-of the compilation's users beyond what the individual works permit.<br>
+-When the Document is included in an aggregate, this License does not<br>
+-apply to the other works in the aggregate which are not themselves<br>
+-derivative works of the Document.<br>
+-<br>
+-If the Cover Text requirement of section 3 is applicable to these<br>
+-copies of the Document, then if the Document is less than one half of<br>
+-the entire aggregate, the Document's Cover Texts may be placed on<br>
+-covers that bracket the Document within the aggregate, or the<br>
+-electronic equivalent of covers if the Document is in electronic form.<br>
+-Otherwise they must appear on printed covers that bracket the whole<br>
+-aggregate.<br>
+-<br>
+-<br>
+-8. TRANSLATION<br>
+-<br>
+-Translation is considered a kind of modification, so you may<br>
+-distribute translations of the Document under the terms of section 4.<br>
+-Replacing Invariant Sections with translations requires special<br>
+-permission from their copyright holders, but you may include<br>
+-translations of some or all Invariant Sections in addition to the<br>
+-original versions of these Invariant Sections.  You may include a<br>
+-translation of this License, and all the license notices in the<br>
+-Document, and any Warranty Disclaimers, provided that you also include<br>
+-the original English version of this License and the original versions<br>
+-of those notices and disclaimers.  In case of a disagreement between<br>
+-the translation and the original version of this License or a notice<br>
+-or disclaimer, the original version will prevail.<br>
+-<br>
+-If a section in the Document is Entitled "Acknowledgements",<br>
+-"Dedications", or "History", the requirement (section 4) to Preserve<br>
+-its Title (section 1) will typically require changing the actual<br>
+-title.<br>
+-<br>
+-<br>
+-9. TERMINATION<br>
+-<br>
+-You may not copy, modify, sublicense, or distribute the Document except<br>
+-as expressly provided for under this License.  Any other attempt to<br>
+-copy, modify, sublicense or distribute the Document is void, and will<br>
+-automatically terminate your rights under this License.  However,<br>
+-parties who have received copies, or rights, from you under this<br>
+-License will not have their licenses terminated so long as such<br>
+-parties remain in full compliance.<br>
+-<br>
+-<br>
+-10. FUTURE REVISIONS OF THIS LICENSE<br>
+-<br>
+-The Free Software Foundation may publish new, revised versions<br>
+-of the GNU Free Documentation License from time to time.  Such new<br>
+-versions will be similar in spirit to the present version, but may<br>
+-differ in detail to address new problems or concerns.  See<br>
+-http://www.gnu.org/copyleft/.<br>
+-<br>
+-Each version of the License is given a distinguishing version number.<br>
+-If the Document specifies that a particular numbered version of this<br>
+-License "or any later version" applies to it, you have the option of<br>
+-following the terms and conditions either of that specified version or<br>
+-of any later version that has been published (not as a draft) by the<br>
+-Free Software Foundation.  If the Document does not specify a version<br>
+-number of this License, you may choose any version ever published (not<br>
+-as a draft) by the Free Software Foundation.<br>
+-<br>
+-<br>
+-ADDENDUM: How to use this License for your documents<br>
+-<br>
+-To use this License in a document you have written, include a copy of<br>
+-the License in the document and put the following copyright and<br>
+-license notices just after the title page:<br>
+-<br>
+-    Copyright (c)  YEAR  YOUR NAME.<br>
+-    Permission is granted to copy, distribute and/or modify this document<br>
+-    under the terms of the GNU Free Documentation License, Version 1.2<br>
+-    or any later version published by the Free Software Foundation;<br>
+-    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.<br>
+-    A copy of the license is included in the section entitled "GNU<br>
+-    Free Documentation License".<br>
+-<br>
+-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,<br>
+-replace the "with...Texts." line with this:<br>
+-<br>
+-    with the Invariant Sections being LIST THEIR TITLES, with the<br>
+-    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.<br>
+-<br>
+-If you have Invariant Sections without Cover Texts, or some other<br>
+-combination of the three, merge those two alternatives to suit the<br>
+-situation.<br>
+-<br>
+-If your document contains nontrivial examples of program code, we<br>
+-recommend releasing these examples in parallel under your choice of<br>
+-free software license, such as the GNU General Public License,<br>
+-to permit their use in free software.<br>
+-<br>
+-<br>
+-      </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="license.gpl.html"><< 1. The GNU General Public License</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="licenses.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> </td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/license.gpl.html b/docs/html/license.gpl.html
+deleted file mode 100644
+index b9bc884..0000000
+--- a/docs/html/license.gpl.html
++++ /dev/null
+@@ -1,380 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>1. The GNU General Public License</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="licenses.html" title="GNU Licenses">
+-<link rel="prev" href="licenses.html" title="GNU Licenses">
+-<link rel="next" href="license.gfdl.html" title="2. The GNU Free Documentation License">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="licenses.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="licenses.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">GNU Licenses</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="license.gfdl.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="1. The GNU General Public License">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="license.gpl"></a>1. The GNU General Public License</h2></div></div></div>
+-<div class="literallayout"><p><br>
+-      		    GNU GENERAL PUBLIC LICENSE<br>
+-		       Version 2, June 1991<br>
+-<br>
+- Copyright (C) 1989, 1991 Free Software Foundation, Inc.<br>
+-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA<br>
+- Everyone is permitted to copy and distribute verbatim copies<br>
+- of this license document, but changing it is not allowed.<br>
+-<br>
+-			    Preamble<br>
+-<br>
+-  The licenses for most software are designed to take away your<br>
+-freedom to share and change it.  By contrast, the GNU General Public<br>
+-License is intended to guarantee your freedom to share and change free<br>
+-software--to make sure the software is free for all its users.  This<br>
+-General Public License applies to most of the Free Software<br>
+-Foundation's software and to any other program whose authors commit to<br>
+-using it.  (Some other Free Software Foundation software is covered by<br>
+-the GNU Library General Public License instead.)  You can apply it to<br>
+-your programs, too.<br>
+-<br>
+-  When we speak of free software, we are referring to freedom, not<br>
+-price.  Our General Public Licenses are designed to make sure that you<br>
+-have the freedom to distribute copies of free software (and charge for<br>
+-this service if you wish), that you receive source code or can get it<br>
+-if you want it, that you can change the software or use pieces of it<br>
+-in new free programs; and that you know you can do these things.<br>
+-<br>
+-  To protect your rights, we need to make restrictions that forbid<br>
+-anyone to deny you these rights or to ask you to surrender the rights.<br>
+-These restrictions translate to certain responsibilities for you if you<br>
+-distribute copies of the software, or if you modify it.<br>
+-<br>
+-  For example, if you distribute copies of such a program, whether<br>
+-gratis or for a fee, you must give the recipients all the rights that<br>
+-you have.  You must make sure that they, too, receive or can get the<br>
+-source code.  And you must show them these terms so they know their<br>
+-rights.<br>
+-<br>
+-  We protect your rights with two steps: (1) copyright the software, and<br>
+-(2) offer you this license which gives you legal permission to copy,<br>
+-distribute and/or modify the software.<br>
+-<br>
+-  Also, for each author's protection and ours, we want to make certain<br>
+-that everyone understands that there is no warranty for this free<br>
+-software.  If the software is modified by someone else and passed on, we<br>
+-want its recipients to know that what they have is not the original, so<br>
+-that any problems introduced by others will not reflect on the original<br>
+-authors' reputations.<br>
+-<br>
+-  Finally, any free program is threatened constantly by software<br>
+-patents.  We wish to avoid the danger that redistributors of a free<br>
+-program will individually obtain patent licenses, in effect making the<br>
+-program proprietary.  To prevent this, we have made it clear that any<br>
+-patent must be licensed for everyone's free use or not licensed at all.<br>
+-<br>
+-  The precise terms and conditions for copying, distribution and<br>
+-modification follow.<br>
+-<br>
+-		    GNU GENERAL PUBLIC LICENSE<br>
+-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION<br>
+-<br>
+-  0. This License applies to any program or other work which contains<br>
+-a notice placed by the copyright holder saying it may be distributed<br>
+-under the terms of this General Public License.  The "Program", below,<br>
+-refers to any such program or work, and a "work based on the Program"<br>
+-means either the Program or any derivative work under copyright law:<br>
+-that is to say, a work containing the Program or a portion of it,<br>
+-either verbatim or with modifications and/or translated into another<br>
+-language.  (Hereinafter, translation is included without limitation in<br>
+-the term "modification".)  Each licensee is addressed as "you".<br>
+-<br>
+-Activities other than copying, distribution and modification are not<br>
+-covered by this License; they are outside its scope.  The act of<br>
+-running the Program is not restricted, and the output from the Program<br>
+-is covered only if its contents constitute a work based on the<br>
+-Program (independent of having been made by running the Program).<br>
+-Whether that is true depends on what the Program does.<br>
+-<br>
+-  1. You may copy and distribute verbatim copies of the Program's<br>
+-source code as you receive it, in any medium, provided that you<br>
+-conspicuously and appropriately publish on each copy an appropriate<br>
+-copyright notice and disclaimer of warranty; keep intact all the<br>
+-notices that refer to this License and to the absence of any warranty;<br>
+-and give any other recipients of the Program a copy of this License<br>
+-along with the Program.<br>
+-<br>
+-You may charge a fee for the physical act of transferring a copy, and<br>
+-you may at your option offer warranty protection in exchange for a fee.<br>
+-<br>
+-  2. You may modify your copy or copies of the Program or any portion<br>
+-of it, thus forming a work based on the Program, and copy and<br>
+-distribute such modifications or work under the terms of Section 1<br>
+-above, provided that you also meet all of these conditions:<br>
+-<br>
+-    a) You must cause the modified files to carry prominent notices<br>
+-    stating that you changed the files and the date of any change.<br>
+-<br>
+-    b) You must cause any work that you distribute or publish, that in<br>
+-    whole or in part contains or is derived from the Program or any<br>
+-    part thereof, to be licensed as a whole at no charge to all third<br>
+-    parties under the terms of this License.<br>
+-<br>
+-    c) If the modified program normally reads commands interactively<br>
+-    when run, you must cause it, when started running for such<br>
+-    interactive use in the most ordinary way, to print or display an<br>
+-    announcement including an appropriate copyright notice and a<br>
+-    notice that there is no warranty (or else, saying that you provide<br>
+-    a warranty) and that users may redistribute the program under<br>
+-    these conditions, and telling the user how to view a copy of this<br>
+-    License.  (Exception: if the Program itself is interactive but<br>
+-    does not normally print such an announcement, your work based on<br>
+-    the Program is not required to print an announcement.)<br>
+-<br>
+-These requirements apply to the modified work as a whole.  If<br>
+-identifiable sections of that work are not derived from the Program,<br>
+-and can be reasonably considered independent and separate works in<br>
+-themselves, then this License, and its terms, do not apply to those<br>
+-sections when you distribute them as separate works.  But when you<br>
+-distribute the same sections as part of a whole which is a work based<br>
+-on the Program, the distribution of the whole must be on the terms of<br>
+-this License, whose permissions for other licensees extend to the<br>
+-entire whole, and thus to each and every part regardless of who wrote it.<br>
+-<br>
+-Thus, it is not the intent of this section to claim rights or contest<br>
+-your rights to work written entirely by you; rather, the intent is to<br>
+-exercise the right to control the distribution of derivative or<br>
+-collective works based on the Program.<br>
+-<br>
+-In addition, mere aggregation of another work not based on the Program<br>
+-with the Program (or with a work based on the Program) on a volume of<br>
+-a storage or distribution medium does not bring the other work under<br>
+-the scope of this License.<br>
+-<br>
+-  3. You may copy and distribute the Program (or a work based on it,<br>
+-under Section 2) in object code or executable form under the terms of<br>
+-Sections 1 and 2 above provided that you also do one of the following:<br>
+-<br>
+-    a) Accompany it with the complete corresponding machine-readable<br>
+-    source code, which must be distributed under the terms of Sections<br>
+-    1 and 2 above on a medium customarily used for software interchange; or,<br>
+-<br>
+-    b) Accompany it with a written offer, valid for at least three<br>
+-    years, to give any third party, for a charge no more than your<br>
+-    cost of physically performing source distribution, a complete<br>
+-    machine-readable copy of the corresponding source code, to be<br>
+-    distributed under the terms of Sections 1 and 2 above on a medium<br>
+-    customarily used for software interchange; or,<br>
+-<br>
+-    c) Accompany it with the information you received as to the offer<br>
+-    to distribute corresponding source code.  (This alternative is<br>
+-    allowed only for noncommercial distribution and only if you<br>
+-    received the program in object code or executable form with such<br>
+-    an offer, in accord with Subsection b above.)<br>
+-<br>
+-The source code for a work means the preferred form of the work for<br>
+-making modifications to it.  For an executable work, complete source<br>
+-code means all the source code for all modules it contains, plus any<br>
+-associated interface definition files, plus the scripts used to<br>
+-control compilation and installation of the executable.  However, as a<br>
+-special exception, the source code distributed need not include<br>
+-anything that is normally distributed (in either source or binary<br>
+-form) with the major components (compiler, kernel, and so on) of the<br>
+-operating system on which the executable runs, unless that component<br>
+-itself accompanies the executable.<br>
+-<br>
+-If distribution of executable or object code is made by offering<br>
+-access to copy from a designated place, then offering equivalent<br>
+-access to copy the source code from the same place counts as<br>
+-distribution of the source code, even though third parties are not<br>
+-compelled to copy the source along with the object code.<br>
+-<br>
+-  4. You may not copy, modify, sublicense, or distribute the Program<br>
+-except as expressly provided under this License.  Any attempt<br>
+-otherwise to copy, modify, sublicense or distribute the Program is<br>
+-void, and will automatically terminate your rights under this License.<br>
+-However, parties who have received copies, or rights, from you under<br>
+-this License will not have their licenses terminated so long as such<br>
+-parties remain in full compliance.<br>
+-<br>
+-  5. You are not required to accept this License, since you have not<br>
+-signed it.  However, nothing else grants you permission to modify or<br>
+-distribute the Program or its derivative works.  These actions are<br>
+-prohibited by law if you do not accept this License.  Therefore, by<br>
+-modifying or distributing the Program (or any work based on the<br>
+-Program), you indicate your acceptance of this License to do so, and<br>
+-all its terms and conditions for copying, distributing or modifying<br>
+-the Program or works based on it.<br>
+-<br>
+-  6. Each time you redistribute the Program (or any work based on the<br>
+-Program), the recipient automatically receives a license from the<br>
+-original licensor to copy, distribute or modify the Program subject to<br>
+-these terms and conditions.  You may not impose any further<br>
+-restrictions on the recipients' exercise of the rights granted herein.<br>
+-You are not responsible for enforcing compliance by third parties to<br>
+-this License.<br>
+-<br>
+-  7. If, as a consequence of a court judgment or allegation of patent<br>
+-infringement or for any other reason (not limited to patent issues),<br>
+-conditions are imposed on you (whether by court order, agreement or<br>
+-otherwise) that contradict the conditions of this License, they do not<br>
+-excuse you from the conditions of this License.  If you cannot<br>
+-distribute so as to satisfy simultaneously your obligations under this<br>
+-License and any other pertinent obligations, then as a consequence you<br>
+-may not distribute the Program at all.  For example, if a patent<br>
+-license would not permit royalty-free redistribution of the Program by<br>
+-all those who receive copies directly or indirectly through you, then<br>
+-the only way you could satisfy both it and this License would be to<br>
+-refrain entirely from distribution of the Program.<br>
+-<br>
+-If any portion of this section is held invalid or unenforceable under<br>
+-any particular circumstance, the balance of the section is intended to<br>
+-apply and the section as a whole is intended to apply in other<br>
+-circumstances.<br>
+-<br>
+-It is not the purpose of this section to induce you to infringe any<br>
+-patents or other property right claims or to contest validity of any<br>
+-such claims; this section has the sole purpose of protecting the<br>
+-integrity of the free software distribution system, which is<br>
+-implemented by public license practices.  Many people have made<br>
+-generous contributions to the wide range of software distributed<br>
+-through that system in reliance on consistent application of that<br>
+-system; it is up to the author/donor to decide if he or she is willing<br>
+-to distribute software through any other system and a licensee cannot<br>
+-impose that choice.<br>
+-<br>
+-This section is intended to make thoroughly clear what is believed to<br>
+-be a consequence of the rest of this License.<br>
+-<br>
+-  8. If the distribution and/or use of the Program is restricted in<br>
+-certain countries either by patents or by copyrighted interfaces, the<br>
+-original copyright holder who places the Program under this License<br>
+-may add an explicit geographical distribution limitation excluding<br>
+-those countries, so that distribution is permitted only in or among<br>
+-countries not thus excluded.  In such case, this License incorporates<br>
+-the limitation as if written in the body of this License.<br>
+-<br>
+-  9. The Free Software Foundation may publish revised and/or new versions<br>
+-of the General Public License from time to time.  Such new versions will<br>
+-be similar in spirit to the present version, but may differ in detail to<br>
+-address new problems or concerns.<br>
+-<br>
+-Each version is given a distinguishing version number.  If the Program<br>
+-specifies a version number of this License which applies to it and "any<br>
+-later version", you have the option of following the terms and conditions<br>
+-either of that version or of any later version published by the Free<br>
+-Software Foundation.  If the Program does not specify a version number of<br>
+-this License, you may choose any version ever published by the Free Software<br>
+-Foundation.<br>
+-<br>
+-  10. If you wish to incorporate parts of the Program into other free<br>
+-programs whose distribution conditions are different, write to the author<br>
+-to ask for permission.  For software which is copyrighted by the Free<br>
+-Software Foundation, write to the Free Software Foundation; we sometimes<br>
+-make exceptions for this.  Our decision will be guided by the two goals<br>
+-of preserving the free status of all derivatives of our free software and<br>
+-of promoting the sharing and reuse of software generally.<br>
+-<br>
+-			    NO WARRANTY<br>
+-<br>
+-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY<br>
+-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN<br>
+-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES<br>
+-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED<br>
+-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br>
+-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS<br>
+-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE<br>
+-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,<br>
+-REPAIR OR CORRECTION.<br>
+-<br>
+-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING<br>
+-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR<br>
+-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,<br>
+-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING<br>
+-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED<br>
+-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY<br>
+-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER<br>
+-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE<br>
+-POSSIBILITY OF SUCH DAMAGES.<br>
+-<br>
+-		     END OF TERMS AND CONDITIONS<br>
+-<br>
+-	    How to Apply These Terms to Your New Programs<br>
+-<br>
+-  If you develop a new program, and you want it to be of the greatest<br>
+-possible use to the public, the best way to achieve this is to make it<br>
+-free software which everyone can redistribute and change under these terms.<br>
+-<br>
+-  To do so, attach the following notices to the program.  It is safest<br>
+-to attach them to the start of each source file to most effectively<br>
+-convey the exclusion of warranty; and each file should have at least<br>
+-the "copyright" line and a pointer to where the full notice is found.<br>
+-<br>
+-    <one line to give the program's name and a brief idea of what it does.><br>
+-    Copyright (C) <year>  <name of author><br>
+-<br>
+-    This program is free software; you can redistribute it and/or modify<br>
+-    it under the terms of the GNU General Public License as published by<br>
+-    the Free Software Foundation; either version 2 of the License, or<br>
+-    (at your option) any later version.<br>
+-<br>
+-    This program is distributed in the hope that it will be useful,<br>
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>
+-    GNU General Public License for more details.<br>
+-<br>
+-    You should have received a copy of the GNU General Public License<br>
+-    along with this program; if not, write to the Free Software<br>
+-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA<br>
+-<br>
+-<br>
+-Also add information on how to contact you by electronic and paper mail.<br>
+-<br>
+-If the program is interactive, make it output a short notice like this<br>
+-when it starts in an interactive mode:<br>
+-<br>
+-    Gnomovision version 69, Copyright (C) year  name of author<br>
+-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.<br>
+-    This is free software, and you are welcome to redistribute it<br>
+-    under certain conditions; type `show c' for details.<br>
+-<br>
+-The hypothetical commands `show w' and `show c' should show the appropriate<br>
+-parts of the General Public License.  Of course, the commands you use may<br>
+-be called something other than `show w' and `show c'; they could even be<br>
+-mouse-clicks or menu items--whatever suits your program.<br>
+-<br>
+-You should also get your employer (if you work as a programmer) or your<br>
+-school, if any, to sign a "copyright disclaimer" for the program, if<br>
+-necessary.  Here is a sample; alter the names:<br>
+-<br>
+-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program<br>
+-  `Gnomovision' (which makes passes at compilers) written by James Hacker.<br>
+-<br>
+-  <signature of Ty Coon>, 1 April 1989<br>
+-  Ty Coon, President of Vice<br>
+-<br>
+-This General Public License does not permit incorporating your program into<br>
+-proprietary programs.  If your program is a subroutine library, you may<br>
+-consider it more useful to permit linking proprietary applications with the<br>
+-library.  If this is what you want to do, use the GNU Library General<br>
+-Public License instead of this License.<br>
+-<br>
+-      </p></div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="licenses.html"><< GNU Licenses</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="licenses.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="license.gfdl.html">2. The GNU Free Documentation License >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/licenses.html b/docs/html/licenses.html
+deleted file mode 100644
+index bbb2875..0000000
+--- a/docs/html/licenses.html
++++ /dev/null
+@@ -1,47 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>GNU Licenses</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="dist.readme-mips.html" title="11. README.mips">
+-<link rel="next" href="license.gpl.html" title="1. The GNU General Public License">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.readme-mips.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="license.gpl.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="GNU Licenses">
+-<div class="titlepage">
+-<div><div><h1 class="title">
+-<a name="licenses"></a>GNU Licenses</h1></div></div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="chapter"><a href="license.gpl.html">1. The GNU General Public License</a></span></dt>
+-<dt><span class="chapter"><a href="license.gfdl.html">2. The GNU Free Documentation License</a></span></dt>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dist.readme-mips.html"><< 11. README.mips</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="license.gpl.html">1. The GNU General Public License >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/lk-manual.html b/docs/html/lk-manual.html
+deleted file mode 100644
+index c3693bc..0000000
+--- a/docs/html/lk-manual.html
++++ /dev/null
+@@ -1,131 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>13. Lackey: an example tool</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="bbv-manual.html" title="12. BBV: an experimental basic block vector generation tool">
+-<link rel="next" href="nl-manual.html" title="14. Nulgrind: the minimal Valgrind tool">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="bbv-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="nl-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="13. Lackey: an example tool">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="lk-manual"></a>13. Lackey: an example tool</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="lk-manual.html#lk-manual.overview">13.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="lk-manual.html#lk-manual.options">13.2. Lackey Command-line Options</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=lackey</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="13.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="lk-manual.overview"></a>13.1. Overview</h2></div></div></div>
+-<p>Lackey is a simple Valgrind tool that does various kinds of basic
+-program measurement.  It adds quite a lot of simple instrumentation to the
+-program's code.  It is primarily intended to be of use as an example tool,
+-and consequently emphasises clarity of implementation over
+-performance.</p>
+-</div>
+-<div class="sect1" title="13.2. Lackey Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="lk-manual.options"></a>13.2. Lackey Command-line Options</h2></div></div></div>
+-<p>Lackey-specific command-line options are:</p>
+-<div class="variablelist">
+-<a name="lk.opts.list"></a><dl>
+-<dt>
+-<a name="opt.basic-counts"></a><span class="term">
+-      <code class="option">--basic-counts=<no|yes> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, Lackey prints the following statistics and
+-      information about the execution of the client program:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>The number of calls to the function specified by the
+-        <code class="option">--fnname</code> option (the default is
+-        <code class="computeroutput">main</code>).
+-        If the program has had its symbols stripped, the count will always
+-        be zero.</p></li>
+-<li class="listitem"><p>The number of conditional branches encountered and the
+-        number and proportion of those taken.</p></li>
+-<li class="listitem"><p>The number of superblocks entered and completed by the
+-        program.  Note that due to optimisations done by the JIT, this
+-        is not at all an accurate value.</p></li>
+-<li class="listitem"><p>The number of guest (x86, amd64, ppc, etc.) instructions and IR
+-        statements executed.  IR is Valgrind's RISC-like intermediate
+-        representation via which all instrumentation is done.
+-        </p></li>
+-<li class="listitem"><p>Ratios between some of these counts.</p></li>
+-<li class="listitem"><p>The exit code of the client program.</p></li>
+-</ol></div>
+-</dd>
+-<dt>
+-<a name="opt.detailed-counts"></a><span class="term">
+-      <code class="option">--detailed-counts=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Lackey prints a table containing counts of loads,
+-      stores and ALU operations, differentiated by their IR types.
+-      The IR types are identified by their IR name ("I1", "I8", ... "I128",
+-      "F32", "F64", and "V128").</p></dd>
+-<dt>
+-<a name="opt.trace-mem"></a><span class="term">
+-      <code class="option">--trace-mem=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Lackey prints the size and address of almost every
+-      memory access made by the program.  See the comments at the top of
+-      the file <code class="computeroutput">lackey/lk_main.c</code> for details
+-      about the output format, how it works, and inaccuracies in the address
+-      trace.  Note that this option produces immense amounts of output.</p></dd>
+-<dt>
+-<a name="opt.trace-superblocks"></a><span class="term">
+-      <code class="option">--trace-superblocks=<no|yes> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, 
+-      Lackey prints out the address of every superblock 
+-      (a single entry, multiple exit, linear chunk of code) executed by the
+-      program.  This is primarily of interest to Valgrind developers.  See
+-      the comments at the top of the file
+-      <code class="computeroutput">lackey/lk_main.c</code> for details about
+-      the output format.  Note that this option produces large amounts of
+-      output.</p></dd>
+-<dt>
+-<a name="opt.fnname"></a><span class="term">
+-      <code class="option">--fnname=<name> [default: main] </code>
+-    </span>
+-</dt>
+-<dd><p>Changes the function for which calls are counted when
+-      <code class="option">--basic-counts=yes</code> is specified.</p></dd>
+-</dl>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="bbv-manual.html"><< 12. BBV: an experimental basic block vector generation tool</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="nl-manual.html">14. Nulgrind: the minimal Valgrind tool >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/manual-core-adv.html b/docs/html/manual-core-adv.html
+deleted file mode 100644
+index 4c9ba9e..0000000
+--- a/docs/html/manual-core-adv.html
++++ /dev/null
+@@ -1,1569 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>3. Using and understanding the Valgrind core: Advanced Topics</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="manual-core.html" title="2. Using and understanding the Valgrind core">
+-<link rel="next" href="mc-manual.html" title="4. Memcheck: a memory error detector">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="manual-core.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="mc-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="3. Using and understanding the Valgrind core: Advanced Topics">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="manual-core-adv"></a>3. Using and understanding the Valgrind core: Advanced Topics</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.clientreq">3.1. The Client Request mechanism</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.gdbserver">3.2. Debugging your program using Valgrind gdbserver and GDB</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-simple">3.2.1. Quick Start: debugging in 3 steps</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-concept">3.2.2. Valgrind gdbserver overall organisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-gdb">3.2.3. Connecting GDB to a Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-gdb-android">3.2.4. Connecting to an Android gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling">3.2.5. Monitor command handling by the Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-threads">3.2.6. Valgrind gdbserver thread information</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-shadowregisters">3.2.7. Examining and modifying Valgrind shadow registers</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-limitations">3.2.8. Limitations of the Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.vgdb">3.2.9. vgdb command line options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.valgrind-monitor-commands">3.2.10. Valgrind monitor commands</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.wrapping">3.3. Function wrapping</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.example">3.3.1. A Simple Example</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.specs">3.3.2. Wrapping Specifications</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.semantics">3.3.3. Wrapping Semantics</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.debugging">3.3.4. Debugging</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.limitations-cf">3.3.5. Limitations - control flow</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.limitations-sigs">3.3.6. Limitations - original function signatures</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.examples">3.3.7. Examples</a></span></dt>
+-</dl></dd>
+-</dl>
+-</div>
+-<p>This chapter describes advanced aspects of the Valgrind core
+-services, which are mostly of interest to power users who wish to
+-customise and modify Valgrind's default behaviours in certain useful
+-ways.  The subjects covered are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>The "Client Request" mechanism</p></li>
+-<li class="listitem"><p>Debugging your program using Valgrind's gdbserver
+-      and GDB</p></li>
+-<li class="listitem"><p>Function Wrapping</p></li>
+-</ul></div>
+-<div class="sect1" title="3.1. The Client Request mechanism">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core-adv.clientreq"></a>3.1. The Client Request mechanism</h2></div></div></div>
+-<p>Valgrind has a trapdoor mechanism via which the client
+-program can pass all manner of requests and queries to Valgrind
+-and the current tool.  Internally, this is used extensively 
+-to make various things work, although that's not visible from the
+-outside.</p>
+-<p>For your convenience, a subset of these so-called client
+-requests is provided to allow you to tell Valgrind facts about
+-the behaviour of your program, and also to make queries.
+-In particular, your program can tell Valgrind about things that it
+-otherwise would not know, leading to better results.
+-</p>
+-<p>Clients need to include a header file to make this work.
+-Which header file depends on which client requests you use.  Some
+-client requests are handled by the core, and are defined in the
+-header file <code class="filename">valgrind/valgrind.h</code>.  Tool-specific
+-header files are named after the tool, e.g.
+-<code class="filename">valgrind/memcheck.h</code>.  Each tool-specific header file
+-includes <code class="filename">valgrind/valgrind.h</code> so you don't need to
+-include it in your client if you include a tool-specific header.  All header
+-files can be found in the <code class="literal">include/valgrind</code> directory of
+-wherever Valgrind was installed.</p>
+-<p>The macros in these header files have the magical property
+-that they generate code in-line which Valgrind can spot.
+-However, the code does nothing when not run on Valgrind, so you
+-are not forced to run your program under Valgrind just because you
+-use the macros in this file.  Also, you are not required to link your
+-program with any extra supporting libraries.</p>
+-<p>The code added to your binary has negligible performance impact:
+-on x86, amd64, ppc32, ppc64 and ARM, the overhead is 6 simple integer
+-instructions and is probably undetectable except in tight loops.
+-However, if you really wish to compile out the client requests, you
+-can compile with <code class="option">-DNVALGRIND</code> (analogous to
+-<code class="option">-DNDEBUG</code>'s effect on
+-<code class="function">assert</code>).
+-</p>
+-<p>You are encouraged to copy the <code class="filename">valgrind/*.h</code> headers
+-into your project's include directory, so your program doesn't have a
+-compile-time dependency on Valgrind being installed.  The Valgrind headers,
+-unlike most of the rest of the code, are under a BSD-style license so you may
+-include them without worrying about license incompatibility.</p>
+-<p>Here is a brief description of the macros available in
+-<code class="filename">valgrind.h</code>, which work with more than one
+-tool (see the tool-specific documentation for explanations of the
+-tool-specific macros).</p>
+-<div class="variablelist"><dl>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">RUNNING_ON_VALGRIND</code></strong></span>:</span></dt>
+-<dd><p>Returns 1 if running on Valgrind, 0 if running on the
+-    real CPU.  If you are running Valgrind on itself, returns the
+-    number of layers of Valgrind emulation you're running on.
+-    </p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_DISCARD_TRANSLATIONS</code>:</strong></span></span></dt>
+-<dd>
+-<p>Discards translations of code in the specified address
+-    range.  Useful if you are debugging a JIT compiler or some other
+-    dynamic code generation system.  After this call, attempts to
+-    execute code in the invalidated address range will cause
+-    Valgrind to make new translations of that code, which is
+-    probably the semantics you want.  Note that code invalidations
+-    are expensive because finding all the relevant translations
+-    quickly is very difficult, so try not to call it often.
+-    Note that you can be clever about
+-    this: you only need to call it when an area which previously
+-    contained code is overwritten with new code.  You can choose
+-    to write code into fresh memory, and just call this
+-    occasionally to discard large chunks of old code all at
+-    once.</p>
+-<p>
+-    Alternatively, for transparent self-modifying-code support,
+-    use<code class="option">--smc-check=all</code>, or run
+-    on ppc32/Linux, ppc64/Linux or ARM/Linux.
+-    </p>
+-</dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_COUNT_ERRORS</code>:</strong></span></span></dt>
+-<dd><p>Returns the number of errors found so far by Valgrind.  Can be
+-    useful in test harness code when combined with the
+-    <code class="option">--log-fd=-1</code> option; this runs Valgrind silently,
+-    but the client program can detect when errors occur.  Only useful
+-    for tools that report errors, e.g. it's useful for Memcheck, but for
+-    Cachegrind it will always return zero because Cachegrind doesn't
+-    report errors.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_MALLOCLIKE_BLOCK</code>:</strong></span></span></dt>
+-<dd><p>If your program manages its own memory instead of using
+-    the standard <code class="function">malloc</code> /
+-    <code class="function">new</code> /
+-    <code class="function">new[]</code>, tools that track
+-    information about heap blocks will not do nearly as good a
+-    job.  For example, Memcheck won't detect nearly as many
+-    errors, and the error messages won't be as informative.  To
+-    improve this situation, use this macro just after your custom
+-    allocator allocates some new memory.  See the comments in
+-    <code class="filename">valgrind.h</code> for information on how to use
+-    it.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_FREELIKE_BLOCK</code>:</strong></span></span></dt>
+-<dd><p>This should be used in conjunction with
+-    <code class="computeroutput">VALGRIND_MALLOCLIKE_BLOCK</code>.
+-    Again, see <code class="filename">valgrind.h</code> for
+-    information on how to use it.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_RESIZEINPLACE_BLOCK</code>:</strong></span></span></dt>
+-<dd><p>Informs a Valgrind tool that the size of an allocated block has been
+-    modified but not its address. See <code class="filename">valgrind.h</code> for
+-    more information on how to use it.</p></dd>
+-<dt><span class="term">
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_CREATE_MEMPOOL</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_DESTROY_MEMPOOL</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_MEMPOOL_ALLOC</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_MEMPOOL_FREE</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_MOVE_MEMPOOL</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_MEMPOOL_CHANGE</code></strong></span>,
+-   <span class="command"><strong><code class="computeroutput">VALGRIND_MEMPOOL_EXISTS</code></strong></span>:
+-   </span></dt>
+-<dd><p>These are similar to 
+-    <code class="computeroutput">VALGRIND_MALLOCLIKE_BLOCK</code> and
+-    <code class="computeroutput">VALGRIND_FREELIKE_BLOCK</code>
+-    but are tailored towards code that uses memory pools.  See 
+-    <a class="xref" href="mc-manual.html#mc-manual.mempools" title="4.8. Memory Pools: describing and working with custom allocators">Memory Pools</a> for a detailed description.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_NON_SIMD_CALL[0123]</code>:</strong></span></span></dt>
+-<dd>
+-<p>Executes a function in the client program on the
+-    <span class="emphasis"><em>real</em></span> CPU, not the virtual CPU that Valgrind
+-    normally runs code on.  The function must take an integer (holding a
+-    thread ID) as the first argument and then 0, 1, 2 or 3 more arguments
+-    (depending on which client request is used).  These are used in various
+-    ways internally to Valgrind.  They might be useful to client
+-    programs.</p>
+-<p><span class="command"><strong>Warning:</strong></span> Only use these if you
+-    <span class="emphasis"><em>really</em></span> know what you are doing.  They aren't 
+-    entirely reliable, and can cause Valgrind to crash.  See
+-    <code class="filename">valgrind.h</code> for more details.
+-    </p>
+-</dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_PRINTF(format, ...)</code>:</strong></span></span></dt>
+-<dd><p>Print a printf-style message to the Valgrind log file.  The
+-    message is prefixed with the PID between a pair of
+-    <code class="computeroutput">**</code> markers.  (Like all client requests,
+-    nothing is output if the client program is not running under Valgrind.)
+-    Output is not produced until a newline is encountered, or subsequent
+-    Valgrind output is printed; this allows you to build up a single line of
+-    output over multiple calls.  Returns the number of characters output,
+-    excluding the PID prefix.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_PRINTF_BACKTRACE(format, ...)</code>:</strong></span></span></dt>
+-<dd><p>Like <code class="computeroutput">VALGRIND_PRINTF</code> (in
+-    particular, the return value is identical), but prints a stack backtrace
+-    immediately afterwards.</p></dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_STACK_REGISTER(start, end)</code>:</strong></span></span></dt>
+-<dd>
+-<p>Registers a new stack.  Informs Valgrind that the memory range
+-    between start and end is a unique stack.  Returns a stack identifier
+-    that can be used with other
+-    <code class="computeroutput">VALGRIND_STACK_*</code> calls.</p>
+-<p>Valgrind will use this information to determine if a change to
+-    the stack pointer is an item pushed onto the stack or a change over
+-    to a new stack.  Use this if you're using a user-level thread package
+-    and are noticing spurious errors from Valgrind about uninitialized
+-    memory reads.</p>
+-<p><span class="command"><strong>Warning:</strong></span> Unfortunately, this client request is
+-    unreliable and best avoided.</p>
+-</dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_STACK_DEREGISTER(id)</code>:</strong></span></span></dt>
+-<dd>
+-<p>Deregisters a previously registered stack.  Informs
+-    Valgrind that previously registered memory range with stack id
+-    <code class="computeroutput">id</code> is no longer a stack.</p>
+-<p><span class="command"><strong>Warning:</strong></span> Unfortunately, this client request is
+-    unreliable and best avoided.</p>
+-</dd>
+-<dt><span class="term"><span class="command"><strong><code class="computeroutput">VALGRIND_STACK_CHANGE(id, start, end)</code>:</strong></span></span></dt>
+-<dd>
+-<p>Changes a previously registered stack.  Informs
+-    Valgrind that the previously registered stack with stack id
+-    <code class="computeroutput">id</code> has changed its start and end
+-    values.  Use this if your user-level thread package implements
+-    stack growth.</p>
+-<p><span class="command"><strong>Warning:</strong></span> Unfortunately, this client request is
+-    unreliable and best avoided.</p>
+-</dd>
+-</dl></div>
+-</div>
+-<div class="sect1" title="3.2. Debugging your program using Valgrind gdbserver and GDB">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core-adv.gdbserver"></a>3.2. Debugging your program using Valgrind gdbserver and GDB</h2></div></div></div>
+-<p>A program running under Valgrind is not executed directly by the
+-CPU.  Instead it runs on a synthetic CPU provided by Valgrind.  This is
+-why a debugger cannot debug your program when it runs on Valgrind.
+-</p>
+-<p>
+-This section describes how GDB can interact with the
+-Valgrind gdbserver to provide a fully debuggable program under
+-Valgrind. Used in this way, GDB also provides an interactive usage of
+-Valgrind core or tool functionalities, including incremental leak search
+-under Memcheck and on-demand Massif snapshot production.
+-</p>
+-<div class="sect2" title="3.2.1. Quick Start: debugging in 3 steps">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-simple"></a>3.2.1. Quick Start: debugging in 3 steps</h3></div></div></div>
+-<p>The simplest way to get started is to run Valgrind with the
+-flag <code class="option">--vgdb-error=0</code>.  Then follow the on-screen
+-directions, which give you the precise commands needed to start GDB
+-and connect it to your program.</p>
+-<p>Otherwise, here's a slightly more verbose overview.</p>
+-<p>If you want to debug a program with GDB when using the Memcheck
+-tool, start Valgrind like this:
+-</p>
+-<pre class="screen">
+-valgrind --vgdb=yes --vgdb-error=0 prog
+-</pre>
+-<p>In another shell, start GDB:
+-</p>
+-<pre class="screen">
+-gdb prog
+-</pre>
+-<p>Then give the following command to GDB:
+-</p>
+-<pre class="screen">
+-(gdb) target remote | vgdb
+-</pre>
+-<p>You can now debug your program e.g. by inserting a breakpoint
+-and then using the GDB <code class="computeroutput">continue</code>
+-command.</p>
+-<p>This quick start information is enough for basic usage of the
+-Valgrind gdbserver.  The sections below describe more advanced
+-functionality provided by the combination of Valgrind and GDB. Note
+-that the command line flag <code class="option">--vgdb=yes</code> can be omitted,
+-as this is the default value.
+-</p>
+-</div>
+-<div class="sect2" title="3.2.2. Valgrind gdbserver overall organisation">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-concept"></a>3.2.2. Valgrind gdbserver overall organisation</h3></div></div></div>
+-<p>The GNU GDB debugger is typically used to debug a process
+-running on the same machine.  In this mode, GDB uses system calls to
+-control and query the program being debugged.  This works well, but
+-only allows GDB to debug a program running on the same computer.
+-</p>
+-<p>GDB can also debug processes running on a different computer.
+-To achieve this, GDB defines a protocol (that is, a set of query and
+-reply packets) that facilitates fetching the value of memory or
+-registers, setting breakpoints, etc.  A gdbserver is an implementation
+-of this "GDB remote debugging" protocol.  To debug a process running
+-on a remote computer, a gdbserver (sometimes called a GDB stub)
+-must run at the remote computer side.
+-</p>
+-<p>The Valgrind core provides a built-in gdbserver implementation,
+-which is activated using <code class="option">--vgdb=yes</code>
+-or <code class="option">--vgdb=full</code>.  This gdbserver allows the process
+-running on Valgrind's synthetic CPU to be debugged remotely.
+-GDB sends protocol query packets (such as "get register contents") to
+-the Valgrind embedded gdbserver.  The gdbserver executes the queries
+-(for example, it will get the register values of the synthetic CPU)
+-and gives the results back to GDB.
+-</p>
+-<p>GDB can use various kinds of channels (TCP/IP, serial line, etc)
+-to communicate with the gdbserver.  In the case of Valgrind's
+-gdbserver, communication is done via a pipe and a small helper program
+-called <a class="xref" href="manual-core-adv.html#manual-core-adv.vgdb" title="3.2.9. vgdb command line options">vgdb</a>, which acts as an
+-intermediary.  If no GDB is in use, vgdb can also be
+-used to send monitor commands to the Valgrind gdbserver from a shell
+-command line.
+-</p>
+-</div>
+-<div class="sect2" title="3.2.3. Connecting GDB to a Valgrind gdbserver">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-gdb"></a>3.2.3. Connecting GDB to a Valgrind gdbserver</h3></div></div></div>
+-<p>To debug a program "<code class="filename">prog</code>" running under
+-Valgrind, you must ensure that the Valgrind gdbserver is activated by
+-specifying either <code class="option">--vgdb=yes</code>
+-or <code class="option">--vgdb=full</code>.  A secondary command line option,
+-<code class="option">--vgdb-error=number</code>, can be used to tell the gdbserver
+-only to become active once the specified number of errors have been
+-shown.  A value of zero will therefore cause
+-the gdbserver to become active at startup, which allows you to
+-insert breakpoints before starting the run.  For example:
+-</p>
+-<pre class="screen">
+-valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 ./prog
+-</pre>
+-<p>The Valgrind gdbserver is invoked at startup
+-and indicates it is waiting for a connection from a GDB:</p>
+-<pre class="programlisting">
+-==2418== Memcheck, a memory error detector
+-==2418== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
+-==2418== Using Valgrind-3.7.0.SVN and LibVEX; rerun with -h for copyright info
+-==2418== Command: ./prog
+-==2418== 
+-==2418== (action at startup) vgdb me ... 
+-</pre>
+-<p>GDB (in another shell) can then be connected to the Valgrind gdbserver.
+-For this, GDB must be started on the program <code class="filename">prog</code>:
+-</p>
+-<pre class="screen">
+-gdb ./prog
+-</pre>
+-<p>You then indicate to GDB that you want to debug a remote target:
+-</p>
+-<pre class="screen">
+-(gdb) target remote | vgdb
+-</pre>
+-<p>
+-GDB then starts a vgdb relay application to communicate with the 
+-Valgrind embedded gdbserver:</p>
+-<pre class="programlisting">
+-(gdb) target remote | vgdb
+-Remote debugging using | vgdb
+-relaying data between gdb and process 2418
+-Reading symbols from /lib/ld-linux.so.2...done.
+-Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so.debug...done.
+-Loaded symbols for /lib/ld-linux.so.2
+-[Switching to Thread 2418]
+-0x001f2850 in _start () from /lib/ld-linux.so.2
+-(gdb) 
+-</pre>
+-<p>Note that vgdb is provided as part of the Valgrind
+-distribution.  You do not need to install it separately.</p>
+-<p>If vgdb detects that there are multiple Valgrind gdbservers that
+-can be connected to, it will list all such servers and their PIDs, and
+-then exit.  You can then reissue the GDB "target" command, but
+-specifying the PID of the process you want to debug:
+-</p>
+-<pre class="programlisting">
+-(gdb) target remote | vgdb
+-Remote debugging using | vgdb
+-no --pid= arg given and multiple valgrind pids found:
+-use --pid=2479 for valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 ./prog 
+-use --pid=2481 for valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 ./prog 
+-use --pid=2483 for valgrind --vgdb=yes --vgdb-error=0 ./another_prog 
+-Remote communication error: Resource temporarily unavailable.
+-(gdb)  target remote | vgdb --pid=2479
+-Remote debugging using | vgdb --pid=2479
+-relaying data between gdb and process 2479
+-Reading symbols from /lib/ld-linux.so.2...done.
+-Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so.debug...done.
+-Loaded symbols for /lib/ld-linux.so.2
+-[Switching to Thread 2479]
+-0x001f2850 in _start () from /lib/ld-linux.so.2
+-(gdb) 
+-</pre>
+-<p>Once GDB is connected to the Valgrind gdbserver, it can be used
+-in the same way as if you were debugging the program natively:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Breakpoints can be inserted or deleted.</p></li>
+-<li class="listitem"><p>Variables and register values can be examined or modified.
+-    </p></li>
+-<li class="listitem"><p>Signal handling can be configured (printing, ignoring).
+-    </p></li>
+-<li class="listitem"><p>Execution can be controlled (continue, step, next, stepi, etc).
+-    </p></li>
+-<li class="listitem"><p>Program execution can be interrupted using Control-C.</p></li>
+-</ul></div>
+-<p>And so on.  Refer to the GDB user manual for a complete
+-description of GDB's functionality.
+-</p>
+-</div>
+-<div class="sect2" title="3.2.4. Connecting to an Android gdbserver">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-gdb-android"></a>3.2.4. Connecting to an Android gdbserver</h3></div></div></div>
+-<p> When developping applications for Android, you will typically use
+-a development system (on which the Android NDK is installed) to compile your
+-application. An Android target system or emulator will be used to run
+-the application.
+-In this setup, Valgrind and vgdb will run on the Android system,
+-while GDB will run on the development system. GDB will connect
+-to the vgdb running on the Android system using the Android NDK
+-'adb forward' application.
+-</p>
+-<p> Example: on the Android system, execute the following:
+-    </p>
+-<pre class="screen">
+-valgrind --vgdb-error=0 --vgdb=yes prog
+-# and then in another shell, run:
+-vgdb --port=1234
+-</pre>
+-<p>
+-</p>
+-<p> On the development system, execute the following commands:
+-</p>
+-<pre class="screen">
+-adb forward tcp:1234 tcp:1234
+-gdb prog
+-(gdb) target remote :1234
+-</pre>
+-<p>
+-GDB will use a local tcp/ip connection to connect to the Android adb forwarder.
+-Adb will establish a relay connection between the host system and the Android
+-target system.  Be sure to use the GDB delivered in the
+-Android NDK system (typically, arm-linux-androideabi-gdb), as the host
+-GDB is probably not able to debug Android arm applications.
+-Note that the local port nr (used by GDB) must not necessarily be equal
+-to the port number used by vgdb: adb can forward tcp/ip between different
+-port numbers.
+-</p>
+-<p>In the current release, the GDB server is not enabled by default
+-for Android, due to problems in establishing a suitable directory in
+-which Valgrind can create the necessary FIFOs (named pipes) for
+-communication purposes.  You can stil try to use the GDB server, but
+-you will need to explicitly enable it using the flag 
+-<code class="computeroutput">--vgdb=yes</code> or
+-<code class="computeroutput">--vgdb=full</code>.
+-</p>
+-<p>Additionally, you
+-will need to select a temporary directory which is (a) writable
+-by Valgrind, and (b) supports FIFOs.  This is the main difficult
+-point.  Often, <code class="computeroutput">/sdcard</code> satisfies
+-requirement (a), but fails for (b) because it is a VFAT file system
+-and VFAT does not support pipes.  Possibilities you could try are
+-<code class="computeroutput">/data/local</code>,
+-<code class="computeroutput">/data/local/Inst</code> (if you
+-installed Valgrind there), or
+-<code class="computeroutput">/data/data/name.of.my.app</code>, if you
+-are running a specific application and it has its own directory of 
+-that form.  This last possibility may have the highest probability
+-of success.</p>
+-<p>You can specify the temporary directory to use either via
+-the <code class="computeroutput">--with-tmpdir=</code> configure time
+-flag, or by setting environment variable TMPDIR when running Valgrind
+-(on the Android device, not on the Android NDK development host).
+-Another alternative is to specify the directory for the FIFOs using
+-the <code class="computeroutput">--vgdb-prefix=</code> Valgrind command
+-line option.
+-</p>
+-<p>We hope to have a better story for temporary directory handling
+-on Android in the future.  The difficulty is that, unlike in standard
+-Unixes, there is no single temporary file directory that reliably
+-works across all devices and scenarios.
+-</p>
+-</div>
+-<div class="sect2" title="3.2.5. Monitor command handling by the Valgrind gdbserver">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-commandhandling"></a>3.2.5. Monitor command handling by the Valgrind gdbserver</h3></div></div></div>
+-<p> The Valgrind gdbserver provides additional Valgrind-specific
+-functionality via "monitor commands".  Such monitor commands can be
+-sent from the GDB command line or from the shell command line.  See
+-<a class="xref" href="manual-core-adv.html#manual-core-adv.valgrind-monitor-commands" title="3.2.10. Valgrind monitor commands">Valgrind monitor commands</a> for the
+-list of the Valgrind core monitor commands available regardless of
+-the Valgrind tool selected.
+-</p>
+-<p>The following tools provide tool-specific monitor commands:
+-  </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><a class="xref" href="mc-manual.html#mc-manual.monitor-commands" title="4.6. Memcheck Monitor Commands">Memcheck Monitor Commands</a></p></li>
+-<li class="listitem"><p><a class="xref" href="cl-manual.html#cl-manual.monitor-commands" title="6.4. Callgrind Monitor Commands">Callgrind Monitor Commands</a></p></li>
+-<li class="listitem"><p><a class="xref" href="ms-manual.html#ms-manual.monitor-commands" title="9.4. Massif Monitor Commands">Massif Monitor Commands</a></p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>An example of a tool specific monitor command is the Memcheck monitor
+-command <code class="computeroutput">leak_check full
+-reachable any</code>.  This requests a full reporting of the
+-allocated memory blocks.  To have this leak check executed, use the GDB
+-command:
+-</p>
+-<pre class="screen">
+-(gdb) monitor leak_check full reachable any
+-</pre>
+-<p>
+-</p>
+-<p>GDB will send the <code class="computeroutput">leak_check</code>
+-command to the Valgrind gdbserver.  The Valgrind gdbserver will
+-execute the monitor command itself, if it recognises it to be a Valgrind core
+-monitor command.  If it is not recognised as such, it is assumed to
+-be tool-specific and is handed to the tool for execution.  For example:
+-</p>
+-<pre class="programlisting">
+-(gdb) monitor leak_check full reachable any
+-==2418== 100 bytes in 1 blocks are still reachable in loss record 1 of 1
+-==2418==    at 0x4006E9E: malloc (vg_replace_malloc.c:236)
+-==2418==    by 0x804884F: main (prog.c:88)
+-==2418== 
+-==2418== LEAK SUMMARY:
+-==2418==    definitely lost: 0 bytes in 0 blocks
+-==2418==    indirectly lost: 0 bytes in 0 blocks
+-==2418==      possibly lost: 0 bytes in 0 blocks
+-==2418==    still reachable: 100 bytes in 1 blocks
+-==2418==         suppressed: 0 bytes in 0 blocks
+-==2418== 
+-(gdb) 
+-</pre>
+-<p>As with other GDB commands, the Valgrind gdbserver will accept
+-abbreviated monitor command names and arguments, as long as the given
+-abbreviation is unambiguous.  For example, the above
+-<code class="computeroutput">leak_check</code>
+-command can also be typed as:
+-</p>
+-<pre class="screen">
+-(gdb) mo l f r a
+-</pre>
+-<p>
+-
+-The letters <code class="computeroutput">mo</code> are recognised by GDB as being
+-an abbreviation for <code class="computeroutput">monitor</code>.  So GDB sends the
+-string <code class="computeroutput">l f r a</code> to the Valgrind
+-gdbserver.  The letters provided in this string are unambiguous for the
+-Valgrind gdbserver.  This therefore gives the same output as the
+-unabbreviated command and arguments.  If the provided abbreviation is
+-ambiguous, the Valgrind gdbserver will report the list of commands (or
+-argument values) that can match:
+-</p>
+-<pre class="programlisting">
+-(gdb) mo v. n
+-v. can match v.set v.info v.wait v.kill v.translate
+-(gdb) mo v.i n
+-n_errs_found 0 n_errs_shown 0 (vgdb-error 0)
+-(gdb) 
+-</pre>
+-<p>
+-</p>
+-<p>Instead of sending a monitor command from GDB, you can also send
+-these from a shell command line.  For example, the following command
+-lines, when given in a shell, will cause the same leak search to be executed
+-by the process 3145:
+-</p>
+-<pre class="screen">
+-vgdb --pid=3145 leak_check full reachable any
+-vgdb --pid=3145 l f r a
+-</pre>
+-<p>Note that the Valgrind gdbserver automatically continues the
+-execution of the program after a standalone invocation of
+-vgdb.  Monitor commands sent from GDB do not cause the program to
+-continue: the program execution is controlled explicitly using GDB
+-commands such as "continue" or "next".</p>
+-</div>
+-<div class="sect2" title="3.2.6. Valgrind gdbserver thread information">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-threads"></a>3.2.6. Valgrind gdbserver thread information</h3></div></div></div>
+-<p>Valgrind's gdbserver enriches the output of the
+-GDB <code class="computeroutput">info threads</code> command
+-with Valgrind-specific information.
+-The operating system's thread number is followed
+-by Valgrind's internal index for that thread ("tid") and by
+-the Valgrind scheduler thread state:</p>
+-<pre class="programlisting">
+-(gdb) info threads
+-  4 Thread 6239 (tid 4 VgTs_Yielding)  0x001f2832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+-* 3 Thread 6238 (tid 3 VgTs_Runnable)  make_error (s=0x8048b76 "called from London") at prog.c:20
+-  2 Thread 6237 (tid 2 VgTs_WaitSys)  0x001f2832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+-  1 Thread 6234 (tid 1 VgTs_Yielding)  main (argc=1, argv=0xbedcc274) at prog.c:105
+-(gdb) 
+-</pre>
+-</div>
+-<div class="sect2" title="3.2.7. Examining and modifying Valgrind shadow registers">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-shadowregisters"></a>3.2.7. Examining and modifying Valgrind shadow registers</h3></div></div></div>
+-<p> When the option <code class="option">--vgdb-shadow-registers=yes</code> is
+-given, the Valgrind gdbserver will let GDB examine and/or modify
+-Valgrind's shadow registers.  GDB version 7.1 or later is needed for this
+-to work. For x86 and amd64, GDB version 7.2 or later is needed.</p>
+-<p>For each CPU register, the Valgrind core maintains two
+-shadow register sets.  These shadow registers can be accessed from
+-GDB by giving a postfix <code class="computeroutput">s1</code>
+-or <code class="computeroutput">s2</code> for respectively the first
+-and second shadow register.  For example, the x86 register
+-<code class="computeroutput">eax</code> and its two shadows
+-can be examined using the following commands:</p>
+-<pre class="programlisting">
+-(gdb) p $eax
+-$1 = 0
+-(gdb) p $eaxs1
+-$2 = 0
+-(gdb) p $eaxs2
+-$3 = 0
+-(gdb) 
+-</pre>
+-<p>Float shadow registers are shown by GDB as unsigned integer
+-values instead of float values, as it is expected that these
+-shadow values are mostly used for memcheck validity bits. </p>
+-<p>Intel/amd64 AVX registers <code class="computeroutput">ymm0</code>
+-to <code class="computeroutput">ymm15</code> have also their shadow
+-registers. However, GDB presents the shadow values using two
+-"half" registers. For example, the half shadow registers for 
+-<code class="computeroutput">ymm9</code> are
+-<code class="computeroutput">xmm9s1</code> (lower half for set 1),
+-<code class="computeroutput">ymm9hs1</code> (upper half for set 1),
+-<code class="computeroutput">xmm9s2</code> (lower half for set 2),
+-<code class="computeroutput">ymm9hs2</code> (upper half for set 2).
+-Note the inconsistent notation for the names of the half registers:
+-the lower part starts with an <code class="computeroutput">x</code>,
+-the upper part starts with an <code class="computeroutput">y</code>
+-and has an <code class="computeroutput">h</code> before the shadow postfix.
+-</p>
+-<p>The special presentation of the AVX shadow registers is due to
+-the fact that GDB independently retrieves the lower and upper half of
+-the <code class="computeroutput">ymm</code> registers.  GDB does not
+-however know that the shadow half registers have to be shown combined.
+-</p>
+-</div>
+-<div class="sect2" title="3.2.8. Limitations of the Valgrind gdbserver">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.gdbserver-limitations"></a>3.2.8. Limitations of the Valgrind gdbserver</h3></div></div></div>
+-<p>Debugging with the Valgrind gdbserver is very similar to native
+-debugging.  Valgrind's gdbserver implementation is quite
+-complete, and so provides most of the GDB debugging functionality.  There
+-are however some limitations and peculiarities:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>Precision of "stop-at" commands.</p>
+-<p>
+-       GDB commands such as "step", "next", "stepi", breakpoints
+-       and watchpoints, will stop the execution of the process.  With
+-       the option <code class="option">--vgdb=yes</code>, the process might not
+-       stop at the exact requested instruction. Instead, it might
+-       continue execution of the current basic block and stop at one
+-       of the following basic blocks. This is linked to the fact that
+-       Valgrind gdbserver has to instrument a block to allow stopping
+-       at the exact instruction requested.  Currently,
+-       re-instrumentation of the block currently being executed is not
+-       supported. So, if the action requested by GDB (e.g. single
+-       stepping or inserting a breakpoint) implies re-instrumentation
+-       of the current block, the GDB action may not be executed
+-       precisely.
+-     </p>
+-<p>
+-       This limitation applies when the basic block
+-       currently being executed has not yet been instrumented for debugging.
+-       This typically happens when the gdbserver is activated due to the
+-       tool reporting an error or to a watchpoint.  If the gdbserver
+-       block has been activated following a breakpoint, or if a
+-       breakpoint has been inserted in the block before its execution,
+-       then the block has already been instrumented for debugging.
+-     </p>
+-<p>
+-       If you use the option <code class="option">--vgdb=full</code>, then GDB
+-       "stop-at" commands will be obeyed precisely.  The
+-       downside is that this requires each instruction to be
+-       instrumented with an additional call to a gdbserver helper
+-       function, which gives considerable overhead (+500% for memcheck)
+-       compared to  <code class="option">--vgdb=no</code>.
+-       Option <code class="option">--vgdb=yes</code> has neglectible overhead compared
+-       to <code class="option">--vgdb=no</code>.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Processor registers and flags values.</p>
+-<p>When Valgrind gdbserver stops on an error, on a breakpoint
+-     or when single stepping, registers and flags values might not be always
+-     up to date due to the optimisations done by the Valgrind core.
+-     The default value 
+-     <code class="option">--vex-iropt-register-updates=unwindregs-at-mem-access</code>
+-     ensures that the registers needed to make a stack trace (typically
+-     PC/SP/FP) are up to date at each memory access (i.e. memory exception
+-     points).
+-     Disabling some optimisations using the following values will increase
+-     the precision of registers and flags values (a typical performance 
+-     impact for memcheck is given for each option).
+-       </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+-<li class="listitem">
+-<code class="option">--vex-iropt-register-updates=allregs-at-mem-access</code> (+10%)
+-           ensures that all registers and flags are up to date at each memory
+-           access.
+-         </li>
+-<li class="listitem">
+-<code class="option">--vex-iropt-register-updates=allregs-at-each-insn</code> (+25%)
+-           ensures that all registers and flags are up to date at each instruction.
+-         </li>
+-</ul></div>
+-<p>
+-       Note that <code class="option">--vgdb=full</code> (+500%, see above
+-       Precision of "stop-at" commands) automatically
+-       activates <code class="option">--vex-iropt-register-updates=allregs-at-each-insn</code>.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Hardware watchpoint support by the Valgrind
+-     gdbserver.</p>
+-<p> The Valgrind gdbserver can simulate hardware watchpoints
+-     if the selected tool provides support for it.  Currently,
+-     only Memcheck provides hardware watchpoint simulation.  The
+-     hardware watchpoint simulation provided by Memcheck is much
+-     faster that GDB software watchpoints, which are implemented by
+-     GDB checking the value of the watched zone(s) after each
+-     instruction.  Hardware watchpoint simulation also provides read
+-     watchpoints.  The hardware watchpoint simulation by Memcheck has
+-     some limitations compared to real hardware
+-     watchpoints. However, the number and length of simulated
+-     watchpoints are not limited.
+-     </p>
+-<p>Typically, the number of (real) hardware watchpoints is
+-     limited.  For example, the x86 architecture supports a maximum of
+-     4 hardware watchpoints, each watchpoint watching 1, 2, 4 or 8
+-     bytes. The Valgrind gdbserver does not have any limitation on the
+-     number of simulated hardware watchpoints. It also has no
+-     limitation on the length of the memory zone being
+-     watched.  Using GDB version 7.4 or later allow full use of the
+-     flexibility of the Valgrind gdbserver's simulated hardware watchpoints.
+-     Previous GDB versions do not understand that Valgrind gdbserver
+-     watchpoints have no length limit.
+-     </p>
+-<p>Memcheck implements hardware watchpoint simulation by
+-     marking the watched address ranges as being unaddressable.  When
+-     a hardware watchpoint is removed, the range is marked as
+-     addressable and defined.  Hardware watchpoint simulation of
+-     addressable-but-undefined memory zones works properly, but has
+-     the undesirable side effect of marking the zone as defined when
+-     the watchpoint is removed.
+-     </p>
+-<p>Write watchpoints might not be reported at the 
+-     exact instruction that writes the monitored area,
+-     unless option <code class="option">--vgdb=full</code> is given.  Read watchpoints
+-     will always be reported at the exact instruction reading the
+-     watched memory.
+-     </p>
+-<p>It is better to avoid using hardware watchpoint of not
+-     addressable (yet) memory: in such a case, GDB will fall back to
+-     extremely slow software watchpoints.  Also, if you do not quit GDB
+-     between two debugging sessions, the hardware watchpoints of the
+-     previous sessions will be re-inserted as software watchpoints if
+-     the watched memory zone is not addressable at program startup.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Stepping inside shared libraries on ARM.</p>
+-<p>For unknown reasons, stepping inside shared
+-     libraries on ARM may fail.  A workaround is to use the
+-     <code class="computeroutput">ldd</code> command
+-     to find the list of shared libraries and their loading address
+-     and inform GDB of the loading address using the GDB command
+-     "add-symbol-file". Example:
+-     </p>
+-<pre class="programlisting">
+-(gdb) shell ldd ./prog
+-	libc.so.6 => /lib/libc.so.6 (0x4002c000)
+-	/lib/ld-linux.so.3 (0x40000000)
+-(gdb) add-symbol-file /lib/libc.so.6 0x4002c000
+-add symbol table from file "/lib/libc.so.6" at
+-	.text_addr = 0x4002c000
+-(y or n) y
+-Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
+-(gdb) 
+-</pre>
+-<p>
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>GDB version needed for ARM and PPC32/64.</p>
+-<p>You must use a GDB version which is able to read XML
+-     target description sent by a gdbserver.  This is the standard setup
+-     if GDB was configured and built with the "expat"
+-     library.  If your GDB was not configured with XML support, it
+-     will report an error message when using the "target"
+-     command.  Debugging will not work because GDB will then not be
+-     able to fetch the registers from the Valgrind gdbserver.
+-     For ARM programs using the Thumb instruction set, you must use
+-     a GDB version of 7.1 or later, as earlier versions have problems
+-     with next/step/breakpoints in Thumb code.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Stack unwinding on PPC32/PPC64. </p>
+-<p>On PPC32/PPC64, stack unwinding for leaf functions
+-     (functions that do not call any other functions) works properly
+-     only when you give the option
+-     <code class="option">--vex-iropt-register-updates=allregs-at-mem-access</code>
+-     or <code class="option">--vex-iropt-register-updates=allregs-at-each-insn</code>.
+-     You must also pass this option in order to get a precise stack when
+-     a signal is trapped by GDB.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Breakpoints encountered multiple times.</p>
+-<p>Some instructions (e.g. x86 "rep movsb")
+-     are translated by Valgrind using a loop.  If a breakpoint is placed
+-     on such an instruction, the breakpoint will be encountered
+-     multiple times -- once for each step of the "implicit" loop
+-     implementing the instruction.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Execution of Inferior function calls by the Valgrind
+-     gdbserver.</p>
+-<p>GDB allows the user to "call" functions inside the process
+-     being debugged.  Such calls are named "inferior calls" in the GDB
+-     terminology.  A typical use of an inferior call is to execute
+-     a function that prints a human-readable version of a complex data
+-     structure.  To make an inferior call, use the GDB "print" command
+-     followed by the function to call and its arguments.  As an
+-     example, the following GDB command causes an inferior call to the
+-     libc "printf" function to be executed by the process
+-     being debugged:
+-     </p>
+-<pre class="programlisting">
+-(gdb) p printf("process being debugged has pid %d\n", getpid())
+-$5 = 36
+-(gdb) 
+-</pre>
+-<p>The Valgrind gdbserver supports inferior function calls.
+-     Whilst an inferior call is running, the Valgrind tool will report
+-     errors as usual.  If you do not want to have such errors stop the
+-     execution of the inferior call, you can
+-     use <code class="computeroutput">v.set vgdb-error</code> to set a
+-     big value before the call, then manually reset it to its original
+-     value when the call is complete.</p>
+-<p>To execute inferior calls, GDB changes registers such as
+-     the program counter, and then continues the execution of the
+-     program. In a multithreaded program, all threads are continued,
+-     not just the thread instructed to make the inferior call.  If
+-     another thread reports an error or encounters a breakpoint, the
+-     evaluation of the inferior call is abandoned.</p>
+-<p>Note that inferior function calls are a powerful GDB
+-     feature, but should be used with caution. For example, if
+-     the program being debugged is stopped inside the function "printf",
+-     forcing a recursive call to printf via an inferior call will
+-     very probably create problems.  The Valgrind tool might also add
+-     another level of complexity to inferior calls, e.g. by reporting
+-     tool errors during the Inferior call or due to the
+-     instrumentation done.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Connecting to or interrupting a Valgrind process blocked in
+-     a system call.</p>
+-<p>Connecting to or interrupting a Valgrind process blocked in
+-     a system call requires the "ptrace" system call to be usable.
+-     This may be disabled in your kernel for security reasons.</p>
+-<p>When running your program, Valgrind's scheduler
+-     periodically checks whether there is any work to be handled by
+-     the gdbserver.  Unfortunately this check is only done if at least
+-     one thread of the process is runnable.  If all the threads of the
+-     process are blocked in a system call, then the checks do not
+-     happen, and the Valgrind scheduler will not invoke the gdbserver.
+-     In such a case, the vgdb relay application will "force" the
+-     gdbserver to be invoked, without the intervention of the Valgrind
+-     scheduler.
+-     </p>
+-<p>Such forced invocation of the Valgrind gdbserver is
+-     implemented by vgdb using ptrace system calls.  On a properly
+-     implemented kernel, the ptrace calls done by vgdb will not
+-     influence the behaviour of the program running under Valgrind.
+-     If however they do, giving the
+-     option <code class="option">--max-invoke-ms=0</code> to the vgdb relay
+-     application will disable the usage of ptrace calls.  The
+-     consequence of disabling ptrace usage in vgdb is that a Valgrind
+-     process blocked in a system call cannot be woken up or
+-     interrupted from GDB until it executes enough basic blocks to let
+-     the Valgrind scheduler's normal checking take effect.
+-     </p>
+-<p>When ptrace is disabled in vgdb, you can increase the
+-     responsiveness of the Valgrind gdbserver to commands or
+-     interrupts by giving a lower value to the
+-     option <code class="option">--vgdb-poll</code>.  If your application is
+-     blocked in system calls most of the time, using a very low value
+-     for <code class="option">--vgdb-poll</code> will cause a the gdbserver to be
+-     invoked sooner.  The gdbserver polling done by Valgrind's
+-     scheduler is very efficient, so the increased polling frequency
+-     should not cause significant performance degradation.
+-     </p>
+-<p>When ptrace is disabled in vgdb, a query packet sent by GDB
+-     may take significant time to be handled by the Valgrind
+-     gdbserver.  In such cases, GDB might encounter a protocol
+-     timeout.  To avoid this,
+-     you can increase the value of the timeout by using the GDB
+-     command "set remotetimeout".
+-     </p>
+-<p>Ubuntu versions 10.10 and later may restrict the scope of
+-     ptrace to the children of the process calling ptrace.  As the
+-     Valgrind process is not a child of vgdb, such restricted scoping
+-     causes the ptrace calls to fail.  To avoid that, when Valgrind
+-     gdbserver receives the first packet from a vgdb, it calls
+-     <code class="computeroutput">prctl(PR_SET_PTRACER, vgdb_pid, 0, 0,
+-     0)</code> to ensure vgdb can reliably use ptrace.
+-     Once <code class="computeroutput">vgdb_pid</code> has been marked as
+-     a ptracer, vgdb can then properly force the invocation of
+-     Valgrind gdbserver when needed.  To ensure the vgdb is set as a
+-     ptracer before the Valgrind process gets blocked in a system
+-     call, connect your GDB to the Valgrind gdbserver at startup by
+-     passing <code class="option">--vgdb-error=0</code> to Valgrind.</p>
+-<p>Note that
+-     this "set ptracer" technique does not solve the problem in the
+-     case where a standalone vgdb process wants to connect to the
+-     gdbserver, since the first command to be sent by a standalone
+-     vgdb must wake up the Valgrind process before Valgrind gdbserver
+-     will mark vgdb as a ptracer.
+-     </p>
+-<p>Unblocking processes blocked in system calls is not
+-     currently implemented on Mac OS X and Android.  So you cannot
+-     connect to or interrupt a process blocked in a system call on Mac
+-     OS X or Android.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Changing register values.</p>
+-<p>The Valgrind gdbserver will only modify the values of the
+-     thread's registers when the thread is in status Runnable or
+-     Yielding.  In other states (typically, WaitSys), attempts to
+-     change register values will fail.  Amongst other things, this
+-     means that inferior calls are not executed for a thread which is
+-     in a system call, since the Valgrind gdbserver does not implement
+-     system call restart.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Unsupported GDB functionality.</p>
+-<p>GDB provides a lot of debugging functionality and not all
+-     of it is supported.  Specifically, the following are not
+-     supported: reversible debugging and tracepoints.
+-     </p>
+-</li>
+-<li class="listitem">
+-<p>Unknown limitations or problems.</p>
+-<p>The combination of GDB, Valgrind and the Valgrind gdbserver
+-     probably has unknown other limitations and problems.  If you
+-     encounter strange or unexpected behaviour, feel free to report a
+-     bug.  But first please verify that the limitation or problem is
+-     not inherent to GDB or the GDB remote protocol.  You may be able
+-     to do so by checking the behaviour when using standard gdbserver
+-     part of the GDB package.
+-     </p>
+-</li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="3.2.9. vgdb command line options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.vgdb"></a>3.2.9. vgdb command line options</h3></div></div></div>
+-<p> Usage: <code class="computeroutput">vgdb [OPTION]... [[-c] COMMAND]...</code></p>
+-<p> vgdb ("Valgrind to GDB") is a small program that is used as an
+-intermediary between Valgrind and GDB or a shell.
+-Therefore, it has two usage modes:
+-</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p><a name="manual-core-adv.vgdb-standalone"></a>As a standalone utility, it is used from a shell command
+-    line to send monitor commands to a process running under
+-    Valgrind. For this usage, the vgdb OPTION(s) must be followed by
+-    the monitor command to send. To send more than one command,
+-    separate them with the <code class="option">-c</code> option.
+-    </p></li>
+-<li class="listitem"><p><a name="manual-core-adv.vgdb-relay"></a>In combination with GDB "target remote |" command, it is
+-    used as the relay application between GDB and the Valgrind
+-    gdbserver.  For this usage, only OPTION(s) can be given, but no
+-    COMMAND can be given.
+-    </p></li>
+-</ol></div>
+-<p><code class="computeroutput">vgdb</code> accepts the following
+-options:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="option">--pid=<number></code>: specifies the PID of
+-    the process to which vgdb must connect to.  This option is useful
+-    in case more than one Valgrind gdbserver can be connected to.  If
+-    the <code class="option">--pid</code> argument is not given and multiple
+-    Valgrind gdbserver processes are running, vgdb will report the
+-    list of such processes and then exit.</p></li>
+-<li class="listitem"><p><code class="option">--vgdb-prefix</code> must be given to both
+-    Valgrind and vgdb if you want to change the default prefix for the
+-    FIFOs (named pipes) used for communication between the Valgrind
+-    gdbserver and vgdb. </p></li>
+-<li class="listitem"><p><code class="option">--wait=<number></code> instructs vgdb to
+-    search for available Valgrind gdbservers for the specified number
+-    of seconds.  This makes it possible start a vgdb process 
+-    before starting the Valgrind gdbserver with which you intend the
+-    vgdb to communicate.  This option is useful when used in
+-    conjunction with a <code class="option">--vgdb-prefix</code> that is
+-    unique to the process you want to wait for.
+-    Also, if you use the <code class="option">--wait</code> argument in the GDB
+-    "target remote" command, you must set the GDB remotetimeout to a
+-    value bigger than the --wait argument value.  See option
+-    <code class="option">--max-invoke-ms</code> (just below)
+-    for an example of setting the remotetimeout value.</p></li>
+-<li class="listitem">
+-<p><code class="option">--max-invoke-ms=<number></code> gives the
+-    number of milliseconds after which vgdb will force the invocation
+-    of gdbserver embedded in Valgrind.  The default value is 100
+-    milliseconds. A value of 0 disables forced invocation. The forced
+-    invocation is used when vgdb is connected to a Valgrind gdbserver,
+-    and the Valgrind process has all its threads blocked in a system
+-    call.
+-    </p>
+-<p>If you specify a large value, you might need to increase the
+-    GDB "remotetimeout" value from its default value of 2 seconds.
+-    You should ensure that the timeout (in seconds) is
+-    bigger than the <code class="option">--max-invoke-ms</code> value.  For
+-    example, for <code class="option">--max-invoke-ms=5000</code>, the following
+-    GDB command is suitable:
+-    </p>
+-<pre class="screen">
+-    (gdb) set remotetimeout 6
+-    </pre>
+-<p>
+-    </p>
+-</li>
+-<li class="listitem"><p><code class="option">--cmd-time-out=<number></code> instructs a
+-    standalone vgdb to exit if the Valgrind gdbserver it is connected
+-    to does not process a command in the specified number of seconds.
+-    The default value is to never time out.</p></li>
+-<li class="listitem">
+-<p><code class="option">--port=<portnr></code> instructs vgdb to
+-    use tcp/ip and listen for GDB on the specified port nr rather than
+-    to use a pipe to communicate with GDB. Using tcp/ip allows to have
+-    GDB running on one computer and debugging a Valgrind process
+-    running on another target computer.
+-    Example: 
+-    </p>
+-<pre class="screen">
+-# On the target computer, start your program under valgrind using
+-valgrind --vgdb-error=0 prog
+-# and then in another shell, run:
+-vgdb --port=1234
+-</pre>
+-<p>On the computer which hosts GDB, execute the command:
+-    </p>
+-<pre class="screen">
+-gdb prog
+-(gdb) target remote targetip:1234
+-</pre>
+-<p>
+-    where targetip is the ip address or hostname of the target computer.
+-    </p>
+-</li>
+-<li class="listitem">
+-<p><code class="option">-c</code> To give more than one command to a
+-    standalone vgdb, separate the commands by an
+-    option <code class="option">-c</code>. Example:
+-    </p>
+-<pre class="screen">
+-vgdb v.set log_output -c leak_check any
+-</pre>
+-</li>
+-<li class="listitem"><p><code class="option">-l</code> instructs a standalone vgdb to report
+-    the list of the Valgrind gdbserver processes running and then
+-    exit.</p></li>
+-<li class="listitem"><p><code class="option">-D</code> instructs a standalone vgdb to show the
+-    state of the shared memory used by the Valgrind gdbserver.  vgdb
+-    will exit after having shown the Valgrind gdbserver shared memory
+-    state.</p></li>
+-<li class="listitem"><p><code class="option">-d</code> instructs vgdb to produce debugging
+-    output.  Give multiple <code class="option">-d</code> args to increase the
+-    verbosity. When giving <code class="option">-d</code> to a relay vgdb, you better
+-    redirect the standard error (stderr) of vgdb to a file to avoid
+-    interaction between GDB and vgdb debugging output.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="3.2.10. Valgrind monitor commands">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.valgrind-monitor-commands"></a>3.2.10. Valgrind monitor commands</h3></div></div></div>
+-<p>This section describes the Valgrind monitor commands, available
+-regardless of the Valgrind tool selected. For the tool specific
+-commands, refer to <a class="xref" href="mc-manual.html#mc-manual.monitor-commands" title="4.6. Memcheck Monitor Commands">Memcheck Monitor Commands</a>,
+-<a class="xref" href="cl-manual.html#cl-manual.monitor-commands" title="6.4. Callgrind Monitor Commands">Callgrind Monitor Commands</a> and
+-<a class="xref" href="ms-manual.html#ms-manual.monitor-commands" title="9.4. Massif Monitor Commands">Massif Monitor Commands</a>. </p>
+-<p> The monitor commands can be sent either from a shell command line, by using a
+-standalone vgdb, or from GDB, by using GDB's "monitor"
+-command (see <a class="xref" href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling" title="3.2.5. Monitor command handling by the Valgrind gdbserver">Monitor command handling by the Valgrind gdbserver</a>). </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">help [debug]</code> instructs Valgrind's gdbserver
+-    to give the list of all monitor commands of the Valgrind core and
+-    of the tool. The optional "debug" argument tells to also give help
+-    for the monitor commands aimed at Valgrind internals debugging.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">v.info all_errors</code> shows all errors found
+-    so far.</p></li>
+-<li class="listitem"><p><code class="varname">v.info last_error</code> shows the last error
+-    found.</p></li>
+-<li class="listitem"><p><code class="varname">v.info n_errs_found</code> shows the number of
+-    errors found so far, the nr of errors shown so far and the current
+-    value of the <code class="option">--vgdb-error</code> argument.</p></li>
+-<li class="listitem">
+-<p><code class="varname">v.set {gdb_output | log_output |
+-    mixed_output}</code> allows redirection of the Valgrind output
+-    (e.g. the errors detected by the tool).  The default setting is
+-    <code class="computeroutput">mixed_output</code>.</p>
+-<p>With <code class="computeroutput">mixed_output</code>, the
+-    Valgrind output goes to the Valgrind log (typically stderr) while
+-    the output of the interactive GDB monitor commands (e.g. 
+-    <code class="computeroutput">v.info last_error</code>)
+-    is displayed by GDB.</p>
+-<p>With <code class="computeroutput">gdb_output</code>, both the
+-    Valgrind output and the interactive GDB monitor commands output are
+-    displayed by GDB.</p>
+-<p>With <code class="computeroutput">log_output</code>, both the
+-    Valgrind output and the interactive GDB monitor commands output go
+-    to the Valgrind log.</p>
+-</li>
+-<li class="listitem"><p><code class="varname">v.wait [ms (default 0)]</code> instructs
+-    Valgrind gdbserver to sleep "ms" milli-seconds and then
+-    continue.  When sent from a standalone vgdb, if this is the last
+-    command, the Valgrind process will continue the execution of the
+-    guest process. The typical usage of this is to use vgdb to send a
+-    "no-op" command to a Valgrind gdbserver so as to continue the
+-    execution of the guest process.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">v.kill</code> requests the gdbserver to kill
+-    the process. This can be used from a standalone vgdb to properly
+-    kill a Valgrind process which is currently expecting a vgdb
+-    connection.</p></li>
+-<li class="listitem"><p><code class="varname">v.set vgdb-error <errornr></code>
+-    dynamically changes the value of the 
+-    <code class="option">--vgdb-error</code> argument. A
+-    typical usage of this is to start with
+-    <code class="option">--vgdb-error=0</code> on the
+-    command line, then set a few breakpoints, set the vgdb-error value
+-    to a huge value and continue execution.</p></li>
+-</ul></div>
+-<p>The following Valgrind monitor commands are useful for
+-investigating the behaviour of Valgrind or its gdbserver in case of
+-problems or bugs.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">v.info gdbserver_status</code> shows the
+-    gdbserver status. In case of problems (e.g. of communications),
+-    this shows the values of some relevant Valgrind gdbserver internal
+-    variables.  Note that the variables related to breakpoints and
+-    watchpoints (e.g. the number of breakpoint addresses and the number of
+-    watchpoints) will be zero, as GDB by default removes all
+-    watchpoints and breakpoints when execution stops, and re-inserts
+-    them when resuming the execution of the debugged process.  You can
+-    change this GDB behaviour by using the GDB command
+-    <code class="computeroutput">set breakpoint always-inserted on</code>.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">v.info memory [aspacemgr]</code> shows the statistics of
+-    Valgrind's internal heap management. If
+-    option <code class="option">--profile-heap=yes</code> was given, detailed
+-    statistics will be output. With the optional argument
+-    <code class="computeroutput">aspacemgr</code>. the segment list maintained
+-    by valgrind address space manager will be output. Note that
+-    this list of segments is always output on the Valgrind log.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">v.info scheduler</code> shows the state and
+-    stack trace for all threads, as known by Valgrind.  This allows to
+-    compare the stack traces produced by the Valgrind unwinder with
+-    the stack traces produced by GDB+Valgrind gdbserver. Pay attention
+-    that GDB and Valgrind scheduler status have their own thread
+-    numbering scheme. To make the link between the GDB thread
+-    number and the corresponding Valgrind scheduler thread number,
+-    use the GDB command <code class="computeroutput">info
+-    threads</code>.  The output of this command shows the
+-    GDB thread number and the valgrind 'tid'. The 'tid' is the thread number
+-    output by <code class="computeroutput">v.info scheduler</code>.
+-    When using the callgrind tool, the callgrind monitor command
+-    <code class="computeroutput">status</code> outputs internal callgrind
+-    information about the stack/call graph it maintains.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">v.set debuglog <intvalue></code> sets the
+-    Valgrind debug log level to <intvalue>.  This allows to
+-    dynamically change the log level of Valgrind e.g. when a problem
+-    is detected.</p></li>
+-<li class="listitem">
+-<p><code class="varname">v.translate <address>
+-    [<traceflags>]</code> shows the translation of the block
+-    containing <code class="computeroutput">address</code> with the given
+-    trace flags. The <code class="computeroutput">traceflags</code> value
+-    bit patterns have similar meaning to Valgrind's
+-    <code class="option">--trace-flags</code> option.  It can be given
+-    in hexadecimal (e.g. 0x20) or decimal (e.g. 32) or in binary 1s
+-    and 0s bit (e.g. 0b00100000). The default value of the traceflags
+-    is 0b00100000, corresponding to "show after instrumentation". 
+-    The output of this command always goes to the Valgrind
+-    log.</p>
+-<p>The additional bit flag 0b100000000 (bit 8)
+-    has no equivalent in the <code class="option">--trace-flags</code> option.
+-    It enables tracing of the gdbserver specific instrumentation.  Note
+-    that this bit 8 can only enable the addition of gdbserver
+-    instrumentation in the trace.  Setting it to 0 will not
+-    disable the tracing of the gdbserver instrumentation if it is
+-    active for some other reason, for example because there is a breakpoint at
+-    this address or because gdbserver is in single stepping
+-    mode.</p>
+-</li>
+-</ul></div>
+-</div>
+-</div>
+-<div class="sect1" title="3.3. Function wrapping">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core-adv.wrapping"></a>3.3. Function wrapping</h2></div></div></div>
+-<p>
+-Valgrind allows calls to some specified functions to be intercepted and
+-rerouted to a different, user-supplied function.  This can do whatever it
+-likes, typically examining the arguments, calling onwards to the original,
+-and possibly examining the result.  Any number of functions may be
+-wrapped.</p>
+-<p>
+-Function wrapping is useful for instrumenting an API in some way.  For
+-example, Helgrind wraps functions in the POSIX pthreads API so it can know
+-about thread status changes, and the core is able to wrap
+-functions in the MPI (message-passing) API so it can know
+-of memory status changes associated with message arrival/departure.
+-Such information is usually passed to Valgrind by using client
+-requests in the wrapper functions, although the exact mechanism may vary.
+-</p>
+-<div class="sect2" title="3.3.1. A Simple Example">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.example"></a>3.3.1. A Simple Example</h3></div></div></div>
+-<p>Supposing we want to wrap some function</p>
+-<pre class="programlisting">
+-int foo ( int x, int y ) { return x + y; }</pre>
+-<p>A wrapper is a function of identical type, but with a special name
+-which identifies it as the wrapper for <code class="computeroutput">foo</code>.
+-Wrappers need to include
+-supporting macros from <code class="filename">valgrind.h</code>.
+-Here is a simple wrapper which prints the arguments and return value:</p>
+-<pre class="programlisting">
+-#include <stdio.h>
+-#include "valgrind.h"
+-int I_WRAP_SONAME_FNNAME_ZU(NONE,foo)( int x, int y )
+-{
+-   int    result;
+-   OrigFn fn;
+-   VALGRIND_GET_ORIG_FN(fn);
+-   printf("foo's wrapper: args %d %d\n", x, y);
+-   CALL_FN_W_WW(result, fn, x,y);
+-   printf("foo's wrapper: result %d\n", result);
+-   return result;
+-}
+-</pre>
+-<p>To become active, the wrapper merely needs to be present in a text
+-section somewhere in the same process' address space as the function
+-it wraps, and for its ELF symbol name to be visible to Valgrind.  In
+-practice, this means either compiling to a 
+-<code class="computeroutput">.o</code> and linking it in, or
+-compiling to a <code class="computeroutput">.so</code> and 
+-<code class="computeroutput">LD_PRELOAD</code>ing it in.  The latter is more
+-convenient in that it doesn't require relinking.</p>
+-<p>All wrappers have approximately the above form.  There are three
+-crucial macros:</p>
+-<p><code class="computeroutput">I_WRAP_SONAME_FNNAME_ZU</code>: 
+-this generates the real name of the wrapper.
+-This is an encoded name which Valgrind notices when reading symbol
+-table information.  What it says is: I am the wrapper for any function
+-named <code class="computeroutput">foo</code> which is found in 
+-an ELF shared object with an empty
+-("<code class="computeroutput">NONE</code>") soname field.  The specification 
+-mechanism is powerful in
+-that wildcards are allowed for both sonames and function names.  
+-The details are discussed below.</p>
+-<p><code class="computeroutput">VALGRIND_GET_ORIG_FN</code>: 
+-once in the the wrapper, the first priority is
+-to get hold of the address of the original (and any other supporting
+-information needed).  This is stored in a value of opaque 
+-type <code class="computeroutput">OrigFn</code>.
+-The information is acquired using 
+-<code class="computeroutput">VALGRIND_GET_ORIG_FN</code>.  It is crucial
+-to make this macro call before calling any other wrapped function
+-in the same thread.</p>
+-<p><code class="computeroutput">CALL_FN_W_WW</code>: eventually we will
+-want to call the function being
+-wrapped.  Calling it directly does not work, since that just gets us
+-back to the wrapper and leads to an infinite loop.  Instead, the result
+-lvalue, 
+-<code class="computeroutput">OrigFn</code> and arguments are
+-handed to one of a family of macros of the form 
+-<code class="computeroutput">CALL_FN_*</code>.  These
+-cause Valgrind to call the original and avoid recursion back to the
+-wrapper.</p>
+-</div>
+-<div class="sect2" title="3.3.2. Wrapping Specifications">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.specs"></a>3.3.2. Wrapping Specifications</h3></div></div></div>
+-<p>This scheme has the advantage of being self-contained.  A library of
+-wrappers can be compiled to object code in the normal way, and does
+-not rely on an external script telling Valgrind which wrappers pertain
+-to which originals.</p>
+-<p>Each wrapper has a name which, in the most general case says: I am the
+-wrapper for any function whose name matches FNPATT and whose ELF
+-"soname" matches SOPATT.  Both FNPATT and SOPATT may contain wildcards
+-(asterisks) and other characters (spaces, dots, @, etc) which are not 
+-generally regarded as valid C identifier names.</p>
+-<p>This flexibility is needed to write robust wrappers for POSIX pthread
+-functions, where typically we are not completely sure of either the
+-function name or the soname, or alternatively we want to wrap a whole
+-set of functions at once.</p>
+-<p>For example, <code class="computeroutput">pthread_create</code> 
+-in GNU libpthread is usually a
+-versioned symbol - one whose name ends in, eg, 
+-<code class="computeroutput">@GLIBC_2.3</code>.  Hence we
+-are not sure what its real name is.  We also want to cover any soname
+-of the form <code class="computeroutput">libpthread.so*</code>.
+-So the header of the wrapper will be</p>
+-<pre class="programlisting">
+-int I_WRAP_SONAME_FNNAME_ZZ(libpthreadZdsoZd0,pthreadZucreateZAZa)
+-  ( ... formals ... )
+-  { ... body ... }
+-</pre>
+-<p>In order to write unusual characters as valid C function names, a
+-Z-encoding scheme is used.  Names are written literally, except that
+-a capital Z acts as an escape character, with the following encoding:</p>
+-<pre class="programlisting">
+-     Za   encodes    *
+-     Zp              +
+-     Zc              :
+-     Zd              .
+-     Zu              _
+-     Zh              -
+-     Zs              (space)
+-     ZA              @
+-     ZZ              Z
+-     ZL              (       # only in valgrind 3.3.0 and later
+-     ZR              )       # only in valgrind 3.3.0 and later
+-</pre>
+-<p>Hence <code class="computeroutput">libpthreadZdsoZd0</code> is an 
+-encoding of the soname <code class="computeroutput">libpthread.so.0</code>
+-and <code class="computeroutput">pthreadZucreateZAZa</code> is an encoding 
+-of the function name <code class="computeroutput">pthread_create@*</code>.
+-</p>
+-<p>The macro <code class="computeroutput">I_WRAP_SONAME_FNNAME_ZZ</code> 
+-constructs a wrapper name in which
+-both the soname (first component) and function name (second component)
+-are Z-encoded.  Encoding the function name can be tiresome and is
+-often unnecessary, so a second macro,
+-<code class="computeroutput">I_WRAP_SONAME_FNNAME_ZU</code>, can be
+-used instead.  The <code class="computeroutput">_ZU</code> variant is 
+-also useful for writing wrappers for
+-C++ functions, in which the function name is usually already mangled
+-using some other convention in which Z plays an important role.  Having
+-to encode a second time quickly becomes confusing.</p>
+-<p>Since the function name field may contain wildcards, it can be
+-anything, including just <code class="computeroutput">*</code>.
+-The same is true for the soname.
+-However, some ELF objects - specifically, main executables - do not
+-have sonames.  Any object lacking a soname is treated as if its soname
+-was <code class="computeroutput">NONE</code>, which is why the original 
+-example above had a name
+-<code class="computeroutput">I_WRAP_SONAME_FNNAME_ZU(NONE,foo)</code>.</p>
+-<p>Note that the soname of an ELF object is not the same as its
+-file name, although it is often similar.  You can find the soname of
+-an object <code class="computeroutput">libfoo.so</code> using the command
+-<code class="computeroutput">readelf -a libfoo.so | grep soname</code>.</p>
+-</div>
+-<div class="sect2" title="3.3.3. Wrapping Semantics">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.semantics"></a>3.3.3. Wrapping Semantics</h3></div></div></div>
+-<p>The ability for a wrapper to replace an infinite family of functions
+-is powerful but brings complications in situations where ELF objects
+-appear and disappear (are dlopen'd and dlclose'd) on the fly.
+-Valgrind tries to maintain sensible behaviour in such situations.</p>
+-<p>For example, suppose a process has dlopened (an ELF object with
+-soname) <code class="filename">object1.so</code>, which contains 
+-<code class="computeroutput">function1</code>.  It starts to use
+-<code class="computeroutput">function1</code> immediately.</p>
+-<p>After a while it dlopens <code class="filename">wrappers.so</code>,
+-which contains a wrapper
+-for <code class="computeroutput">function1</code> in (soname) 
+-<code class="filename">object1.so</code>.  All subsequent calls to 
+-<code class="computeroutput">function1</code> are rerouted to the wrapper.</p>
+-<p>If <code class="filename">wrappers.so</code> is 
+-later dlclose'd, calls to <code class="computeroutput">function1</code> are 
+-naturally routed back to the original.</p>
+-<p>Alternatively, if <code class="filename">object1.so</code>
+-is dlclose'd but <code class="filename">wrappers.so</code> remains,
+-then the wrapper exported by <code class="filename">wrappers.so</code>
+-becomes inactive, since there
+-is no way to get to it - there is no original to call any more.  However,
+-Valgrind remembers that the wrapper is still present.  If 
+-<code class="filename">object1.so</code> is
+-eventually dlopen'd again, the wrapper will become active again.</p>
+-<p>In short, valgrind inspects all code loading/unloading events to
+-ensure that the set of currently active wrappers remains consistent.</p>
+-<p>A second possible problem is that of conflicting wrappers.  It is 
+-easily possible to load two or more wrappers, both of which claim
+-to be wrappers for some third function.  In such cases Valgrind will
+-complain about conflicting wrappers when the second one appears, and
+-will honour only the first one.</p>
+-</div>
+-<div class="sect2" title="3.3.4. Debugging">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.debugging"></a>3.3.4. Debugging</h3></div></div></div>
+-<p>Figuring out what's going on given the dynamic nature of wrapping
+-can be difficult.  The 
+-<code class="option">--trace-redir=yes</code> option makes 
+-this possible
+-by showing the complete state of the redirection subsystem after
+-every
+-<code class="function">mmap</code>/<code class="function">munmap</code>
+-event affecting code (text).</p>
+-<p>There are two central concepts:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>A "redirection specification" is a binding of 
+-  a (soname pattern, fnname pattern) pair to a code address.
+-  These bindings are created by writing functions with names
+-  made with the 
+-  <code class="computeroutput">I_WRAP_SONAME_FNNAME_{ZZ,_ZU}</code>
+-  macros.</p></li>
+-<li class="listitem"><p>An "active redirection" is a code-address to 
+-  code-address binding currently in effect.</p></li>
+-</ul></div>
+-<p>The state of the wrapping-and-redirection subsystem comprises a set of
+-specifications and a set of active bindings.  The specifications are
+-acquired/discarded by watching all 
+-<code class="function">mmap</code>/<code class="function">munmap</code>
+-events on code (text)
+-sections.  The active binding set is (conceptually) recomputed from
+-the specifications, and all known symbol names, following any change
+-to the specification set.</p>
+-<p><code class="option">--trace-redir=yes</code> shows the contents 
+-of both sets following any such event.</p>
+-<p><code class="option">-v</code> prints a line of text each 
+-time an active specification is used for the first time.</p>
+-<p>Hence for maximum debugging effectiveness you will need to use both
+-options.</p>
+-<p>One final comment.  The function-wrapping facility is closely
+-tied to Valgrind's ability to replace (redirect) specified
+-functions, for example to redirect calls to 
+-<code class="function">malloc</code> to its
+-own implementation.  Indeed, a replacement function can be
+-regarded as a wrapper function which does not call the original.
+-However, to make the implementation more robust, the two kinds
+-of interception (wrapping vs replacement) are treated differently.
+-</p>
+-<p><code class="option">--trace-redir=yes</code> shows 
+-specifications and bindings for both
+-replacement and wrapper functions.  To differentiate the 
+-two, replacement bindings are printed using 
+-<code class="computeroutput">R-></code> whereas 
+-wraps are printed using <code class="computeroutput">W-></code>.
+-</p>
+-</div>
+-<div class="sect2" title="3.3.5. Limitations - control flow">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.limitations-cf"></a>3.3.5. Limitations - control flow</h3></div></div></div>
+-<p>For the most part, the function wrapping implementation is robust.
+-The only important caveat is: in a wrapper, get hold of
+-the <code class="computeroutput">OrigFn</code> information using 
+-<code class="computeroutput">VALGRIND_GET_ORIG_FN</code> before calling any
+-other wrapped function.  Once you have the 
+-<code class="computeroutput">OrigFn</code>, arbitrary
+-calls between, recursion between, and longjumps out of wrappers
+-should work correctly.  There is never any interaction between wrapped
+-functions and merely replaced functions 
+-(eg <code class="function">malloc</code>), so you can call
+-<code class="function">malloc</code> etc safely from within wrappers.
+-</p>
+-<p>The above comments are true for {x86,amd64,ppc32,arm,mips32,s390}-linux.
+-On
+-ppc64-linux function wrapping is more fragile due to the (arguably
+-poorly designed) ppc64-linux ABI.  This mandates the use of a shadow
+-stack which tracks entries/exits of both wrapper and replacement
+-functions.  This gives two limitations: firstly, longjumping out of
+-wrappers will rapidly lead to disaster, since the shadow stack will
+-not get correctly cleared.  Secondly, since the shadow stack has
+-finite size, recursion between wrapper/replacement functions is only
+-possible to a limited depth, beyond which Valgrind has to abort the
+-run.  This depth is currently 16 calls.</p>
+-<p>For all platforms ({x86,amd64,ppc32,ppc64,arm,mips32,s390}-linux)
+-all the above
+-comments apply on a per-thread basis.  In other words, wrapping is
+-thread-safe: each thread must individually observe the above
+-restrictions, but there is no need for any kind of inter-thread
+-cooperation.</p>
+-</div>
+-<div class="sect2" title="3.3.6. Limitations - original function signatures">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.limitations-sigs"></a>3.3.6. Limitations - original function signatures</h3></div></div></div>
+-<p>As shown in the above example, to call the original you must use a
+-macro of the form <code class="computeroutput">CALL_FN_*</code>.  
+-For technical reasons it is impossible
+-to create a single macro to deal with all argument types and numbers,
+-so a family of macros covering the most common cases is supplied.  In
+-what follows, 'W' denotes a machine-word-typed value (a pointer or a
+-C <code class="computeroutput">long</code>), 
+-and 'v' denotes C's <code class="computeroutput">void</code> type.
+-The currently available macros are:</p>
+-<pre class="programlisting">
+-CALL_FN_v_v    -- call an original of type  void fn ( void )
+-CALL_FN_W_v    -- call an original of type  long fn ( void )
+-
+-CALL_FN_v_W    -- call an original of type  void fn ( long )
+-CALL_FN_W_W    -- call an original of type  long fn ( long )
+-
+-CALL_FN_v_WW   -- call an original of type  void fn ( long, long )
+-CALL_FN_W_WW   -- call an original of type  long fn ( long, long )
+-
+-CALL_FN_v_WWW  -- call an original of type  void fn ( long, long, long )
+-CALL_FN_W_WWW  -- call an original of type  long fn ( long, long, long )
+-
+-CALL_FN_W_WWWW -- call an original of type  long fn ( long, long, long, long )
+-CALL_FN_W_5W   -- call an original of type  long fn ( long, long, long, long, long )
+-CALL_FN_W_6W   -- call an original of type  long fn ( long, long, long, long, long, long )
+-and so on, up to 
+-CALL_FN_W_12W
+-</pre>
+-<p>The set of supported types can be expanded as needed.  It is
+-regrettable that this limitation exists.  Function wrapping has proven
+-difficult to implement, with a certain apparently unavoidable level of
+-ickiness.  After several implementation attempts, the present
+-arrangement appears to be the least-worst tradeoff.  At least it works
+-reliably in the presence of dynamic linking and dynamic code
+-loading/unloading.</p>
+-<p>You should not attempt to wrap a function of one type signature with a
+-wrapper of a different type signature.  Such trickery will surely lead
+-to crashes or strange behaviour.  This is not a limitation
+-of the function wrapping implementation, merely a reflection of the
+-fact that it gives you sweeping powers to shoot yourself in the foot
+-if you are not careful.  Imagine the instant havoc you could wreak by
+-writing a wrapper which matched any function name in any soname - in
+-effect, one which claimed to be a wrapper for all functions in the
+-process.</p>
+-</div>
+-<div class="sect2" title="3.3.7. Examples">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core-adv.wrapping.examples"></a>3.3.7. Examples</h3></div></div></div>
+-<p>In the source tree, 
+-<code class="filename">memcheck/tests/wrap[1-8].c</code> provide a series of
+-examples, ranging from very simple to quite advanced.</p>
+-<p><code class="filename">mpi/libmpiwrap.c</code> is an example 
+-of wrapping a big, complex API (the MPI-2 interface).  This file defines 
+-almost 300 different wrappers.</p>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="manual-core.html"><< 2. Using and understanding the Valgrind core</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="mc-manual.html">4. Memcheck: a memory error detector >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/manual-core.html b/docs/html/manual-core.html
+deleted file mode 100644
+index 713bff9..0000000
+--- a/docs/html/manual-core.html
++++ /dev/null
+@@ -1,2170 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>2. Using and understanding the Valgrind core</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="manual-intro.html" title="1. Introduction">
+-<link rel="next" href="manual-core-adv.html" title="3. Using and understanding the Valgrind core: Advanced Topics">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="manual-intro.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="manual-core-adv.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="2. Using and understanding the Valgrind core">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="manual-core"></a>2. Using and understanding the Valgrind core</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.whatdoes">2.1. What Valgrind does with your program</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.started">2.2. Getting started</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.comment">2.3. The Commentary</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.report">2.4. Reporting of errors</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.suppress">2.5. Suppressing errors</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.options">2.6. Core Command-line Options</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.toolopts">2.6.1. Tool-selection Option</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.basicopts">2.6.2. Basic Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.erropts">2.6.3. Error-related Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.mallocopts">2.6.4. malloc-related Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.rareopts">2.6.5. Uncommon Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.debugopts">2.6.6. Debugging Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.defopts">2.6.7. Setting Default Options</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.pthreads">2.7. Support for Threads</a></span></dt>
+-<dd><dl><dt><span class="sect2"><a href="manual-core.html#manual-core.pthreads_perf_sched">2.7.1. Scheduling and Multi-Thread Performance</a></span></dt></dl></dd>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.signals">2.8. Handling of Signals</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.install">2.9. Building and Installing Valgrind</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.problems">2.10. If You Have Problems</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.limits">2.11. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.example">2.12. An Example Run</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.warnings">2.13. Warning Messages You Might See</a></span></dt>
+-</dl>
+-</div>
+-<p>This chapter describes the Valgrind core services, command-line
+-options and behaviours.  That means it is relevant regardless of what
+-particular tool you are using.  The information should be sufficient for you
+-to make effective day-to-day use of Valgrind.  Advanced topics related to
+-the Valgrind core are described in <a class="xref" href="manual-core-adv.html" title="3. Using and understanding the Valgrind core: Advanced Topics">Valgrind's core: advanced topics</a>.
+-</p>
+-<p>
+-A point of terminology: most references to "Valgrind" in this chapter
+-refer to the Valgrind core services.  </p>
+-<div class="sect1" title="2.1. What Valgrind does with your program">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.whatdoes"></a>2.1. What Valgrind does with your program</h2></div></div></div>
+-<p>Valgrind is designed to be as non-intrusive as possible. It works
+-directly with existing executables. You don't need to recompile, relink,
+-or otherwise modify the program to be checked.</p>
+-<p>You invoke Valgrind like this:</p>
+-<pre class="programlisting">
+-valgrind [valgrind-options] your-prog [your-prog-options]</pre>
+-<p>The most important option is <code class="option">--tool</code> which dictates
+-which Valgrind tool to run.  For example, if want to run the command
+-<code class="computeroutput">ls -l</code> using the memory-checking tool
+-Memcheck, issue this command:</p>
+-<pre class="programlisting">
+-valgrind --tool=memcheck ls -l</pre>
+-<p>However, Memcheck is the default, so if you want to use it you can
+-omit the <code class="option">--tool</code> option.</p>
+-<p>Regardless of which tool is in use, Valgrind takes control of your
+-program before it starts.  Debugging information is read from the
+-executable and associated libraries, so that error messages and other
+-outputs can be phrased in terms of source code locations, when
+-appropriate.</p>
+-<p>Your program is then run on a synthetic CPU provided by the
+-Valgrind core.  As new code is executed for the first time, the core
+-hands the code to the selected tool.  The tool adds its own
+-instrumentation code to this and hands the result back to the core,
+-which coordinates the continued execution of this instrumented
+-code.</p>
+-<p>The amount of instrumentation code added varies widely between
+-tools.  At one end of the scale, Memcheck adds code to check every
+-memory access and every value computed,
+-making it run 10-50 times slower than natively.
+-At the other end of the spectrum, the minimal tool, called Nulgrind,
+-adds no instrumentation at all and causes in total "only" about a 4 times
+-slowdown.</p>
+-<p>Valgrind simulates every single instruction your program executes.
+-Because of this, the active tool checks, or profiles, not only the code
+-in your application but also in all supporting dynamically-linked libraries,
+-including the C library, graphical libraries, and so on.</p>
+-<p>If you're using an error-detection tool, Valgrind may
+-detect errors in system libraries, for example the GNU C or X11
+-libraries, which you have to use.  You might not be interested in these
+-errors, since you probably have no control over that code.  Therefore,
+-Valgrind allows you to selectively suppress errors, by recording them in
+-a suppressions file which is read when Valgrind starts up.  The build
+-mechanism selects default suppressions which give reasonable
+-behaviour for the OS and libraries detected on your machine.
+-To make it easier to write suppressions, you can use the
+-<code class="option">--gen-suppressions=yes</code> option.  This tells Valgrind to
+-print out a suppression for each reported error, which you can then
+-copy into a suppressions file.</p>
+-<p>Different error-checking tools report different kinds of errors.
+-The suppression mechanism therefore allows you to say which tool or
+-tool(s) each suppression applies to.</p>
+-</div>
+-<div class="sect1" title="2.2. Getting started">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.started"></a>2.2. Getting started</h2></div></div></div>
+-<p>First off, consider whether it might be beneficial to recompile
+-your application and supporting libraries with debugging info enabled
+-(the <code class="option">-g</code> option).  Without debugging info, the best
+-Valgrind tools will be able to do is guess which function a particular
+-piece of code belongs to, which makes both error messages and profiling
+-output nearly useless.  With <code class="option">-g</code>, you'll get
+-messages which point directly to the relevant source code lines.</p>
+-<p>Another option you might like to consider, if you are working with
+-C++, is <code class="option">-fno-inline</code>.  That makes it easier to see the
+-function-call chain, which can help reduce confusion when navigating
+-around large C++ apps.  For example, debugging
+-OpenOffice.org with Memcheck is a bit easier when using this option.  You
+-don't have to do this, but doing so helps Valgrind produce more accurate
+-and less confusing error reports.  Chances are you're set up like this
+-already, if you intended to debug your program with GNU GDB, or some
+-other debugger.</p>
+-<p>If you are planning to use Memcheck: On rare
+-occasions, compiler optimisations (at <code class="option">-O2</code>
+-and above, and sometimes <code class="option">-O1</code>) have been
+-observed to generate code which fools Memcheck into wrongly reporting
+-uninitialised value errors, or missing uninitialised value errors.  We have
+-looked in detail into fixing this, and unfortunately the result is that
+-doing so would give a further significant slowdown in what is already a slow
+-tool.  So the best solution is to turn off optimisation altogether.  Since
+-this often makes things unmanageably slow, a reasonable compromise is to use
+-<code class="option">-O</code>.  This gets you the majority of the
+-benefits of higher optimisation levels whilst keeping relatively small the
+-chances of false positives or false negatives from Memcheck.  Also, you
+-should compile your code with <code class="option">-Wall</code> because
+-it can identify some or all of the problems that Valgrind can miss at the
+-higher optimisation levels.  (Using <code class="option">-Wall</code>
+-is also a good idea in general.)  All other tools (as far as we know) are
+-unaffected by optimisation level, and for profiling tools like Cachegrind it
+-is better to compile your program at its normal optimisation level.</p>
+-<p>Valgrind understands both the older "stabs" debugging format, used
+-by GCC versions prior to 3.1, and the newer DWARF2/3/4 formats
+-used by GCC
+-3.1 and later.  We continue to develop our debug-info readers,
+-although the majority of effort will naturally enough go into the newer
+-DWARF readers.</p>
+-<p>When you're ready to roll, run Valgrind as described above.
+-Note that you should run the real
+-(machine-code) executable here.  If your application is started by, for
+-example, a shell or Perl script, you'll need to modify it to invoke
+-Valgrind on the real executables.  Running such scripts directly under
+-Valgrind will result in you getting error reports pertaining to
+-<code class="filename">/bin/sh</code>,
+-<code class="filename">/usr/bin/perl</code>, or whatever interpreter
+-you're using.  This may not be what you want and can be confusing.  You
+-can force the issue by giving the option
+-<code class="option">--trace-children=yes</code>, but confusion is still
+-likely.</p>
+-</div>
+-<div class="sect1" title="2.3. The Commentary">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.comment"></a>2.3. The Commentary</h2></div></div></div>
+-<p>Valgrind tools write a commentary, a stream of text, detailing
+-error reports and other significant events.  All lines in the commentary
+-have following form:
+-
+-</p>
+-<pre class="programlisting">
+-==12345== some-message-from-Valgrind</pre>
+-<p>
+-</p>
+-<p>The <code class="computeroutput">12345</code> is the process ID.
+-This scheme makes it easy to distinguish program output from Valgrind
+-commentary, and also easy to differentiate commentaries from different
+-processes which have become merged together, for whatever reason.</p>
+-<p>By default, Valgrind tools write only essential messages to the
+-commentary, so as to avoid flooding you with information of secondary
+-importance.  If you want more information about what is happening,
+-re-run, passing the <code class="option">-v</code> option to Valgrind.  A second
+-<code class="option">-v</code> gives yet more detail.
+-</p>
+-<p>You can direct the commentary to three different places:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem">
+-<p><a name="manual-core.out2fd"></a>The default: send it to a file descriptor, which is by default
+-    2 (stderr).  So, if you give the core no options, it will write
+-    commentary to the standard error stream.  If you want to send it to
+-    some other file descriptor, for example number 9, you can specify
+-    <code class="option">--log-fd=9</code>.</p>
+-<p>This is the simplest and most common arrangement, but can
+-    cause problems when Valgrinding entire trees of processes which
+-    expect specific file descriptors, particularly stdin/stdout/stderr,
+-    to be available for their own use.</p>
+-</li>
+-<li class="listitem"><p><a name="manual-core.out2file"></a>A less intrusive
+-    option is to write the commentary to a file, which you specify by
+-    <code class="option">--log-file=filename</code>.  There are special format
+-    specifiers that can be used to use a process ID or an environment
+-    variable name in the log file name.  These are useful/necessary if your
+-    program invokes multiple processes (especially for MPI programs).
+-    See the <a class="link" href="manual-core.html#manual-core.basicopts" title="2.6.2. Basic Options">basic options section</a>
+-    for more details.</p></li>
+-<li class="listitem">
+-<p><a name="manual-core.out2socket"></a>The
+-    least intrusive option is to send the commentary to a network
+-    socket.  The socket is specified as an IP address and port number
+-    pair, like this: <code class="option">--log-socket=192.168.0.1:12345</code> if
+-    you want to send the output to host IP 192.168.0.1 port 12345
+-    (note: we
+-    have no idea if 12345 is a port of pre-existing significance).  You
+-    can also omit the port number:
+-    <code class="option">--log-socket=192.168.0.1</code>, in which case a default
+-    port of 1500 is used.  This default is defined by the constant
+-    <code class="computeroutput">VG_CLO_DEFAULT_LOGPORT</code> in the
+-    sources.</p>
+-<p>Note, unfortunately, that you have to use an IP address here,
+-    rather than a hostname.</p>
+-<p>Writing to a network socket is pointless if you don't
+-    have something listening at the other end.  We provide a simple
+-    listener program,
+-    <code class="computeroutput">valgrind-listener</code>, which accepts
+-    connections on the specified port and copies whatever it is sent to
+-    stdout.  Probably someone will tell us this is a horrible security
+-    risk.  It seems likely that people will write more sophisticated
+-    listeners in the fullness of time.</p>
+-<p><code class="computeroutput">valgrind-listener</code> can accept
+-    simultaneous connections from up to 50 Valgrinded processes.  In front
+-    of each line of output it prints the current number of active
+-    connections in round brackets.</p>
+-<p><code class="computeroutput">valgrind-listener</code> accepts two
+-    command-line options:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="option">-e</code> or <code class="option">--exit-at-zero</code>: 
+-         when the number of connected processes falls back to zero,
+-         exit.  Without this, it will run forever, that is, until you
+-         send it Control-C.</p></li>
+-<li class="listitem"><p><code class="option">portnumber</code>: changes the port it listens
+-        on from the default (1500).  The specified port must be in the
+-        range 1024 to 65535.  The same restriction applies to port
+-        numbers specified by a <code class="option">--log-socket</code> to
+-        Valgrind itself.</p></li>
+-</ul></div>
+-<p>If a Valgrinded process fails to connect to a listener, for
+-    whatever reason (the listener isn't running, invalid or unreachable
+-    host or port, etc), Valgrind switches back to writing the commentary
+-    to stderr.  The same goes for any process which loses an established
+-    connection to a listener.  In other words, killing the listener
+-    doesn't kill the processes sending data to it.</p>
+-</li>
+-</ol></div>
+-<p>Here is an important point about the relationship between the
+-commentary and profiling output from tools.  The commentary contains a
+-mix of messages from the Valgrind core and the selected tool.  If the
+-tool reports errors, it will report them to the commentary.  However, if
+-the tool does profiling, the profile data will be written to a file of
+-some kind, depending on the tool, and independent of what
+-<code class="option">--log-*</code> options are in force.  The commentary is
+-intended to be a low-bandwidth, human-readable channel.  Profiling data,
+-on the other hand, is usually voluminous and not meaningful without
+-further processing, which is why we have chosen this arrangement.</p>
+-</div>
+-<div class="sect1" title="2.4. Reporting of errors">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.report"></a>2.4. Reporting of errors</h2></div></div></div>
+-<p>When an error-checking tool
+-detects something bad happening in the program, an error
+-message is written to the commentary.  Here's an example from Memcheck:</p>
+-<pre class="programlisting">
+-==25832== Invalid read of size 4
+-==25832==    at 0x8048724: BandMatrix::ReSize(int, int, int) (bogon.cpp:45)
+-==25832==    by 0x80487AF: main (bogon.cpp:66)
+-==25832==  Address 0xBFFFF74C is not stack'd, malloc'd or free'd</pre>
+-<p>This message says that the program did an illegal 4-byte read of
+-address 0xBFFFF74C, which, as far as Memcheck can tell, is not a valid
+-stack address, nor corresponds to any current heap blocks or recently freed
+-heap blocks.  The read is happening at line 45 of
+-<code class="filename">bogon.cpp</code>, called from line 66 of the same file,
+-etc.  For errors associated with an identified (current or freed) heap block,
+-for example reading freed memory, Valgrind reports not only the
+-location where the error happened, but also where the associated heap block
+-was allocated/freed.</p>
+-<p>Valgrind remembers all error reports.  When an error is detected,
+-it is compared against old reports, to see if it is a duplicate.  If so,
+-the error is noted, but no further commentary is emitted.  This avoids
+-you being swamped with bazillions of duplicate error reports.</p>
+-<p>If you want to know how many times each error occurred, run with
+-the <code class="option">-v</code> option.  When execution finishes, all the
+-reports are printed out, along with, and sorted by, their occurrence
+-counts.  This makes it easy to see which errors have occurred most
+-frequently.</p>
+-<p>Errors are reported before the associated operation actually
+-happens.  For example, if you're using Memcheck and your program attempts to
+-read from address zero, Memcheck will emit a message to this effect, and
+-your program will then likely die with a segmentation fault.</p>
+-<p>In general, you should try and fix errors in the order that they
+-are reported.  Not doing so can be confusing.  For example, a program
+-which copies uninitialised values to several memory locations, and later
+-uses them, will generate several error messages, when run on Memcheck.
+-The first such error message may well give the most direct clue to the
+-root cause of the problem.</p>
+-<p>The process of detecting duplicate errors is quite an
+-expensive one and can become a significant performance overhead
+-if your program generates huge quantities of errors.  To avoid
+-serious problems, Valgrind will simply stop collecting
+-errors after 1,000 different errors have been seen, or 10,000,000 errors
+-in total have been seen.  In this situation you might as well
+-stop your program and fix it, because Valgrind won't tell you
+-anything else useful after this.  Note that the 1,000/10,000,000 limits
+-apply after suppressed errors are removed.  These limits are
+-defined in <code class="filename">m_errormgr.c</code> and can be increased
+-if necessary.</p>
+-<p>To avoid this cutoff you can use the
+-<code class="option">--error-limit=no</code> option.  Then Valgrind will always show
+-errors, regardless of how many there are.  Use this option carefully,
+-since it may have a bad effect on performance.</p>
+-</div>
+-<div class="sect1" title="2.5. Suppressing errors">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.suppress"></a>2.5. Suppressing errors</h2></div></div></div>
+-<p>The error-checking tools detect numerous problems in the system
+-libraries, such as the C library, 
+-which come pre-installed with your OS.  You can't easily fix
+-these, but you don't want to see these errors (and yes, there are many!)
+-So Valgrind reads a list of errors to suppress at startup.  A default
+-suppression file is created by the
+-<code class="computeroutput">./configure</code> script when the system is
+-built.</p>
+-<p>You can modify and add to the suppressions file at your leisure,
+-or, better, write your own.  Multiple suppression files are allowed.
+-This is useful if part of your project contains errors you can't or
+-don't want to fix, yet you don't want to continuously be reminded of
+-them.</p>
+-<p title="Note:"><b>Note: </b>By far the easiest way to add
+-suppressions is to use the <code class="option">--gen-suppressions=yes</code> option
+-described in <a class="xref" href="manual-core.html#manual-core.options" title="2.6. Core Command-line Options">Core Command-line Options</a>.  This generates
+-suppressions automatically.  For best results,
+-though, you may want to edit the output
+-    of  <code class="option">--gen-suppressions=yes</code> by hand, in which
+-case it would be advisable to read through this section.
+-</p>
+-<p>Each error to be suppressed is described very specifically, to
+-minimise the possibility that a suppression-directive inadvertently
+-suppresses a bunch of similar errors which you did want to see.  The
+-suppression mechanism is designed to allow precise yet flexible
+-specification of errors to suppress.</p>
+-<p>If you use the <code class="option">-v</code> option, at the end of execution,
+-Valgrind prints out one line for each used suppression, giving its name
+-and the number of times it got used.  Here's the suppressions used by a
+-run of <code class="computeroutput">valgrind --tool=memcheck ls -l</code>:</p>
+-<pre class="programlisting">
+---27579-- supp: 1 socketcall.connect(serv_addr)/__libc_connect/__nscd_getgrgid_r
+---27579-- supp: 1 socketcall.connect(serv_addr)/__libc_connect/__nscd_getpwuid_r
+---27579-- supp: 6 strrchr/_dl_map_object_from_fd/_dl_map_object</pre>
+-<p>Multiple suppressions files are allowed.  By default, Valgrind
+-uses <code class="filename">$PREFIX/lib/valgrind/default.supp</code>.  You can
+-ask to add suppressions from another file, by specifying
+-<code class="option">--suppressions=/path/to/file.supp</code>.
+-</p>
+-<p>If you want to understand more about suppressions, look at an
+-existing suppressions file whilst reading the following documentation.
+-The file <code class="filename">glibc-2.3.supp</code>, in the source
+-distribution, provides some good examples.</p>
+-<p>Each suppression has the following components:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>First line: its name.  This merely gives a handy name to the
+-    suppression, by which it is referred to in the summary of used
+-    suppressions printed out when a program finishes.  It's not
+-    important what the name is; any identifying string will do.</p></li>
+-<li class="listitem">
+-<p>Second line: name of the tool(s) that the suppression is for
+-    (if more than one, comma-separated), and the name of the suppression
+-    itself, separated by a colon (n.b.: no spaces are allowed), eg:</p>
+-<pre class="programlisting">
+-tool_name1,tool_name2:suppression_name</pre>
+-<p>Recall that Valgrind is a modular system, in which
+-    different instrumentation tools can observe your program whilst it
+-    is running.  Since different tools detect different kinds of errors,
+-    it is necessary to say which tool(s) the suppression is meaningful
+-    to.</p>
+-<p>Tools will complain, at startup, if a tool does not understand
+-    any suppression directed to it.  Tools ignore suppressions which are
+-    not directed to them.  As a result, it is quite practical to put
+-    suppressions for all tools into the same suppression file.</p>
+-</li>
+-<li class="listitem"><p>Next line: a small number of suppression types have extra
+-    information after the second line (eg. the <code class="varname">Param</code>
+-    suppression for Memcheck)</p></li>
+-<li class="listitem">
+-<p>Remaining lines: This is the calling context for the error --
+-    the chain of function calls that led to it.  There can be up to 24
+-    of these lines.</p>
+-<p>Locations may be names of either shared objects or
+-    functions.  They begin
+-    <code class="computeroutput">obj:</code> and
+-    <code class="computeroutput">fun:</code> respectively.  Function and
+-    object names to match against may use the wildcard characters
+-    <code class="computeroutput">*</code> and
+-    <code class="computeroutput">?</code>.</p>
+-<p><span class="command"><strong>Important note: </strong></span> C++ function names must be
+-    <span class="command"><strong>mangled</strong></span>.  If you are writing suppressions by
+-    hand, use the <code class="option">--demangle=no</code> option to get the
+-    mangled names in your error messages.  An example of a mangled
+-    C++ name is  <code class="computeroutput">_ZN9QListView4showEv</code>.
+-    This is the form that the GNU C++ compiler uses internally, and
+-    the form that must be used in suppression files.  The equivalent
+-    demangled name, <code class="computeroutput">QListView::show()</code>,
+-    is what you see at the C++ source code level.
+-    </p>
+-<p>A location line may also be
+-    simply "<code class="computeroutput">...</code>" (three dots).  This is
+-    a frame-level wildcard, which matches zero or more frames.  Frame
+-    level wildcards are useful because they make it easy to ignore
+-    varying numbers of uninteresting frames in between frames of
+-    interest.  That is often important when writing suppressions which
+-    are intended to be robust against variations in the amount of
+-    function inlining done by compilers.</p>
+-</li>
+-<li class="listitem"><p>Finally, the entire suppression must be between curly
+-    braces. Each brace must be the first character on its own
+-    line.</p></li>
+-</ul></div>
+-<p>A suppression only suppresses an error when the error matches all
+-the details in the suppression.  Here's an example:</p>
+-<pre class="programlisting">
+-{
+-  __gconv_transform_ascii_internal/__mbrtowc/mbtowc
+-  Memcheck:Value4
+-  fun:__gconv_transform_ascii_internal
+-  fun:__mbr*toc
+-  fun:mbtowc
+-}</pre>
+-<p>What it means is: for Memcheck only, suppress a
+-use-of-uninitialised-value error, when the data size is 4, when it
+-occurs in the function
+-<code class="computeroutput">__gconv_transform_ascii_internal</code>, when
+-that is called from any function of name matching
+-<code class="computeroutput">__mbr*toc</code>, when that is called from
+-<code class="computeroutput">mbtowc</code>.  It doesn't apply under any
+-other circumstances.  The string by which this suppression is identified
+-to the user is
+-<code class="computeroutput">__gconv_transform_ascii_internal/__mbrtowc/mbtowc</code>.</p>
+-<p>(See <a class="xref" href="mc-manual.html#mc-manual.suppfiles" title="4.4. Writing suppression files">Writing suppression files</a> for more details
+-on the specifics of Memcheck's suppression kinds.)</p>
+-<p>Another example, again for the Memcheck tool:</p>
+-<pre class="programlisting">
+-{
+-  libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0
+-  Memcheck:Value4
+-  obj:/usr/X11R6/lib/libX11.so.6.2
+-  obj:/usr/X11R6/lib/libX11.so.6.2
+-  obj:/usr/X11R6/lib/libXaw.so.7.0
+-}</pre>
+-<p>This suppresses any size 4 uninitialised-value error which occurs
+-anywhere in <code class="filename">libX11.so.6.2</code>, when called from
+-anywhere in the same library, when called from anywhere in
+-<code class="filename">libXaw.so.7.0</code>.  The inexact specification of
+-locations is regrettable, but is about all you can hope for, given that
+-the X11 libraries shipped on the Linux distro on which this example
+-was made have had their symbol tables removed.</p>
+-<p>Although the above two examples do not make this clear, you can
+-freely mix <code class="computeroutput">obj:</code> and
+-<code class="computeroutput">fun:</code> lines in a suppression.</p>
+-<p>Finally, here's an example using three frame-level wildcards:</p>
+-<pre class="programlisting">
+-{
+-   a-contrived-example
+-   Memcheck:Leak
+-   fun:malloc
+-   ...
+-   fun:ddd
+-   ...
+-   fun:ccc
+-   ...
+-   fun:main
+-}
+-</pre>
+-This suppresses Memcheck memory-leak errors, in the case where
+-the allocation was done by <code class="computeroutput">main</code>
+-calling (though any number of intermediaries, including zero)
+-<code class="computeroutput">ccc</code>,
+-calling onwards via
+-<code class="computeroutput">ddd</code> and eventually
+-to <code class="computeroutput">malloc.</code>.
+-</div>
+-<div class="sect1" title="2.6. Core Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.options"></a>2.6. Core Command-line Options</h2></div></div></div>
+-<p>As mentioned above, Valgrind's core accepts a common set of options.
+-The tools also accept tool-specific options, which are documented
+-separately for each tool.</p>
+-<p>Valgrind's default settings succeed in giving reasonable behaviour
+-in most cases.  We group the available options by rough categories.</p>
+-<div class="sect2" title="2.6.1. Tool-selection Option">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.toolopts"></a>2.6.1. Tool-selection Option</h3></div></div></div>
+-<p><a name="tool.opts.para"></a>The single most important option.</p>
+-<div class="variablelist">
+-<a name="tool.opts.list"></a><dl>
+-<dt>
+-<a name="tool_name"></a><span class="term">
+-      <code class="option">--tool=<toolname> [default: memcheck] </code>
+-    </span>
+-</dt>
+-<dd><p>Run the Valgrind tool called <code class="varname">toolname</code>,
+-      e.g. Memcheck, Cachegrind, etc.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="2.6.2. Basic Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.basicopts"></a>2.6.2. Basic Options</h3></div></div></div>
+-<p><a name="basic.opts.para"></a>These options work with all tools.</p>
+-<div class="variablelist">
+-<a name="basic.opts.list"></a><dl>
+-<dt>
+-<a name="opt.help"></a><span class="term"><code class="option">-h --help</code></span>
+-</dt>
+-<dd><p>Show help for all options, both for the core and for the
+-      selected tool.  If the option is repeated it is equivalent to giving
+-      <code class="option">--help-debug</code>.</p></dd>
+-<dt>
+-<a name="opt.help-debug"></a><span class="term"><code class="option">--help-debug</code></span>
+-</dt>
+-<dd><p>Same as <code class="option">--help</code>, but also lists debugging
+-      options which usually are only of use to Valgrind's
+-      developers.</p></dd>
+-<dt>
+-<a name="opt.version"></a><span class="term"><code class="option">--version</code></span>
+-</dt>
+-<dd><p>Show the version number of the Valgrind core. Tools can have
+-      their own version numbers. There is a scheme in place to ensure
+-      that tools only execute when the core version is one they are
+-      known to work with. This was done to minimise the chances of
+-      strange problems arising from tool-vs-core version
+-      incompatibilities.</p></dd>
+-<dt>
+-<a name="opt.quiet"></a><span class="term"><code class="option">-q</code>, <code class="option">--quiet</code></span>
+-</dt>
+-<dd><p>Run silently, and only print error messages. Useful if you
+-      are running regression tests or have some other automated test
+-      machinery.</p></dd>
+-<dt>
+-<a name="opt.verbose"></a><span class="term"><code class="option">-v</code>, <code class="option">--verbose</code></span>
+-</dt>
+-<dd><p>Be more verbose. Gives extra information on various aspects
+-      of your program, such as: the shared objects loaded, the
+-      suppressions used, the progress of the instrumentation and
+-      execution engines, and warnings about unusual behaviour. Repeating
+-      the option increases the verbosity level.</p></dd>
+-<dt>
+-<a name="opt.trace-children"></a><span class="term">
+-      <code class="option">--trace-children=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, Valgrind will trace into sub-processes
+-      initiated via the <code class="varname">exec</code> system call.  This is
+-      necessary for multi-process programs.
+-      </p>
+-<p>Note that Valgrind does trace into the child of a
+-      <code class="varname">fork</code> (it would be difficult not to, since
+-      <code class="varname">fork</code> makes an identical copy of a process), so this
+-      option is arguably badly named.  However, most children of
+-      <code class="varname">fork</code> calls immediately call <code class="varname">exec</code>
+-      anyway.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.trace-children-skip"></a><span class="term">
+-      <code class="option">--trace-children-skip=patt1,patt2,... </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>This option only has an effect when 
+-        <code class="option">--trace-children=yes</code> is specified.  It allows
+-        for some children to be skipped.  The option takes a comma
+-        separated list of patterns for the names of child executables
+-        that Valgrind should not trace into.  Patterns may include the
+-        metacharacters <code class="computeroutput">?</code>
+-        and <code class="computeroutput">*</code>, which have the usual
+-        meaning.</p>
+-<p>
+-        This can be useful for pruning uninteresting branches from a
+-        tree of processes being run on Valgrind.  But you should be
+-        careful when using it.  When Valgrind skips tracing into an
+-        executable, it doesn't just skip tracing that executable, it
+-        also skips tracing any of that executable's child processes.
+-        In other words, the flag doesn't merely cause tracing to stop
+-        at the specified executables -- it skips tracing of entire
+-        process subtrees rooted at any of the specified
+-        executables.</p>
+-</dd>
+-<dt>
+-<a name="opt.trace-children-skip-by-arg"></a><span class="term">
+-      <code class="option">--trace-children-skip-by-arg=patt1,patt2,... </code>
+-    </span>
+-</dt>
+-<dd><p>This is the same as  
+-        <code class="option">--trace-children-skip</code>, with one difference:
+-        the decision as to whether to trace into a child process is
+-        made by examining the arguments to the child process, rather
+-        than the name of its executable.</p></dd>
+-<dt>
+-<a name="opt.child-silent-after-fork"></a><span class="term">
+-      <code class="option">--child-silent-after-fork=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Valgrind will not show any debugging or
+-      logging output for the child process resulting from
+-      a <code class="varname">fork</code> call.  This can make the output less
+-      confusing (although more misleading) when dealing with processes
+-      that create children.  It is particularly useful in conjunction
+-      with <code class="varname">--trace-children=</code>.  Use of this option is also
+-      strongly recommended if you are requesting XML output
+-      (<code class="varname">--xml=yes</code>), since otherwise the XML from child and
+-      parent may become mixed up, which usually makes it useless.
+-      </p></dd>
+-<dt>
+-<a name="opt.vgdb"></a><span class="term">
+-      <code class="option">--vgdb=<no|yes|full> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Valgrind will provide "gdbserver" functionality when
+-      <code class="option">--vgdb=yes</code> or <code class="option">--vgdb=full</code> is
+-      specified.  This allows an external GNU GDB debugger to control
+-      and debug your program when it runs on Valgrind.
+-      <code class="option">--vgdb=full</code> incurs significant performance
+-      overheads, but provides more precise breakpoints and
+-      watchpoints. See <a class="xref" href="manual-core-adv.html#manual-core-adv.gdbserver" title="3.2. Debugging your program using Valgrind gdbserver and GDB">Debugging your program using Valgrind's gdbserver and GDB</a> for
+-      a detailed description.
+-      </p>
+-<p> If the embedded gdbserver is enabled but no gdb is
+-      currently being used, the <a class="xref" href="manual-core-adv.html#manual-core-adv.vgdb" title="3.2.9. vgdb command line options">vgdb</a>
+-      command line utility can send "monitor commands" to Valgrind
+-      from a shell.  The Valgrind core provides a set of
+-      <a class="xref" href="manual-core-adv.html#manual-core-adv.valgrind-monitor-commands" title="3.2.10. Valgrind monitor commands">Valgrind monitor commands</a>. A tool
+-      can optionally provide tool specific monitor commands, which are
+-      documented in the tool specific chapter.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.vgdb-error"></a><span class="term">
+-      <code class="option">--vgdb-error=<number> [default: 999999999] </code>
+-    </span>
+-</dt>
+-<dd><p> Use this option when the Valgrind gdbserver is enabled with
+-      <code class="option">--vgdb=yes</code> or <code class="option">--vgdb=full</code>.
+-      Tools that report errors will wait
+-      for "<code class="computeroutput">number</code>" errors to be
+-      reported before freezing the program and waiting for you to
+-      connect with GDB.  It follows that a value of zero will cause
+-      the gdbserver to be started before your program is executed.
+-      This is typically used to insert GDB breakpoints before
+-      execution, and also works with tools that do not report
+-      errors, such as Massif.
+-      </p></dd>
+-<dt>
+-<a name="opt.track-fds"></a><span class="term">
+-      <code class="option">--track-fds=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Valgrind will print out a list of open file
+-      descriptors on exit.  Along with each file descriptor is printed a
+-      stack backtrace of where the file was opened and any details
+-      relating to the file descriptor such as the file name or socket
+-      details.</p></dd>
+-<dt>
+-<a name="opt.time-stamp"></a><span class="term">
+-      <code class="option">--time-stamp=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, each message is preceded with an indication of
+-      the elapsed wallclock time since startup, expressed as days,
+-      hours, minutes, seconds and milliseconds.</p></dd>
+-<dt>
+-<a name="opt.log-fd"></a><span class="term">
+-      <code class="option">--log-fd=<number> [default: 2, stderr] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies that Valgrind should send all of its messages to
+-      the specified file descriptor.  The default, 2, is the standard
+-      error channel (stderr).  Note that this may interfere with the
+-      client's own use of stderr, as Valgrind's output will be
+-      interleaved with any output that the client sends to
+-      stderr.</p></dd>
+-<dt>
+-<a name="opt.log-file"></a><span class="term">
+-      <code class="option">--log-file=<filename> </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specifies that Valgrind should send all of its messages to
+-      the specified file.  If the file name is empty, it causes an abort.
+-      There are three special format specifiers that can be used in the file
+-      name.</p>
+-<p><code class="option">%p</code> is replaced with the current process ID.
+-      This is very useful for program that invoke multiple processes.
+-      WARNING: If you use <code class="option">--trace-children=yes</code> and your
+-      program invokes multiple processes OR your program forks without
+-      calling exec afterwards, and you don't use this specifier
+-      (or the <code class="option">%q</code> specifier below), the Valgrind output from
+-      all those processes will go into one file, possibly jumbled up, and
+-      possibly incomplete.</p>
+-<p><code class="option">%q{FOO}</code> is replaced with the contents of the
+-      environment variable <code class="varname">FOO</code>.  If the
+-      <code class="option">{FOO}</code> part is malformed, it causes an abort.  This
+-      specifier is rarely needed, but very useful in certain circumstances
+-      (eg. when running MPI programs).  The idea is that you specify a
+-      variable which will be set differently for each process in the job,
+-      for example <code class="computeroutput">BPROC_RANK</code> or whatever is
+-      applicable in your MPI setup.  If the named environment variable is not
+-      set, it causes an abort.  Note that in some shells, the
+-      <code class="option">{</code> and <code class="option">}</code> characters may need to be
+-      escaped with a backslash.</p>
+-<p><code class="option">%%</code> is replaced with <code class="option">%</code>.</p>
+-<p>If an <code class="option">%</code> is followed by any other character, it
+-      causes an abort.</p>
+-</dd>
+-<dt>
+-<a name="opt.log-socket"></a><span class="term">
+-      <code class="option">--log-socket=<ip-address:port-number> </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies that Valgrind should send all of its messages to
+-      the specified port at the specified IP address.  The port may be
+-      omitted, in which case port 1500 is used.  If a connection cannot
+-      be made to the specified socket, Valgrind falls back to writing
+-      output to the standard error (stderr).  This option is intended to
+-      be used in conjunction with the
+-      <code class="computeroutput">valgrind-listener</code> program.  For
+-      further details, see 
+-      <a class="link" href="manual-core.html#manual-core.comment" title="2.3. The Commentary">the commentary</a>
+-      in the manual.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="2.6.3. Error-related Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.erropts"></a>2.6.3. Error-related Options</h3></div></div></div>
+-<p><a name="error-related.opts.para"></a>These options are used by all tools
+-that can report errors, e.g. Memcheck, but not Cachegrind.</p>
+-<div class="variablelist">
+-<a name="error-related.opts.list"></a><dl>
+-<dt>
+-<a name="opt.xml"></a><span class="term">
+-      <code class="option">--xml=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, the important parts of the output (e.g. tool error
+-      messages) will be in XML format rather than plain text.  Furthermore,
+-      the XML output will be sent to a different output channel than the
+-      plain text output.  Therefore, you also must use one of
+-      <code class="option">--xml-fd</code>, <code class="option">--xml-file</code> or
+-      <code class="option">--xml-socket</code> to specify where the XML is to be sent.
+-      </p>
+-<p>Less important messages will still be printed in plain text, but
+-      because the XML output and plain text output are sent to different
+-      output channels (the destination of the plain text output is still
+-      controlled by <code class="option">--log-fd</code>, <code class="option">--log-file</code>
+-      and <code class="option">--log-socket</code>) this should not cause problems.
+-      </p>
+-<p>This option is aimed at making life easier for tools that consume
+-      Valgrind's output as input, such as GUI front ends.  Currently this
+-      option works with Memcheck, Helgrind, DRD and SGcheck.  The output
+-      format is specified in the file
+-      <code class="computeroutput">docs/internals/xml-output-protocol4.txt</code>
+-      in the source tree for Valgrind 3.5.0 or later.</p>
+-<p>The recommended options for a GUI to pass, when requesting
+-      XML output, are: <code class="option">--xml=yes</code> to enable XML output,
+-      <code class="option">--xml-file</code> to send the XML output to a (presumably
+-      GUI-selected) file, <code class="option">--log-file</code> to send the plain
+-      text output to a second GUI-selected file,
+-      <code class="option">--child-silent-after-fork=yes</code>, and
+-      <code class="option">-q</code> to restrict the plain text output to critical
+-      error messages created by Valgrind itself.  For example, failure to
+-      read a specified suppressions file counts as a critical error message.
+-      In this way, for a successful run the text output file will be empty.
+-      But if it isn't empty, then it will contain important information
+-      which the GUI user should be made aware
+-      of.</p>
+-</dd>
+-<dt>
+-<a name="opt.xml-fd"></a><span class="term">
+-      <code class="option">--xml-fd=<number> [default: -1, disabled] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies that Valgrind should send its XML output to the
+-      specified file descriptor.  It must be used in conjunction with
+-      <code class="option">--xml=yes</code>.</p></dd>
+-<dt>
+-<a name="opt.xml-file"></a><span class="term">
+-      <code class="option">--xml-file=<filename> </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies that Valgrind should send its XML output
+-      to the specified file.  It must be used in conjunction with
+-      <code class="option">--xml=yes</code>.  Any <code class="option">%p</code> or
+-      <code class="option">%q</code> sequences appearing in the filename are expanded
+-      in exactly the same way as they are for <code class="option">--log-file</code>.
+-      See the description of <code class="option">--log-file</code> for details.
+-      </p></dd>
+-<dt>
+-<a name="opt.xml-socket"></a><span class="term">
+-      <code class="option">--xml-socket=<ip-address:port-number> </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies that Valgrind should send its XML output the
+-      specified port at the specified IP address.  It must be used in
+-      conjunction with <code class="option">--xml=yes</code>.  The form of the argument
+-      is the same as that used by <code class="option">--log-socket</code>.
+-      See the description of <code class="option">--log-socket</code>
+-      for further details.</p></dd>
+-<dt>
+-<a name="opt.xml-user-comment"></a><span class="term">
+-      <code class="option">--xml-user-comment=<string> </code>
+-    </span>
+-</dt>
+-<dd><p>Embeds an extra user comment string at the start of the XML
+-      output.  Only works when <code class="option">--xml=yes</code> is specified;
+-      ignored otherwise.</p></dd>
+-<dt>
+-<a name="opt.demangle"></a><span class="term">
+-      <code class="option">--demangle=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Enable/disable automatic demangling (decoding) of C++ names.
+-      Enabled by default.  When enabled, Valgrind will attempt to
+-      translate encoded C++ names back to something approaching the
+-      original.  The demangler handles symbols mangled by g++ versions
+-      2.X, 3.X and 4.X.</p>
+-<p>An important fact about demangling is that function names
+-      mentioned in suppressions files should be in their mangled form.
+-      Valgrind does not demangle function names when searching for
+-      applicable suppressions, because to do otherwise would make
+-      suppression file contents dependent on the state of Valgrind's
+-      demangling machinery, and also slow down suppression matching.</p>
+-</dd>
+-<dt>
+-<a name="opt.num-callers"></a><span class="term">
+-      <code class="option">--num-callers=<number> [default: 12] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specifies the maximum number of entries shown in stack traces
+-      that identify program locations.  Note that errors are commoned up
+-      using only the top four function locations (the place in the current
+-      function, and that of its three immediate callers).  So this doesn't
+-      affect the total number of errors reported.</p>
+-<p>The maximum value for this is 500. Note that higher settings
+-      will make Valgrind run a bit more slowly and take a bit more
+-      memory, but can be useful when working with programs with
+-      deeply-nested call chains.</p>
+-</dd>
+-<dt>
+-<a name="opt.error-limit"></a><span class="term">
+-      <code class="option">--error-limit=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Valgrind stops reporting errors after 10,000,000
+-      in total, or 1,000 different ones, have been seen.  This is to
+-      stop the error tracking machinery from becoming a huge performance
+-      overhead in programs with many errors.</p></dd>
+-<dt>
+-<a name="opt.error-exitcode"></a><span class="term">
+-      <code class="option">--error-exitcode=<number> [default: 0] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies an alternative exit code to return if Valgrind
+-      reported any errors in the run.  When set to the default value
+-      (zero), the return value from Valgrind will always be the return 
+-      value of the process being simulated.  When set to a nonzero value,
+-      that value is returned instead, if Valgrind detects any errors.
+-      This is useful for using Valgrind as part of an automated test
+-      suite, since it makes it easy to detect test cases for which
+-      Valgrind has reported errors, just by inspecting return codes.</p></dd>
+-<dt>
+-<a name="opt.stack-traces"></a><span class="term">
+-      <code class="option">--show-below-main=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>By default, stack traces for errors do not show any
+-      functions that appear beneath <code class="function">main</code> because
+-      most of the time it's uninteresting C library stuff and/or
+-      gobbledygook.  Alternatively, if <code class="function">main</code> is not
+-      present in the stack trace, stack traces will not show any functions
+-      below <code class="function">main</code>-like functions such as glibc's
+-      <code class="function">__libc_start_main</code>.   Furthermore, if
+-      <code class="function">main</code>-like functions are present in the trace,
+-      they are normalised as <code class="function">(below main)</code>, in order to
+-      make the output more deterministic.</p>
+-<p>If this option is enabled, all stack trace entries will be
+-      shown and <code class="function">main</code>-like functions will not be
+-      normalised.</p>
+-</dd>
+-<dt>
+-<a name="opt.fullpath-after"></a><span class="term">
+-      <code class="option">--fullpath-after=<string>
+-              [default: don't show source paths] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>By default Valgrind only shows the filenames in stack
+-      traces, but not full paths to source files.  When using Valgrind
+-      in large projects where the sources reside in multiple different
+-      directories, this can be inconvenient.
+-      <code class="option">--fullpath-after</code> provides a flexible solution
+-      to this problem.  When this option is present, the path to each
+-      source file is shown, with the following all-important caveat:
+-      if <code class="option">string</code> is found in the path, then the path
+-      up to and including <code class="option">string</code> is omitted, else the
+-      path is shown unmodified.  Note that <code class="option">string</code> is
+-      not required to be a prefix of the path.</p>
+-<p>For example, consider a file named
+-      <code class="computeroutput">/home/janedoe/blah/src/foo/bar/xyzzy.c</code>.
+-      Specifying <code class="option">--fullpath-after=/home/janedoe/blah/src/</code>
+-      will cause Valgrind to show the name
+-      as <code class="computeroutput">foo/bar/xyzzy.c</code>.</p>
+-<p>Because the string is not required to be a prefix,
+-      <code class="option">--fullpath-after=src/</code> will produce the same
+-      output.  This is useful when the path contains arbitrary
+-      machine-generated characters.  For example, the
+-      path
+-      <code class="computeroutput">/my/build/dir/C32A1B47/blah/src/foo/xyzzy</code>
+-      can be pruned to <code class="computeroutput">foo/xyzzy</code>
+-      using
+-      <code class="option">--fullpath-after=/blah/src/</code>.</p>
+-<p>If you simply want to see the full path, just specify an
+-      empty string: <code class="option">--fullpath-after=</code>.  This isn't a
+-      special case, merely a logical consequence of the above rules.</p>
+-<p>Finally, you can use <code class="option">--fullpath-after</code>
+-      multiple times.  Any appearance of it causes Valgrind to switch
+-      to producing full paths and applying the above filtering rule.
+-      Each produced path is compared against all
+-      the <code class="option">--fullpath-after</code>-specified strings, in the
+-      order specified.  The first string to match causes the path to
+-      be truncated as described above.  If none match, the full path
+-      is shown.  This facilitates chopping off prefixes when the
+-      sources are drawn from a number of unrelated directories.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.suppressions"></a><span class="term">
+-      <code class="option">--suppressions=<filename> [default: $PREFIX/lib/valgrind/default.supp] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies an extra file from which to read descriptions of
+-      errors to suppress.  You may use up to 100 extra suppression
+-      files.</p></dd>
+-<dt>
+-<a name="opt.gen-suppressions"></a><span class="term">
+-      <code class="option">--gen-suppressions=<yes|no|all> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When set to <code class="varname">yes</code>, Valgrind will pause
+-      after every error shown and print the line:
+-      </p>
+-<div class="literallayout"><p><code class="computeroutput">    ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ----</code></p></div>
+-<p>
+-
+-      The prompt's behaviour is the same as for the
+-      <code class="option">--db-attach</code> option (see below).</p>
+-<p>If you choose to, Valgrind will print out a suppression for
+-      this error.  You can then cut and paste it into a suppression file
+-      if you don't want to hear about the error in the future.</p>
+-<p>When set to <code class="varname">all</code>, Valgrind will print a
+-      suppression for every reported error, without querying the
+-      user.</p>
+-<p>This option is particularly useful with C++ programs, as it
+-      prints out the suppressions with mangled names, as
+-      required.</p>
+-<p>Note that the suppressions printed are as specific as
+-      possible.  You may want to common up similar ones, by adding
+-      wildcards to function names, and by using frame-level wildcards.
+-      The wildcarding facilities are powerful yet flexible, and with a
+-      bit of careful editing, you may be able to suppress a whole
+-      family of related errors with only a few suppressions.  
+-      
+-      </p>
+-<p>Sometimes two different errors
+-      are suppressed by the same suppression, in which case Valgrind
+-      will output the suppression more than once, but you only need to
+-      have one copy in your suppression file (but having more than one
+-      won't cause problems).  Also, the suppression name is given as
+-      <code class="computeroutput"><insert a suppression name
+-      here></code>; the name doesn't really matter, it's
+-      only used with the <code class="option">-v</code> option which prints out all
+-      used suppression records.</p>
+-</dd>
+-<dt>
+-<a name="opt.db-attach"></a><span class="term">
+-      <code class="option">--db-attach=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, Valgrind will pause after every error shown
+-      and print the line:
+-      </p>
+-<div class="literallayout"><p><code class="computeroutput">    ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ----</code></p></div>
+-<p>
+-
+-      Pressing <code class="varname">Ret</code>, or <code class="varname">N Ret</code> or
+-      <code class="varname">n Ret</code>, causes Valgrind not to start a debugger
+-      for this error.</p>
+-<p>Pressing <code class="varname">Y Ret</code> or
+-      <code class="varname">y Ret</code> causes Valgrind to start a debugger for
+-      the program at this point. When you have finished with the
+-      debugger, quit from it, and the program will continue. Trying to
+-      continue from inside the debugger doesn't work.</p>
+-<p>
+-      Note: if you use GDB, more powerful debugging support is
+-      provided by the <code class="option">--vgdb=</code> <code class="varname">yes</code>
+-      or <code class="varname">full</code> value.  This activates Valgrind's
+-      internal gdbserver, which provides more-or-less full GDB-style
+-      control of the application: insertion of breakpoints, continuing 
+-      from inside GDB, inferior function calls, and much more.
+-      </p>
+-<p><code class="varname">C Ret</code> or <code class="varname">c Ret</code> causes
+-      Valgrind not to start a debugger, and not to ask again.</p>
+-</dd>
+-<dt>
+-<a name="opt.db-command"></a><span class="term">
+-      <code class="option">--db-command=<command> [default: gdb -nw %f %p] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specify the debugger to use with the
+-      <code class="option">--db-attach</code> command. The default debugger is
+-      GDB. This option is a template that is expanded by Valgrind at
+-      runtime.  <code class="literal">%f</code> is replaced with the executable's
+-      file name and <code class="literal">%p</code> is replaced by the process ID
+-      of the executable.</p>
+-<p>This specifies how Valgrind will invoke the debugger.  By
+-      default it will use whatever GDB is detected at build time, which
+-      is usually <code class="computeroutput">/usr/bin/gdb</code>.  Using
+-      this command, you can specify some alternative command to invoke
+-      the debugger you want to use.</p>
+-<p>The command string given can include one or instances of the
+-      <code class="literal">%p</code> and <code class="literal">%f</code> expansions. Each
+-      instance of <code class="literal">%p</code> expands to the PID of the
+-      process to be debugged and each instance of <code class="literal">%f</code>
+-      expands to the path to the executable for the process to be
+-      debugged.</p>
+-<p>Since <code class="computeroutput"><command></code> is likely
+-      to contain spaces, you will need to put this entire option in
+-      quotes to ensure it is correctly handled by the shell.</p>
+-</dd>
+-<dt>
+-<a name="opt.input-fd"></a><span class="term">
+-      <code class="option">--input-fd=<number> [default: 0, stdin] </code>
+-    </span>
+-</dt>
+-<dd><p>When using <code class="option">--db-attach=yes</code> or
+-      <code class="option">--gen-suppressions=yes</code>, Valgrind will stop so as
+-      to read keyboard input from you when each error occurs.  By
+-      default it reads from the standard input (stdin), which is
+-      problematic for programs which close stdin.  This option allows
+-      you to specify an alternative file descriptor from which to read
+-      input.</p></dd>
+-<dt>
+-<a name="opt.dsymutil"></a><span class="term">
+-      <code class="option">--dsymutil=no|yes [no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>This option is only relevant when running Valgrind on
+-      Mac OS X.</p>
+-<p>Mac OS X uses a deferred debug information (debuginfo)
+-      linking scheme.  When object files containing debuginfo are
+-      linked into a <code class="computeroutput">.dylib</code> or an
+-      executable, the debuginfo is not copied into the final file.
+-      Instead, the debuginfo must be linked manually by
+-      running <code class="computeroutput">dsymutil</code>, a
+-      system-provided utility, on the executable
+-      or <code class="computeroutput">.dylib</code>.  The resulting
+-      combined debuginfo is placed in a directory alongside the
+-      executable or <code class="computeroutput">.dylib</code>, but with
+-      the extension <code class="computeroutput">.dSYM</code>.</p>
+-<p>With <code class="option">--dsymutil=no</code>, Valgrind
+-      will detect cases where the
+-      <code class="computeroutput">.dSYM</code> directory is either
+-      missing, or is present but does not appear to match the
+-      associated executable or <code class="computeroutput">.dylib</code>,
+-      most likely because it is out of date.  In these cases, Valgrind
+-      will print a warning message but take no further action.</p>
+-<p>With <code class="option">--dsymutil=yes</code>, Valgrind
+-      will, in such cases, automatically
+-      run <code class="computeroutput">dsymutil</code> as necessary to
+-      bring the debuginfo up to date.  For all practical purposes, if
+-      you always use <code class="option">--dsymutil=yes</code>, then
+-      there is never any need to
+-      run <code class="computeroutput">dsymutil</code> manually or as part
+-      of your applications's build system, since Valgrind will run it
+-      as necessary.</p>
+-<p>Valgrind will not attempt to
+-      run <code class="computeroutput">dsymutil</code> on any 
+-      executable or library in
+-      <code class="computeroutput">/usr/</code>,
+-      <code class="computeroutput">/bin/</code>,
+-      <code class="computeroutput">/sbin/</code>,
+-      <code class="computeroutput">/opt/</code>,
+-      <code class="computeroutput">/sw/</code>,
+-      <code class="computeroutput">/System/</code>,
+-      <code class="computeroutput">/Library/</code> or
+-      <code class="computeroutput">/Applications/</code>
+-      since <code class="computeroutput">dsymutil</code> will always fail
+-      in such situations.  It fails both because the debuginfo for
+-      such pre-installed system components is not available anywhere,
+-      and also because it would require write privileges in those
+-      directories.</p>
+-<p>Be careful when
+-      using <code class="option">--dsymutil=yes</code>, since it will
+-      cause pre-existing <code class="computeroutput">.dSYM</code>
+-      directories to be silently deleted and re-created.  Also note that
+-      <code class="computeroutput">dsymutil</code> is quite slow, sometimes
+-      excessively so.</p>
+-</dd>
+-<dt>
+-<a name="opt.max-stackframe"></a><span class="term">
+-      <code class="option">--max-stackframe=<number> [default: 2000000] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>The maximum size of a stack frame.  If the stack pointer moves by
+-      more than this amount then Valgrind will assume that
+-      the program is switching to a different stack.</p>
+-<p>You may need to use this option if your program has large
+-      stack-allocated arrays.  Valgrind keeps track of your program's
+-      stack pointer.  If it changes by more than the threshold amount,
+-      Valgrind assumes your program is switching to a different stack,
+-      and Memcheck behaves differently than it would for a stack pointer
+-      change smaller than the threshold.  Usually this heuristic works
+-      well.  However, if your program allocates large structures on the
+-      stack, this heuristic will be fooled, and Memcheck will
+-      subsequently report large numbers of invalid stack accesses.  This
+-      option allows you to change the threshold to a different
+-      value.</p>
+-<p>You should only consider use of this option if Valgrind's
+-      debug output directs you to do so.  In that case it will tell you
+-      the new threshold you should specify.</p>
+-<p>In general, allocating large structures on the stack is a
+-      bad idea, because you can easily run out of stack space,
+-      especially on systems with limited memory or which expect to
+-      support large numbers of threads each with a small stack, and also
+-      because the error checking performed by Memcheck is more effective
+-      for heap-allocated data than for stack-allocated data.  If you
+-      have to use this option, you may wish to consider rewriting your
+-      code to allocate on the heap rather than on the stack.</p>
+-</dd>
+-<dt>
+-<a name="opt.main-stacksize"></a><span class="term">
+-      <code class="option">--main-stacksize=<number>
+-               [default: use current 'ulimit' value] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Specifies the size of the main thread's stack.</p>
+-<p>To simplify its memory management, Valgrind reserves all
+-      required space for the main thread's stack at startup.  That
+-      means it needs to know the required stack size at
+-      startup.</p>
+-<p>By default, Valgrind uses the current "ulimit" value for
+-      the stack size, or 16 MB, whichever is lower.  In many cases
+-      this gives a stack size in the range 8 to 16 MB, which almost
+-      never overflows for most applications.</p>
+-<p>If you need a larger total stack size,
+-      use <code class="option">--main-stacksize</code> to specify it.  Only set
+-      it as high as you need, since reserving far more space than you
+-      need (that is, hundreds of megabytes more than you need)
+-      constrains Valgrind's memory allocators and may reduce the total
+-      amount of memory that Valgrind can use.  This is only really of
+-      significance on 32-bit machines.</p>
+-<p>On Linux, you may request a stack of size up to 2GB.
+-      Valgrind will stop with a diagnostic message if the stack cannot
+-      be allocated.</p>
+-<p><code class="option">--main-stacksize</code> only affects the stack
+-      size for the program's initial thread.  It has no bearing on the
+-      size of thread stacks, as Valgrind does not allocate
+-      those.</p>
+-<p>You may need to use both <code class="option">--main-stacksize</code>
+-      and <code class="option">--max-stackframe</code> together.  It is important
+-      to understand that <code class="option">--main-stacksize</code> sets the
+-      maximum total stack size,
+-      whilst <code class="option">--max-stackframe</code> specifies the largest
+-      size of any one stack frame.  You will have to work out
+-      the <code class="option">--main-stacksize</code> value for yourself
+-      (usually, if your applications segfaults).  But Valgrind will
+-      tell you the needed <code class="option">--max-stackframe</code> size, if
+-      necessary.</p>
+-<p>As discussed further in the description
+-      of <code class="option">--max-stackframe</code>, a requirement for a large
+-      stack is a sign of potential portability problems.  You are best
+-      advised to place all large data in heap-allocated memory.</p>
+-</dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="2.6.4. malloc-related Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.mallocopts"></a>2.6.4. malloc-related Options</h3></div></div></div>
+-<p><a name="malloc-related.opts.para"></a>For tools that use their own version of
+-<code class="computeroutput">malloc</code> (e.g. Memcheck,
+-Massif, Helgrind, DRD), the following options apply.</p>
+-<div class="variablelist">
+-<a name="malloc-related.opts.list"></a><dl>
+-<dt>
+-<a name="opt.alignment"></a><span class="term">
+-      <code class="option">--alignment=<number> [default: 8 or 16, depending on the platform] </code>
+-    </span>
+-</dt>
+-<dd><p>By default Valgrind's <code class="function">malloc</code>,
+-      <code class="function">realloc</code>, etc, return a block whose starting
+-      address is 8-byte aligned or 16-byte aligned (the value depends on the
+-      platform and matches the platform default).  This option allows you to
+-      specify a different alignment.  The supplied value must be greater
+-      than or equal to the default, less than or equal to 4096, and must be
+-      a power of two.</p></dd>
+-<dt>
+-<a name="opt.redzone-size"></a><span class="term">
+-      <code class="option">--redzone-size=<number> [default: depends on the tool] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p> Valgrind's <code class="function">malloc, realloc,</code> etc, add
+-      padding blocks before and after each heap block allocated by the
+-      program being run. Such padding blocks are called redzones.  The
+-      default value for the redzone size depends on the tool.  For
+-      example, Memcheck adds and protects a minimum of 16 bytes before
+-      and after each block allocated by the client.  This allows it to
+-      detect block underruns or overruns of up to 16 bytes.
+-      </p>
+-<p>Increasing the redzone size makes it possible to detect
+-      overruns of larger distances, but increases the amount of memory
+-      used by Valgrind.  Decreasing the redzone size will reduce the
+-      memory needed by Valgrind but also reduces the chances of
+-      detecting over/underruns, so is not recommended.</p>
+-</dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="2.6.5. Uncommon Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.rareopts"></a>2.6.5. Uncommon Options</h3></div></div></div>
+-<p><a name="uncommon.opts.para"></a>These options apply to all tools, as they
+-affect certain obscure workings of the Valgrind core.  Most people won't
+-need to use them.</p>
+-<div class="variablelist">
+-<a name="uncommon.opts.list"></a><dl>
+-<dt>
+-<a name="opt.smc-check"></a><span class="term">
+-      <code class="option">--smc-check=<none|stack|all|all-non-file> [default: stack] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>This option controls Valgrind's detection of self-modifying
+-      code.  If no checking is done, if a program executes some code, then
+-      overwrites it with new code, and executes the new code, Valgrind will
+-      continue to execute the translations it made for the old code.  This
+-      will likely lead to incorrect behaviour and/or crashes.</p>
+-<p>Valgrind has four levels of self-modifying code detection:
+-      no detection, detect self-modifying code on the stack (which is used by
+-      GCC to implement nested functions), detect self-modifying code
+-      everywhere, and detect self-modifying code everywhere except in
+-      file-backed mappings.
+-
+-      Note that the default option will catch the vast majority
+-      of cases.  The main case it will not catch is programs such as JIT
+-      compilers that dynamically generate code <span class="emphasis"><em>and</em></span>
+-      subsequently overwrite part or all of it.  Running with
+-      <code class="varname">all</code> will slow Valgrind down noticeably.
+-      Running with
+-      <code class="varname">none</code> will rarely speed things up, since very little
+-      code gets put on the stack for most programs.  The
+-      <code class="function">VALGRIND_DISCARD_TRANSLATIONS</code> client
+-      request is an alternative to <code class="option">--smc-check=all</code>
+-      that requires more programmer effort but allows Valgrind to run
+-      your program faster, by telling it precisely when translations
+-      need to be re-made.
+-      
+-      </p>
+-<p><code class="option">--smc-check=all-non-file</code> provides a
+-      cheaper but more limited version
+-      of <code class="option">--smc-check=all</code>.  It adds checks to any
+-      translations that do not originate from file-backed memory
+-      mappings.  Typical applications that generate code, for example
+-      JITs in web browsers, generate code into anonymous mmaped areas,
+-      whereas the "fixed" code of the browser always lives in
+-      file-backed mappings.  <code class="option">--smc-check=all-non-file</code>
+-      takes advantage of this observation, limiting the overhead of
+-      checking to code which is likely to be JIT generated.</p>
+-<p>Some architectures (including ppc32, ppc64, ARM and MIPS)
+-      require programs which create code at runtime to flush the
+-      instruction cache in between code generation and first use.
+-      Valgrind observes and honours such instructions.  Hence, on
+-      ppc32/Linux, ppc64/Linux and ARM/Linux, Valgrind always provides
+-      complete, transparent support for self-modifying code.  It is
+-      only on platforms such as x86/Linux, AMD64/Linux, x86/Darwin and
+-      AMD64/Darwin that you need to use this option.</p>
+-</dd>
+-<dt>
+-<a name="opt.read-var-info"></a><span class="term">
+-      <code class="option">--read-var-info=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, Valgrind will read information about
+-      variable types and locations from DWARF3 debug info.
+-      This slows Valgrind down and makes it use more memory, but for
+-      the tools that can take advantage of it (Memcheck, Helgrind,
+-      DRD) it can result in more precise error messages.  For example,
+-      here are some standard errors issued by Memcheck:</p>
+-<pre class="programlisting">
+-==15516== Uninitialised byte(s) found during client check request
+-==15516==    at 0x400633: croak (varinfo1.c:28)
+-==15516==    by 0x4006B2: main (varinfo1.c:55)
+-==15516==  Address 0x60103b is 7 bytes inside data symbol "global_i2"
+-==15516== 
+-==15516== Uninitialised byte(s) found during client check request
+-==15516==    at 0x400633: croak (varinfo1.c:28)
+-==15516==    by 0x4006BC: main (varinfo1.c:56)
+-==15516==  Address 0x7fefffefc is on thread 1's stack</pre>
+-<p>And here are the same errors with
+-      <code class="option">--read-var-info=yes</code>:</p>
+-<pre class="programlisting">
+-==15522== Uninitialised byte(s) found during client check request
+-==15522==    at 0x400633: croak (varinfo1.c:28)
+-==15522==    by 0x4006B2: main (varinfo1.c:55)
+-==15522==  Location 0x60103b is 0 bytes inside global_i2[7],
+-==15522==  a global variable declared at varinfo1.c:41
+-==15522== 
+-==15522== Uninitialised byte(s) found during client check request
+-==15522==    at 0x400633: croak (varinfo1.c:28)
+-==15522==    by 0x4006BC: main (varinfo1.c:56)
+-==15522==  Location 0x7fefffefc is 0 bytes inside local var "local"
+-==15522==  declared at varinfo1.c:46, in frame #1 of thread 1</pre>
+-</dd>
+-<dt>
+-<a name="opt.vgdb-poll"></a><span class="term">
+-      <code class="option">--vgdb-poll=<number> [default: 5000] </code>
+-    </span>
+-</dt>
+-<dd><p> As part of its main loop, the Valgrind scheduler will
+-      poll to check if some activity (such as an external command or
+-      some input from a gdb) has to be handled by gdbserver.  This
+-      activity poll will be done after having run the given number of
+-      basic blocks (or slightly more than the given number of basic
+-      blocks). This poll is quite cheap so the default value is set
+-      relatively low. You might further decrease this value if vgdb
+-      cannot use ptrace system call to interrupt Valgrind if all
+-      threads are (most of the time) blocked in a system call.
+-      </p></dd>
+-<dt>
+-<a name="opt.vgdb-shadow-registers"></a><span class="term">
+-      <code class="option">--vgdb-shadow-registers=no|yes [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p> When activated, gdbserver will expose the Valgrind shadow registers
+-      to GDB. With this, the value of the Valgrind shadow registers can be examined
+-      or changed using GDB. Exposing shadow registers only works with GDB version
+-      7.1 or later.
+-      </p></dd>
+-<dt>
+-<a name="opt.vgdb-prefix"></a><span class="term">
+-      <code class="option">--vgdb-prefix=<prefix> [default: /tmp/vgdb-pipe] </code>
+-    </span>
+-</dt>
+-<dd><p> To communicate with gdb/vgdb, the Valgrind gdbserver
+-      creates 3 files (2 named FIFOs and a mmap shared memory
+-      file). The prefix option controls the directory and prefix for
+-      the creation of these files.
+-      </p></dd>
+-<dt>
+-<a name="opt.run-libc-freeres"></a><span class="term">
+-      <code class="option">--run-libc-freeres=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>This option is only relevant when running Valgrind on Linux.</p>
+-<p>The GNU C library (<code class="function">libc.so</code>), which is
+-      used by all programs, may allocate memory for its own uses.
+-      Usually it doesn't bother to free that memory when the program
+-      ends—there would be no point, since the Linux kernel reclaims
+-      all process resources when a process exits anyway, so it would
+-      just slow things down.</p>
+-<p>The glibc authors realised that this behaviour causes leak
+-      checkers, such as Valgrind, to falsely report leaks in glibc, when
+-      a leak check is done at exit.  In order to avoid this, they
+-      provided a routine called <code class="function">__libc_freeres</code>
+-      specifically to make glibc release all memory it has allocated.
+-      Memcheck therefore tries to run
+-      <code class="function">__libc_freeres</code> at exit.</p>
+-<p>Unfortunately, in some very old versions of glibc,
+-      <code class="function">__libc_freeres</code> is sufficiently buggy to cause
+-      segmentation faults.  This was particularly noticeable on Red Hat
+-      7.1.  So this option is provided in order to inhibit the run of
+-      <code class="function">__libc_freeres</code>.  If your program seems to run
+-      fine on Valgrind, but segfaults at exit, you may find that
+-      <code class="option">--run-libc-freeres=no</code> fixes that, although at the
+-      cost of possibly falsely reporting space leaks in
+-      <code class="filename">libc.so</code>.</p>
+-</dd>
+-<dt>
+-<a name="opt.sim-hints"></a><span class="term">
+-      <code class="option">--sim-hints=hint1,hint2,... </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Pass miscellaneous hints to Valgrind which slightly modify
+-      the simulated behaviour in nonstandard or dangerous ways, possibly
+-      to help the simulation of strange features.  By default no hints
+-      are enabled.  Use with caution!  Currently known hints are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="option">lax-ioctls: </code> Be very lax about ioctl
+-          handling; the only assumption is that the size is
+-          correct. Doesn't require the full buffer to be initialized
+-          when writing.  Without this, using some device drivers with a
+-          large number of strange ioctl commands becomes very
+-          tiresome.</p></li>
+-<li class="listitem"><p><code class="option">enable-outer: </code> Enable some special
+-          magic needed when the program being run is itself
+-          Valgrind.</p></li>
+-<li class="listitem"><p><code class="option">no-inner-prefix: </code> Disable printing
+-          a prefix <code class="option">></code> in front of each stdout or
+-          stderr output line in an inner Valgrind being run by an
+-          outer Valgrind. This is useful when running Valgrind
+-          regression tests in an outer/inner setup. Note that the
+-          prefix <code class="option">></code> will always be printed in
+-          front of the inner debug logging lines.</p></li>
+-<li class="listitem"><p><code class="option">fuse-compatible: </code> Enable special
+-            handling for certain system calls that may block in a FUSE
+-            file-system.  This may be necessary when running Valgrind
+-            on a multi-threaded program that uses one thread to manage
+-            a FUSE file-system and another thread to access that
+-            file-system.
+-          </p></li>
+-</ul></div>
+-</dd>
+-<dt>
+-<a name="opt.fair-sched"></a><span class="term">
+-      <code class="option">--fair-sched=<no|yes|try>    [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>The <code class="option">--fair-sched</code> option controls
+-      the locking mechanism used by Valgrind to serialise thread
+-      execution.  The locking mechanism controls the way the threads
+-      are scheduled, and different settings give different trade-offs
+-      between fairness and performance. For more details about the
+-      Valgrind thread serialisation scheme and its impact on
+-      performance and thread scheduling, see
+-      <a class="xref" href="manual-core.html#manual-core.pthreads_perf_sched" title="2.7.1. Scheduling and Multi-Thread Performance">Scheduling and Multi-Thread Performance</a>.
+-
+-      </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>The value <code class="option">--fair-sched=yes</code>
+-          activates a fair scheduler.  In short, if multiple threads are
+-          ready to run, the threads will be scheduled in a round robin
+-          fashion.  This mechanism is not available on all platforms or
+-          Linux versions.  If not available,
+-          using <code class="option">--fair-sched=yes</code> will cause Valgrind to
+-          terminate with an error.</p>
+-<p>You may find this setting improves overall
+-          responsiveness if you are running an interactive
+-          multithreaded program, for example a web browser, on
+-          Valgrind.</p>
+-</li>
+-<li class="listitem"><p>The value <code class="option">--fair-sched=try</code>
+-          activates fair scheduling if available on the
+-          platform.  Otherwise, it will automatically fall back
+-          to <code class="option">--fair-sched=no</code>.</p></li>
+-<li class="listitem"><p>The value <code class="option">--fair-sched=no</code> activates
+-          a scheduler which does not guarantee fairness
+-          between threads ready to run, but which in general gives the
+-         highest performance.</p></li>
+-</ul></div>
+-<p>
+-    </p>
+-</dd>
+-<dt>
+-<a name="opt.kernel-variant"></a><span class="term">
+-      <code class="option">--kernel-variant=variant1,variant2,...</code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Handle system calls and ioctls arising from minor variants
+-      of the default kernel for this platform.  This is useful for
+-      running on hacked kernels or with kernel modules which support
+-      nonstandard ioctls, for example.  Use with caution.  If you don't
+-      understand what this option does then you almost certainly don't
+-      need it.  Currently known variants are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="option">bproc: </code> Support the
+-          <code class="function">sys_broc</code> system call on x86.  This is for
+-          running on BProc, which is a minor variant of standard Linux which
+-          is sometimes used for building clusters.</p></li></ul></div>
+-</dd>
+-<dt>
+-<a name="opt.show-emwarns"></a><span class="term">
+-      <code class="option">--show-emwarns=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, Valgrind will emit warnings about its CPU
+-      emulation in certain cases.  These are usually not
+-      interesting.</p></dd>
+-<dt>
+-<a name="opt.require-text-symbol"></a><span class="term">
+-      <code class="option">--require-text-symbol=:sonamepatt:fnnamepatt</code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When a shared object whose soname
+-      matches <code class="varname">sonamepatt</code> is loaded into the
+-      process, examine all the text symbols it exports.  If none of
+-      those match <code class="varname">fnnamepatt</code>, print an error
+-      message and abandon the run.  This makes it possible to ensure
+-      that the run does not continue unless a given shared object
+-      contains a particular function name.
+-      </p>
+-<p>
+-      Both <code class="varname">sonamepatt</code> and
+-      <code class="varname">fnnamepatt</code> can be written using the usual
+-      <code class="varname">?</code> and <code class="varname">*</code> wildcards.  For
+-      example: <code class="varname">":*libc.so*:foo?bar"</code>.  You may use
+-      characters other than a colon to separate the two patterns.  It
+-      is only important that the first character and the separator
+-      character are the same.  For example, the above example could
+-      also be written <code class="varname">"Q*libc.so*Qfoo?bar"</code>.
+-      Multiple <code class="varname"> --require-text-symbol</code> flags are
+-      allowed, in which case shared objects that are loaded into
+-      the process will be checked against all of them.
+-      </p>
+-<p>
+-      The purpose of this is to support reliable usage of marked-up
+-      libraries.  For example, suppose we have a version of GCC's
+-      <code class="varname">libgomp.so</code> which has been marked up with
+-      annotations to support Helgrind.  It is only too easy and
+-      confusing to load the wrong, un-annotated
+-      <code class="varname">libgomp.so</code> into the application.  So the idea
+-      is: add a text symbol in the marked-up library, for
+-      example <code class="varname">annotated_for_helgrind_3_6</code>, and then
+-      give the flag
+-      <code class="varname">--require-text-symbol=:*libgomp*so*:annotated_for_helgrind_3_6</code>
+-      so that when <code class="varname">libgomp.so</code> is loaded, Valgrind
+-      scans its symbol table, and if the symbol isn't present the run
+-      is aborted, rather than continuing silently with the
+-      un-marked-up library.  Note that you should put the entire flag
+-      in quotes to stop shells expanding up the <code class="varname">*</code>
+-      and <code class="varname">?</code> wildcards.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.soname-synonyms"></a><span class="term">
+-      <code class="option">--soname-synonyms=syn1=pattern1,syn2=pattern2,...</code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When a shared library is loaded, Valgrind checks for 
+-      functions in the library that must be replaced or wrapped.
+-      For example, Memcheck replaces all malloc related
+-      functions (malloc, free, calloc, ...) with its own versions.
+-      Such replacements are done by default only in shared libraries whose
+-      soname matches a predefined soname pattern (e.g.
+-      <code class="varname">libc.so*</code> on linux).
+-      By default, no replacement is done for a statically linked
+-      library or for alternative libraries such as tcmalloc.
+-      In some cases, the replacements allow
+-      <code class="option">--soname-synonyms</code> to specify one additional
+-      synonym pattern, giving flexibility in the replacement. </p>
+-<p>Currently, this flexibility is only allowed for the
+-      malloc related functions, using the
+-      synonym <code class="varname">somalloc</code>.  This synonym is usable for
+-      all tools doing standard replacement of malloc related functions
+-      (e.g. memcheck, massif, drd, helgrind, exp-dhat, exp-sgcheck).
+-      </p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>Alternate malloc library: to replace the malloc
+-          related functions in an alternate library with
+-          soname <code class="varname">mymalloclib.so</code>, give the
+-          option <code class="option">--soname-synonyms=somalloc=mymalloclib.so</code>.
+-          A pattern can be used to match multiple libraries sonames.
+-          For
+-          example, <code class="option">--soname-synonyms=somalloc=*tcmalloc*</code>
+-          will match the soname of all variants of the tcmalloc library
+-          (native, debug, profiled, ... tcmalloc variants). </p>
+-<p>Note: the soname of a elf shared library can be
+-          retrieved using the readelf utility. </p>
+-</li>
+-<li class="listitem"><p>Replacements in a statically linked library are done by
+-          using the <code class="varname">NONE</code> pattern. For example, if
+-          you link with <code class="varname">libtcmalloc.a</code>, memcheck 
+-          will properly work when you give the
+-          option <code class="option">--soname-synonyms=somalloc=NONE</code>.  Note
+-          that a NONE pattern will match the main executable and any
+-          shared library having no soname. </p></li>
+-<li class="listitem"><p>To run a "default" Firefox build for Linux, in which
+-          JEMalloc is linked in to the main executable,
+-          use <code class="option">--soname-synonyms=somalloc=NONE</code>.
+-          </p></li>
+-</ul></div>
+-</dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect2" title="2.6.6. Debugging Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.debugopts"></a>2.6.6. Debugging Options</h3></div></div></div>
+-<p><a name="debug.opts.para"></a>There are also some options for debugging
+-Valgrind itself.  You shouldn't need to use them in the normal run of
+-things.  If you wish to see the list, use the
+-<code class="option">--help-debug</code> option.</p>
+-<p>If you wish to debug your program rather than debugging
+-Valgrind itself, then you should use the options
+-<code class="option">--vgdb=yes</code> or <code class="option">--vgdb=full</code>
+-or <code class="option">--db-attach=yes</code>.
+-</p>
+-</div>
+-<div class="sect2" title="2.6.7. Setting Default Options">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.defopts"></a>2.6.7. Setting Default Options</h3></div></div></div>
+-<p>Note that Valgrind also reads options from three places:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>The file <code class="computeroutput">~/.valgrindrc</code></p></li>
+-<li class="listitem"><p>The environment variable
+-    <code class="computeroutput">$VALGRIND_OPTS</code></p></li>
+-<li class="listitem"><p>The file <code class="computeroutput">./.valgrindrc</code></p></li>
+-</ol></div>
+-<p>These are processed in the given order, before the
+-command-line options.  Options processed later override those
+-processed earlier; for example, options in
+-<code class="computeroutput">./.valgrindrc</code> will take
+-precedence over those in
+-<code class="computeroutput">~/.valgrindrc</code>.
+-</p>
+-<p>Please note that the <code class="computeroutput">./.valgrindrc</code>
+-file is ignored if it is marked as world writeable or not owned 
+-by the current user. This is because the
+-<code class="computeroutput">./.valgrindrc</code> can contain options that are
+-potentially harmful or can be used by a local attacker to execute code under
+-your user account.
+-</p>
+-<p>Any tool-specific options put in
+-<code class="computeroutput">$VALGRIND_OPTS</code> or the
+-<code class="computeroutput">.valgrindrc</code> files should be
+-prefixed with the tool name and a colon.  For example, if you
+-want Memcheck to always do leak checking, you can put the
+-following entry in <code class="literal">~/.valgrindrc</code>:</p>
+-<pre class="programlisting">
+---memcheck:leak-check=yes</pre>
+-<p>This will be ignored if any tool other than Memcheck is
+-run.  Without the <code class="computeroutput">memcheck:</code>
+-part, this will cause problems if you select other tools that
+-don't understand
+-<code class="option">--leak-check=yes</code>.</p>
+-</div>
+-</div>
+-<div class="sect1" title="2.7. Support for Threads">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.pthreads"></a>2.7. Support for Threads</h2></div></div></div>
+-<p>Threaded programs are fully supported.</p>
+-<p>The main thing to point out with respect to threaded programs is
+-that your program will use the native threading library, but Valgrind
+-serialises execution so that only one (kernel) thread is running at a
+-time.  This approach avoids the horrible implementation problems of
+-implementing a truly multithreaded version of Valgrind, but it does
+-mean that threaded apps never use more than one CPU simultaneously,
+-even if you have a multiprocessor or multicore machine.</p>
+-<p>Valgrind doesn't schedule the threads itself.  It merely ensures
+-that only one thread runs at once, using a simple locking scheme.  The
+-actual thread scheduling remains under control of the OS kernel.  What
+-this does mean, though, is that your program will see very different
+-scheduling when run on Valgrind than it does when running normally.
+-This is both because Valgrind is serialising the threads, and because
+-the code runs so much slower than normal.</p>
+-<p>This difference in scheduling may cause your program to behave
+-differently, if you have some kind of concurrency, critical race,
+-locking, or similar, bugs.  In that case you might consider using the
+-tools Helgrind and/or DRD to track them down.</p>
+-<p>On Linux, Valgrind also supports direct use of the
+-<code class="computeroutput">clone</code> system call,
+-<code class="computeroutput">futex</code> and so on.
+-<code class="computeroutput">clone</code> is supported where either
+-everything is shared (a thread) or nothing is shared (fork-like); partial
+-sharing will fail.
+-</p>
+-<div class="sect2" title="2.7.1. Scheduling and Multi-Thread Performance">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-core.pthreads_perf_sched"></a>2.7.1. Scheduling and Multi-Thread Performance</h3></div></div></div>
+-<p>A thread executes code only when it holds the abovementioned
+-lock.  After executing some number of instructions, the running thread
+-will release the lock.  All threads ready to run will then compete to
+-acquire the lock.</p>
+-<p>The <code class="option">--fair-sched</code> option controls the locking mechanism
+-used to serialise thread execution.</p>
+-<p>The default pipe based locking mechanism
+-(<code class="option">--fair-sched=no</code>) is available on all
+-platforms.  Pipe based locking does not guarantee fairness between
+-threads: it is quite likely that a thread that has just released the
+-lock reacquires it immediately, even though other threads are ready to
+-run.  When using pipe based locking, different runs of the same
+-multithreaded application might give very different thread
+-scheduling.</p>
+-<p>An alternative locking mechanism, based on futexes, is available
+-on some platforms.  If available, it is activated
+-by <code class="option">--fair-sched=yes</code> or
+-<code class="option">--fair-sched=try</code>.  Futex based locking ensures
+-fairness (round-robin scheduling) between threads: if multiple threads
+-are ready to run, the lock will be given to the thread which first
+-requested the lock.  Note that a thread which is blocked in a system
+-call (e.g. in a blocking read system call) has not (yet) requested the
+-lock: such a thread requests the lock only after the system call is
+-finished.</p>
+-<p> The fairness of the futex based locking produces better
+-reproducibility of thread scheduling for different executions of a
+-multithreaded application. This better reproducibility is particularly
+-helpful when using Helgrind or DRD.</p>
+-<p>Valgrind's use of thread serialisation implies that only one
+-thread at a time may run.  On a multiprocessor/multicore system, the
+-running thread is assigned to one of the CPUs by the OS kernel
+-scheduler.  When a thread acquires the lock, sometimes the thread will
+-be assigned to the same CPU as the thread that just released the
+-lock.  Sometimes, the thread will be assigned to another CPU.  When
+-using pipe based locking, the thread that just acquired the lock
+-will usually be scheduled on the same CPU as the thread that just
+-released the lock.  With the futex based mechanism, the thread that
+-just acquired the lock will more often be scheduled on another
+-CPU.</p>
+-<p>Valgrind's thread serialisation and CPU assignment by the OS
+-kernel scheduler can interact badly with the CPU frequency scaling
+-available on many modern CPUs.  To decrease power consumption, the
+-frequency of a CPU or core is automatically decreased if the CPU/core
+-has not been used recently.  If the OS kernel often assigns the thread
+-which just acquired the lock to another CPU/core, it is quite likely
+-that this CPU/core is currently at a low frequency.  The frequency of
+-this CPU will be increased after some time.  However, during this
+-time, the (only) running thread will have run at the low frequency.
+-Once this thread has run for some time, it will release the lock.
+-Another thread will acquire this lock, and might be scheduled again on
+-another CPU whose clock frequency was decreased in the
+-meantime.</p>
+-<p>The futex based locking causes threads to change CPUs/cores more
+-often.  So, if CPU frequency scaling is activated, the futex based
+-locking might decrease significantly the performance of a
+-multithreaded app running under Valgrind.  Performance losses of up to
+-50% degradation have been observed, as compared to running on a
+-machine for which CPU frequency scaling has been disabled.  The pipe
+-based locking locking scheme also interacts badly with CPU frequency
+-scaling, with performance losses in the range 10..20% having been
+-observed.</p>
+-<p>To avoid such performance degradation, you should indicate to
+-the kernel that all CPUs/cores should always run at maximum clock
+-speed.  Depending on your Linux distribution, CPU frequency scaling
+-may be controlled using a graphical interface or using command line
+-such as
+-<code class="computeroutput">cpufreq-selector</code> or
+-<code class="computeroutput">cpufreq-set</code>.
+-</p>
+-<p>An alternative way to avoid these problems is to tell the
+-OS scheduler to tie a Valgrind process to a specific (fixed) CPU using the
+-<code class="computeroutput">taskset</code> command.  This should ensure
+-that the selected CPU does not fall below its maximum frequency
+-setting so long as any thread of the program has work to do.
+-</p>
+-</div>
+-</div>
+-<div class="sect1" title="2.8. Handling of Signals">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.signals"></a>2.8. Handling of Signals</h2></div></div></div>
+-<p>Valgrind has a fairly complete signal implementation.  It should be
+-able to cope with any POSIX-compliant use of signals.</p>
+-<p>If you're using signals in clever ways (for example, catching
+-SIGSEGV, modifying page state and restarting the instruction), you're
+-probably relying on precise exceptions.  In this case, you will need
+-to use <code class="option">--vex-iropt-register-updates=allregs-at-mem-access</code>
+-or <code class="option">--vex-iropt-register-updates=allregs-at-each-insn</code>.
+-</p>
+-<p>If your program dies as a result of a fatal core-dumping signal,
+-Valgrind will generate its own core file
+-(<code class="computeroutput">vgcore.NNNNN</code>) containing your program's
+-state.  You may use this core file for post-mortem debugging with GDB or
+-similar.  (Note: it will not generate a core if your core dump size limit is
+-0.)  At the time of writing the core dumps do not include all the floating
+-point register information.</p>
+-<p>In the unlikely event that Valgrind itself crashes, the operating system
+-will create a core dump in the usual way.</p>
+-</div>
+-<div class="sect1" title="2.9. Building and Installing Valgrind">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.install"></a>2.9. Building and Installing Valgrind</h2></div></div></div>
+-<p>We use the standard Unix
+-<code class="computeroutput">./configure</code>,
+-<code class="computeroutput">make</code>, <code class="computeroutput">make
+-install</code> mechanism.  Once you have completed 
+-<code class="computeroutput">make install</code> you may then want 
+-to run the regression tests
+-with <code class="computeroutput">make regtest</code>.
+-</p>
+-<p>In addition to the usual
+-<code class="option">--prefix=/path/to/install/tree</code>, there are three
+- options which affect how Valgrind is built:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="option">--enable-inner</code></p>
+-<p>This builds Valgrind with some special magic hacks which make
+-     it possible to run it on a standard build of Valgrind (what the
+-     developers call "self-hosting").  Ordinarily you should not use
+-     this option as various kinds of safety checks are disabled.
+-   </p>
+-</li>
+-<li class="listitem">
+-<p><code class="option">--enable-only64bit</code></p>
+-<p><code class="option">--enable-only32bit</code></p>
+-<p>On 64-bit platforms (amd64-linux, ppc64-linux,
+-     amd64-darwin), Valgrind is by default built in such a way that
+-     both 32-bit and 64-bit executables can be run.  Sometimes this
+-     cleverness is a problem for a variety of reasons.  These two
+-     options allow for single-target builds in this situation.  If you
+-     issue both, the configure script will complain.  Note they are
+-     ignored on 32-bit-only platforms (x86-linux, ppc32-linux,
+-     arm-linux, x86-darwin).
+-   </p>
+-</li>
+-</ul></div>
+-<p>
+-</p>
+-<p>The <code class="computeroutput">configure</code> script tests
+-the version of the X server currently indicated by the current
+-<code class="computeroutput">$DISPLAY</code>.  This is a known bug.
+-The intention was to detect the version of the current X
+-client libraries, so that correct suppressions could be selected
+-for them, but instead the test checks the server version.  This
+-is just plain wrong.</p>
+-<p>If you are building a binary package of Valgrind for
+-distribution, please read <code class="literal">README_PACKAGERS</code>
+-<a class="xref" href="dist.readme-packagers.html" title="7. README_PACKAGERS">Readme Packagers</a>.  It contains some
+-important information.</p>
+-<p>Apart from that, there's not much excitement here.  Let us
+-know if you have build problems.</p>
+-</div>
+-<div class="sect1" title="2.10. If You Have Problems">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.problems"></a>2.10. If You Have Problems</h2></div></div></div>
+-<p>Contact us at <a class="ulink" href="http://www.valgrind.org/" target="_top">http://www.valgrind.org/</a>.</p>
+-<p>See <a class="xref" href="manual-core.html#manual-core.limits" title="2.11. Limitations">Limitations</a> for the known
+-limitations of Valgrind, and for a list of programs which are
+-known not to work on it.</p>
+-<p>All parts of the system make heavy use of assertions and 
+-internal self-checks.  They are permanently enabled, and we have no 
+-plans to disable them.  If one of them breaks, please mail us!</p>
+-<p>If you get an assertion failure
+-in <code class="filename">m_mallocfree.c</code>, this may have happened because
+-your program wrote off the end of a heap block, or before its
+-beginning, thus corrupting heap metadata.  Valgrind hopefully will have
+-emitted a message to that effect before dying in this way.</p>
+-<p>Read the <a class="xref" href="FAQ.html" title="Valgrind FAQ">Valgrind FAQ</a> for more advice about common problems, 
+-crashes, etc.</p>
+-</div>
+-<div class="sect1" title="2.11. Limitations">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.limits"></a>2.11. Limitations</h2></div></div></div>
+-<p>The following list of limitations seems long.  However, most
+-programs actually work fine.</p>
+-<p>Valgrind will run programs on the supported platforms
+-subject to the following constraints:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>On x86 and amd64, there is no support for 3DNow!
+-   instructions.  If the translator encounters these, Valgrind will
+-   generate a SIGILL when the instruction is executed.  Apart from
+-   that, on x86 and amd64, essentially all instructions are supported,
+-   up to and including AVX and AES in 64-bit mode and SSSE3 in 32-bit
+-   mode.  32-bit mode does in fact support the bare minimum SSE4
+-   instructions to needed to run programs on MacOSX 10.6 on 32-bit
+-   targets.
+-   </p></li>
+-<li class="listitem"><p>On ppc32 and ppc64, almost all integer, floating point and
+-   Altivec instructions are supported.  Specifically: integer and FP
+-   insns that are mandatory for PowerPC, the "General-purpose
+-   optional" group (fsqrt, fsqrts, stfiwx), the "Graphics optional"
+-   group (fre, fres, frsqrte, frsqrtes), and the Altivec (also known
+-   as VMX) SIMD instruction set, are supported.  Also, instructions
+-   from the Power ISA 2.05 specification, as present in POWER6 CPUs,
+-   are supported.</p></li>
+-<li class="listitem"><p>On ARM, essentially the entire ARMv7-A instruction set
+-    is supported, in both ARM and Thumb mode.  ThumbEE and Jazelle are
+-    not supported.  NEON, VFPv3 and ARMv6 media support is fairly
+-    complete.
+-   </p></li>
+-<li class="listitem"><p>If your program does its own memory management, rather than
+-   using malloc/new/free/delete, it should still work, but Memcheck's
+-   error checking won't be so effective.  If you describe your
+-   program's memory management scheme using "client requests" (see
+-   <a class="xref" href="manual-core-adv.html#manual-core-adv.clientreq" title="3.1. The Client Request mechanism">The Client Request mechanism</a>), Memcheck can do
+-   better.  Nevertheless, using malloc/new and free/delete is still
+-   the best approach.</p></li>
+-<li class="listitem"><p>Valgrind's signal simulation is not as robust as it could be.
+-   Basic POSIX-compliant sigaction and sigprocmask functionality is
+-   supplied, but it's conceivable that things could go badly awry if you
+-   do weird things with signals.  Workaround: don't.  Programs that do
+-   non-POSIX signal tricks are in any case inherently unportable, so
+-   should be avoided if possible.</p></li>
+-<li class="listitem"><p>Machine instructions, and system calls, have been implemented
+-   on demand.  So it's possible, although unlikely, that a program will
+-   fall over with a message to that effect.  If this happens, please
+-   report all the details printed out, so we can try and implement the
+-   missing feature.</p></li>
+-<li class="listitem"><p>Memory consumption of your program is majorly increased
+-   whilst running under Valgrind's Memcheck tool.  This is due to the
+-   large amount of administrative information maintained behind the
+-   scenes.  Another cause is that Valgrind dynamically translates the
+-   original executable.  Translated, instrumented code is 12-18 times
+-   larger than the original so you can easily end up with 150+ MB of
+-   translations when running (eg) a web browser.</p></li>
+-<li class="listitem">
+-<p>Valgrind can handle dynamically-generated code just fine.  If
+-   you regenerate code over the top of old code (ie. at the same
+-   memory addresses), if the code is on the stack Valgrind will
+-   realise the code has changed, and work correctly.  This is
+-   necessary to handle the trampolines GCC uses to implemented nested
+-   functions.  If you regenerate code somewhere other than the stack,
+-   and you are running on an 32- or 64-bit x86 CPU, you will need to
+-   use the <code class="option">--smc-check=all</code> option, and Valgrind will
+-   run more slowly than normal.  Or you can add client requests that
+-   tell Valgrind when your program has overwritten code.
+-   </p>
+-<p> On other platforms (ARM, PowerPC) Valgrind observes and
+-   honours the cache invalidation hints that programs are obliged to
+-   emit to notify new code, and so self-modifying-code support should
+-   work automatically, without the need
+-   for <code class="option">--smc-check=all</code>.</p>
+-</li>
+-<li class="listitem">
+-<p>Valgrind has the following limitations
+-   in its implementation of x86/AMD64 floating point relative to 
+-   IEEE754.</p>
+-<p>Precision: There is no support for 80 bit arithmetic.
+-   Internally, Valgrind represents all such "long double" numbers in 64
+-   bits, and so there may be some differences in results.  Whether or
+-   not this is critical remains to be seen.  Note, the x86/amd64
+-   fldt/fstpt instructions (read/write 80-bit numbers) are correctly
+-   simulated, using conversions to/from 64 bits, so that in-memory
+-   images of 80-bit numbers look correct if anyone wants to see.</p>
+-<p>The impression observed from many FP regression tests is that
+-   the accuracy differences aren't significant.  Generally speaking, if
+-   a program relies on 80-bit precision, there may be difficulties
+-   porting it to non x86/amd64 platforms which only support 64-bit FP
+-   precision.  Even on x86/amd64, the program may get different results
+-   depending on whether it is compiled to use SSE2 instructions (64-bits
+-   only), or x87 instructions (80-bit).  The net effect is to make FP
+-   programs behave as if they had been run on a machine with 64-bit IEEE
+-   floats, for example PowerPC.  On amd64 FP arithmetic is done by
+-   default on SSE2, so amd64 looks more like PowerPC than x86 from an FP
+-   perspective, and there are far fewer noticeable accuracy differences
+-   than with x86.</p>
+-<p>Rounding: Valgrind does observe the 4 IEEE-mandated rounding
+-   modes (to nearest, to +infinity, to -infinity, to zero) for the
+-   following conversions: float to integer, integer to float where
+-   there is a possibility of loss of precision, and float-to-float
+-   rounding.  For all other FP operations, only the IEEE default mode
+-   (round to nearest) is supported.</p>
+-<p>Numeric exceptions in FP code: IEEE754 defines five types of
+-   numeric exception that can happen: invalid operation (sqrt of
+-   negative number, etc), division by zero, overflow, underflow,
+-   inexact (loss of precision).</p>
+-<p>For each exception, two courses of action are defined by IEEE754:
+-   either (1) a user-defined exception handler may be called, or (2) a
+-   default action is defined, which "fixes things up" and allows the
+-   computation to proceed without throwing an exception.</p>
+-<p>Currently Valgrind only supports the default fixup actions.
+-   Again, feedback on the importance of exception support would be
+-   appreciated.</p>
+-<p>When Valgrind detects that the program is trying to exceed any
+-   of these limitations (setting exception handlers, rounding mode, or
+-   precision control), it can print a message giving a traceback of
+-   where this has happened, and continue execution.  This behaviour used
+-   to be the default, but the messages are annoying and so showing them
+-   is now disabled by default.  Use <code class="option">--show-emwarns=yes</code> to see
+-   them.</p>
+-<p>The above limitations define precisely the IEEE754 'default'
+-   behaviour: default fixup on all exceptions, round-to-nearest
+-   operations, and 64-bit precision.</p>
+-</li>
+-<li class="listitem">
+-<p>Valgrind has the following limitations in
+-   its implementation of x86/AMD64 SSE2 FP arithmetic, relative to 
+-   IEEE754.</p>
+-<p>Essentially the same: no exceptions, and limited observance of
+-   rounding mode.  Also, SSE2 has control bits which make it treat
+-   denormalised numbers as zero (DAZ) and a related action, flush
+-   denormals to zero (FTZ).  Both of these cause SSE2 arithmetic to be
+-   less accurate than IEEE requires.  Valgrind detects, ignores, and can
+-   warn about, attempts to enable either mode.</p>
+-</li>
+-<li class="listitem">
+-<p>Valgrind has the following limitations in
+-   its implementation of ARM VFPv3 arithmetic, relative to 
+-   IEEE754.</p>
+-<p>Essentially the same: no exceptions, and limited observance
+-   of rounding mode.  Also, switching the VFP unit into vector mode
+-   will cause Valgrind to abort the program -- it has no way to
+-   emulate vector uses of VFP at a reasonable performance level.  This
+-   is no big deal given that non-scalar uses of VFP instructions are
+-   in any case deprecated.</p>
+-</li>
+-<li class="listitem">
+-<p>Valgrind has the following limitations
+-   in its implementation of PPC32 and PPC64 floating point 
+-   arithmetic, relative to IEEE754.</p>
+-<p>Scalar (non-Altivec): Valgrind provides a bit-exact emulation of
+-   all floating point instructions, except for "fre" and "fres", which are
+-   done more precisely than required by the PowerPC architecture specification.
+-   All floating point operations observe the current rounding mode.
+-   </p>
+-<p>However, fpscr[FPRF] is not set after each operation.  That could
+-   be done but would give measurable performance overheads, and so far
+-   no need for it has been found.</p>
+-<p>As on x86/AMD64, IEEE754 exceptions are not supported: all floating
+-   point exceptions are handled using the default IEEE fixup actions.
+-   Valgrind detects, ignores, and can warn about, attempts to unmask 
+-   the 5 IEEE FP exception kinds by writing to the floating-point status 
+-   and control register (fpscr).
+-   </p>
+-<p>Vector (Altivec, VMX): essentially as with x86/AMD64 SSE/SSE2: 
+-   no exceptions, and limited observance of rounding mode.  
+-   For Altivec, FP arithmetic
+-   is done in IEEE/Java mode, which is more accurate than the Linux default
+-   setting.  "More accurate" means that denormals are handled properly, 
+-   rather than simply being flushed to zero.</p>
+-</li>
+-</ul></div>
+-<p>Programs which are known not to work are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>emacs starts up but immediately concludes it is out of
+-   memory and aborts.  It may be that Memcheck does not provide
+-   a good enough emulation of the 
+-   <code class="computeroutput">mallinfo</code> function.
+-   Emacs works fine if you build it to use
+-   the standard malloc/free routines.</p></li></ul></div>
+-</div>
+-<div class="sect1" title="2.12. An Example Run">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.example"></a>2.12. An Example Run</h2></div></div></div>
+-<p>This is the log for a run of a small program using Memcheck.
+-The program is in fact correct, and the reported error is as the
+-result of a potentially serious code generation bug in GNU g++
+-(snapshot 20010527).</p>
+-<pre class="programlisting">
+-sewardj at phoenix:~/newmat10$ ~/Valgrind-6/valgrind -v ./bogon 
+-==25832== Valgrind 0.10, a memory error detector for x86 RedHat 7.1.
+-==25832== Copyright (C) 2000-2001, and GNU GPL'd, by Julian Seward.
+-==25832== Startup, with flags:
+-==25832== --suppressions=/home/sewardj/Valgrind/redhat71.supp
+-==25832== reading syms from /lib/ld-linux.so.2
+-==25832== reading syms from /lib/libc.so.6
+-==25832== reading syms from /mnt/pima/jrs/Inst/lib/libgcc_s.so.0
+-==25832== reading syms from /lib/libm.so.6
+-==25832== reading syms from /mnt/pima/jrs/Inst/lib/libstdc++.so.3
+-==25832== reading syms from /home/sewardj/Valgrind/valgrind.so
+-==25832== reading syms from /proc/self/exe
+-==25832== 
+-==25832== Invalid read of size 4
+-==25832==    at 0x8048724: BandMatrix::ReSize(int,int,int) (bogon.cpp:45)
+-==25832==    by 0x80487AF: main (bogon.cpp:66)
+-==25832==  Address 0xBFFFF74C is not stack'd, malloc'd or free'd
+-==25832==
+-==25832== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+-==25832== malloc/free: in use at exit: 0 bytes in 0 blocks.
+-==25832== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
+-==25832== For a detailed leak analysis, rerun with: --leak-check=yes
+-</pre>
+-<p>The GCC folks fixed this about a week before GCC 3.0
+-shipped.</p>
+-</div>
+-<div class="sect1" title="2.13. Warning Messages You Might See">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-core.warnings"></a>2.13. Warning Messages You Might See</h2></div></div></div>
+-<p>Some of these only appear if you run in verbose mode
+-(enabled by <code class="option">-v</code>):</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="computeroutput">More than 100 errors detected.  Subsequent
+-    errors will still be recorded, but in less detail than
+-    before.</code></p>
+-<p>After 100 different errors have been shown, Valgrind becomes
+-    more conservative about collecting them.  It then requires only the
+-    program counters in the top two stack frames to match when deciding
+-    whether or not two errors are really the same one.  Prior to this
+-    point, the PCs in the top four frames are required to match.  This
+-    hack has the effect of slowing down the appearance of new errors
+-    after the first 100.  The 100 constant can be changed by recompiling
+-    Valgrind.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">More than 1000 errors detected.  I'm not
+-    reporting any more.  Final error counts may be inaccurate.  Go fix
+-    your program!</code></p>
+-<p>After 1000 different errors have been detected, Valgrind
+-    ignores any more.  It seems unlikely that collecting even more
+-    different ones would be of practical help to anybody, and it avoids
+-    the danger that Valgrind spends more and more of its time comparing
+-    new errors against an ever-growing collection.  As above, the 1000
+-    number is a compile-time constant.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">Warning: client switching stacks?</code></p>
+-<p>Valgrind spotted such a large change in the stack pointer
+-    that it guesses the client is switching to
+-    a different stack.  At this point it makes a kludgey guess where the
+-    base of the new stack is, and sets memory permissions accordingly.
+-    You may get many bogus error messages following this, if Valgrind
+-    guesses wrong.  At the moment "large change" is defined as a change
+-    of more that 2000000 in the value of the
+-    stack pointer register.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">Warning: client attempted to close Valgrind's
+-    logfile fd <number></code></p>
+-<p>Valgrind doesn't allow the client to close the logfile,
+-    because you'd never see any diagnostic information after that point.
+-    If you see this message, you may want to use the
+-    <code class="option">--log-fd=<number></code> option to specify a
+-    different logfile file-descriptor number.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">Warning: noted but unhandled ioctl
+-    <number></code></p>
+-<p>Valgrind observed a call to one of the vast family of
+-    <code class="computeroutput">ioctl</code> system calls, but did not
+-    modify its memory status info (because nobody has yet written a 
+-    suitable wrapper).  The call will still have gone through, but you may get
+-    spurious errors after this as a result of the non-update of the
+-    memory info.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="computeroutput">Warning: set address range perms: large range
+-    <number></code></p>
+-<p>Diagnostic message, mostly for benefit of the Valgrind
+-    developers, to do with memory permissions.</p>
+-</li>
+-</ul></div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="manual-intro.html"><< 1. Introduction</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="manual-core-adv.html">3. Using and understanding the Valgrind core: Advanced Topics >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/manual-intro.html b/docs/html/manual-intro.html
+deleted file mode 100644
+index 3a0884e..0000000
+--- a/docs/html/manual-intro.html
++++ /dev/null
+@@ -1,129 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>1. Introduction</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="manual.html" title="Valgrind User Manual">
+-<link rel="next" href="manual-core.html" title="2. Using and understanding the Valgrind core">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="manual-core.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="1. Introduction">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="manual-intro"></a>1. Introduction</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="manual-intro.html#manual-intro.overview">1.1. An Overview of Valgrind</a></span></dt>
+-<dt><span class="sect1"><a href="manual-intro.html#manual-intro.navigation">1.2. How to navigate this manual</a></span></dt>
+-</dl>
+-</div>
+-<div class="sect1" title="1.1. An Overview of Valgrind">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-intro.overview"></a>1.1. An Overview of Valgrind</h2></div></div></div>
+-<p>Valgrind is an instrumentation framework for building dynamic analysis
+-tools.  It comes with a set of tools each of which performs some kind of
+-debugging, profiling, or similar task that helps you improve your programs.
+-Valgrind's architecture is modular, so new tools can be created easily
+-and without disturbing the existing structure.</p>
+-<p>A number of useful tools are supplied as standard.</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p><span class="command"><strong>Memcheck</strong></span> is a memory error detector.  It helps
+-    you make your programs, particularly those written in C and C++, more
+-    correct.</p></li>
+-<li class="listitem"><p><span class="command"><strong>Cachegrind</strong></span> is a cache and branch-prediction
+-    profiler.  It helps you make your programs run faster.</p></li>
+-<li class="listitem"><p><span class="command"><strong>Callgrind</strong></span> is a call-graph generating cache
+-    profiler.  It has some overlap with Cachegrind, but also gathers some
+-    information that Cachegrind does not.</p></li>
+-<li class="listitem"><p><span class="command"><strong>Helgrind</strong></span> is a thread error detector.
+-    It helps you make your multi-threaded programs more correct.
+-    </p></li>
+-<li class="listitem"><p><span class="command"><strong>DRD</strong></span> is also a thread error detector.  It is
+-    similar to Helgrind but uses different analysis techniques and so may
+-    find different problems.</p></li>
+-<li class="listitem"><p><span class="command"><strong>Massif</strong></span> is a heap profiler.  It helps you
+-    make your programs use less memory.</p></li>
+-<li class="listitem"><p><span class="command"><strong>DHAT</strong></span> is a different kind of heap
+-    profiler.  It helps you understand issues of block lifetimes,
+-    block utilisation, and layout inefficiencies.</p></li>
+-<li class="listitem"><p><span class="command"><strong>SGcheck</strong></span> is an experimental tool that can
+-    detect overruns of stack and global arrays.  Its functionality is
+-    complementary to that of Memcheck: SGcheck finds problems that
+-    Memcheck can't, and vice versa..</p></li>
+-<li class="listitem"><p><span class="command"><strong>BBV</strong></span> is an experimental SimPoint basic block
+-    vector generator.  It is useful to people doing computer architecture
+-    research and development.</p></li>
+-</ol></div>
+-<p>There are also a couple of minor tools that aren't useful to
+-most users:  <span class="command"><strong>Lackey</strong></span> is an example tool that illustrates
+-some instrumentation basics; and <span class="command"><strong>Nulgrind</strong></span> is the minimal
+-Valgrind tool that does no analysis or instrumentation, and is only useful
+-for testing purposes.</p>
+-<p>Valgrind is closely tied to details of the CPU and operating
+-system, and to a lesser extent, the compiler and basic C libraries.
+-Nonetheless, it supports a number of widely-used platforms, listed in full
+-at <a class="ulink" href="http://www.valgrind.org/" target="_top">http://www.valgrind.org/</a>.</p>
+-<p>Valgrind is built via the standard Unix
+-<code class="computeroutput">./configure</code>,
+-<code class="computeroutput">make</code>, <code class="computeroutput">make
+-install</code> process;  full details are given in the
+-README file in the distribution.</p>
+-<p>Valgrind is licensed under the <a class="xref" href="license.gpl.html" title="1. The GNU General Public License"> The GNU General Public License</a>,
+-version 2.  The <code class="computeroutput">valgrind/*.h</code> headers
+-that you may wish to include in your code (eg.
+-<code class="filename">valgrind.h</code>, <code class="filename">memcheck.h</code>,
+-<code class="filename">helgrind.h</code>, etc.) are
+-distributed under a BSD-style license, so you may include them in your
+-code without worrying about license conflicts.  Some of the PThreads
+-test cases, <code class="filename">pth_*.c</code>, are taken from "Pthreads
+-Programming" by Bradford Nichols, Dick Buttlar & Jacqueline Proulx
+-Farrell, ISBN 1-56592-115-1, published by O'Reilly & Associates,
+-Inc.</p>
+-<p>If you contribute code to Valgrind, please ensure your
+-contributions are licensed as "GPLv2, or (at your option) any later
+-version."  This is so as to allow the possibility of easily upgrading
+-the license to GPLv3 in future.  If you want to modify code in the VEX
+-subdirectory, please also see the file VEX/HACKING.README in the
+-distribution.</p>
+-</div>
+-<div class="sect1" title="1.2. How to navigate this manual">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-intro.navigation"></a>1.2. How to navigate this manual</h2></div></div></div>
+-<p>This manual's structure reflects the structure of Valgrind itself.
+-First, we describe the Valgrind core, how to use it, and the options
+-it supports.  Then, each tool has its own chapter in this manual.  You
+-only need to read the documentation for the core and for the tool(s) you
+-actually use, although you may find it helpful to be at least a little
+-bit familiar with what all tools do.  If you're new to all this, you probably
+-want to run the Memcheck tool and you might find the <a class="xref" href="quick-start.html" title="The Valgrind Quick Start Guide">The Valgrind Quick Start Guide</a> useful.</p>
+-<p>Be aware that the core understands some command line options, and
+-the tools have their own options which they know about.  This means
+-there is no central place describing all the options that are
+-accepted -- you have to read the options documentation both for
+-<a class="xref" href="manual-core.html" title="2. Using and understanding the Valgrind core">Valgrind's core</a> and for the tool you want to use.</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="manual.html"><< Valgrind User Manual</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="manual-core.html">2. Using and understanding the Valgrind core >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/manual-writing-tools.html b/docs/html/manual-writing-tools.html
+deleted file mode 100644
+index 58893a1..0000000
+--- a/docs/html/manual-writing-tools.html
++++ /dev/null
+@@ -1,501 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>2. Writing a New Valgrind Tool</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="tech-docs.html" title="Valgrind Technical Documentation">
+-<link rel="prev" href="design-impl.html" title="1. The Design and Implementation of Valgrind">
+-<link rel="next" href="cl-format.html" title="3. Callgrind Format Specification">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="design-impl.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="tech-docs.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Technical Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="cl-format.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="2. Writing a New Valgrind Tool">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="manual-writing-tools"></a>2. Writing a New Valgrind Tool</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.intro">2.1. Introduction</a></span></dt>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.writingatool">2.2. Basics</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.howtoolswork">2.2.1. How tools work</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.gettingcode">2.2.2. Getting the code</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.gettingstarted">2.2.3. Getting started</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.writingcode">2.2.4. Writing the code</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.init">2.2.5. Initialisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.instr">2.2.6. Instrumentation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.fini">2.2.7. Finalisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.otherinfo">2.2.8. Other Important Information</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.advtopics">2.3. Advanced Topics</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.advice">2.3.1. Debugging Tips</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.suppressions">2.3.2. Suppressions</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.docs">2.3.3. Documentation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.regtests">2.3.4. Regression Tests</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.profiling">2.3.5. Profiling</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.mkhackery">2.3.6. Other Makefile Hackery</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.ifacever">2.3.7. The Core/tool Interface</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.finalwords">2.4. Final Words</a></span></dt>
+-</dl>
+-</div>
+-
+-So you want to write a Valgrind tool?  Here are some instructions that may
+-help.
+-
+-<div class="sect1" title="2.1. Introduction">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-writing-tools.intro"></a>2.1. Introduction</h2></div></div></div>
+-<p>The key idea behind Valgrind's architecture is the division
+-between its <span class="emphasis"><em>core</em></span> and <span class="emphasis"><em>tools</em></span>.</p>
+-<p>The core provides the common low-level infrastructure to
+-support program instrumentation, including the JIT
+-compiler, low-level memory manager, signal handling and a
+-thread scheduler.  It also provides certain services that
+-are useful to some but not all tools, such as support for error
+-recording, and support for replacing heap allocation functions such as
+-<code class="function">malloc</code>.</p>
+-<p>But the core leaves certain operations undefined, which
+-must be filled by tools.  Most notably, tools define how program
+-code should be instrumented.  They can also call certain
+-functions to indicate to the core that they would like to use
+-certain services, or be notified when certain interesting events
+-occur.  But the core takes care of all the hard work.</p>
+-</div>
+-<div class="sect1" title="2.2. Basics">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-writing-tools.writingatool"></a>2.2. Basics</h2></div></div></div>
+-<div class="sect2" title="2.2.1. How tools work">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.howtoolswork"></a>2.2.1. How tools work</h3></div></div></div>
+-<p>Tools must define various functions for instrumenting programs
+-that are called by Valgrind's core. They are then linked against
+-Valgrind's core to define a complete Valgrind tool which will be used
+-when the <code class="option">--tool</code> option is used to select it.</p>
+-</div>
+-<div class="sect2" title="2.2.2. Getting the code">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.gettingcode"></a>2.2.2. Getting the code</h3></div></div></div>
+-<p>To write your own tool, you'll need the Valgrind source code.  You'll
+-need a check-out of the Subversion repository for the automake/autoconf
+-build instructions to work.  See the information about how to do check-out
+-from the repository at <a class="ulink" href="http://www.valgrind.org/downloads/repository.html" target="_top">the Valgrind
+-website</a>.</p>
+-</div>
+-<div class="sect2" title="2.2.3. Getting started">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.gettingstarted"></a>2.2.3. Getting started</h3></div></div></div>
+-<p>Valgrind uses GNU <code class="computeroutput">automake</code> and
+-<code class="computeroutput">autoconf</code> for the creation of Makefiles
+-and configuration.  But don't worry, these instructions should be enough
+-to get you started even if you know nothing about those tools.</p>
+-<p>In what follows, all filenames are relative to Valgrind's
+-top-level directory <code class="computeroutput">valgrind/</code>.</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>Choose a name for the tool, and a two-letter abbreviation that can
+-  be used as a short prefix.  We'll use
+-  <code class="computeroutput">foobar</code> and
+-  <code class="computeroutput">fb</code> as an example.</p></li>
+-<li class="listitem"><p>Make three new directories <code class="filename">foobar/</code>,
+-  <code class="filename">foobar/docs/</code> and
+-  <code class="filename">foobar/tests/</code>.
+-  </p></li>
+-<li class="listitem"><p>Create an empty file <code class="filename">foobar/tests/Makefile.am</code>.
+-  </p></li>
+-<li class="listitem"><p>Copy <code class="filename">none/Makefile.am</code> into
+-  <code class="filename">foobar/</code>.  Edit it by replacing all
+-  occurrences of the strings
+-  <code class="computeroutput">"none"</code>,
+-  <code class="computeroutput">"nl_"</code> and
+-  <code class="computeroutput">"nl-"</code> with
+-  <code class="computeroutput">"foobar"</code>,
+-  <code class="computeroutput">"fb_"</code> and
+-  <code class="computeroutput">"fb-"</code> respectively.</p></li>
+-<li class="listitem"><p>Copy <code class="filename">none/nl_main.c</code> into
+-  <code class="computeroutput">foobar/</code>, renaming it as
+-  <code class="filename">fb_main.c</code>.  Edit it by changing the
+-  <code class="computeroutput">details</code> lines in
+-  <code class="function">nl_pre_clo_init</code> to something appropriate for the
+-  tool.  These fields are used in the startup message, except for
+-  <code class="computeroutput">bug_reports_to</code> which is used if a
+-  tool assertion fails.  Also, replace the string
+-  <code class="computeroutput">"nl_"</code> throughout with  
+-  <code class="computeroutput">"fb_"</code> again.</p></li>
+-<li class="listitem"><p>Edit <code class="filename">Makefile.am</code>, adding the new directory
+-   <code class="filename">foobar</code> to the
+-   <code class="computeroutput">TOOLS</code> or
+-   <code class="computeroutput">EXP_TOOLS</code> variables.</p></li>
+-<li class="listitem"><p>Edit <code class="filename">configure.in</code>, adding
+-   <code class="filename">foobar/Makefile</code> and
+-   <code class="filename">foobar/tests/Makefile</code> to the
+-   <code class="computeroutput">AC_OUTPUT</code> list.</p></li>
+-<li class="listitem">
+-<p>Run:</p>
+-<pre class="programlisting">
+-  autogen.sh
+-  ./configure --prefix=`pwd`/inst
+-  make
+-  make install</pre>
+-<p>It should automake, configure and compile without errors,
+-   putting copies of the tool in
+-   <code class="filename">foobar/</code> and
+-   <code class="filename">inst/lib/valgrind/</code>.</p>
+-</li>
+-<li class="listitem">
+-<p>You can test it with a command like:</p>
+-<pre class="programlisting">
+-  inst/bin/valgrind --tool=foobar date</pre>
+-<p>(almost any program should work;
+-   <code class="computeroutput">date</code> is just an example).
+-   The output should be something like this:</p>
+-<pre class="programlisting">
+-  ==738== foobar-0.0.1, a foobarring tool.
+-  ==738== Copyright (C) 2002-2009, and GNU GPL'd, by J. Programmer.
+-  ==738== Using Valgrind-3.5.0.SVN and LibVEX; rerun with -h for copyright info
+-  ==738== Command: date
+-  ==738==
+-  Tue Nov 27 12:40:49 EST 2007
+-  ==738==</pre>
+-<p>The tool does nothing except run the program uninstrumented.</p>
+-</li>
+-</ol></div>
+-<p>These steps don't have to be followed exactly -- you can choose
+-different names for your source files, and use a different
+-<code class="option">--prefix</code> for
+-<code class="computeroutput">./configure</code>.</p>
+-<p>Now that we've setup, built and tested the simplest possible tool,
+-onto the interesting stuff...</p>
+-</div>
+-<div class="sect2" title="2.2.4. Writing the code">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.writingcode"></a>2.2.4. Writing the code</h3></div></div></div>
+-<p>A tool must define at least these four functions:</p>
+-<pre class="programlisting">
+-  pre_clo_init()
+-  post_clo_init()
+-  instrument()
+-  fini()</pre>
+-<p>The names can be different to the above, but these are the usual
+-names.  The first one is registered using the macro
+-<code class="computeroutput">VG_DETERMINE_INTERFACE_VERSION</code>.
+-The last three are registered using the
+-<code class="computeroutput">VG_(basic_tool_funcs)</code> function.</p>
+-<p>In addition, if a tool wants to use some of the optional services
+-provided by the core, it may have to define other functions and tell the
+-core about them.</p>
+-</div>
+-<div class="sect2" title="2.2.5. Initialisation">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.init"></a>2.2.5. Initialisation</h3></div></div></div>
+-<p>Most of the initialisation should be done in
+-<code class="function">pre_clo_init</code>.  Only use
+-<code class="function">post_clo_init</code> if a tool provides command line
+-options and must do some initialisation after option processing takes
+-place (<code class="computeroutput">"clo"</code> stands for "command line
+-options").</p>
+-<p>First of all, various "details" need to be set for a tool, using
+-the functions <code class="function">VG_(details_*)</code>.  Some are all
+-compulsory, some aren't.  Some are used when constructing the startup
+-message, <code class="computeroutput">detail_bug_reports_to</code> is used
+-if <code class="computeroutput">VG_(tool_panic)</code> is ever called, or
+-a tool assertion fails.  Others have other uses.</p>
+-<p>Second, various "needs" can be set for a tool, using the functions
+-<code class="function">VG_(needs_*)</code>.  They are mostly booleans, and can
+-be left untouched (they default to <code class="varname">False</code>).  They
+-determine whether a tool can do various things such as: record, report
+-and suppress errors; process command line options; wrap system calls;
+-record extra information about heap blocks; etc.</p>
+-<p>For example, if a tool wants the core's help in recording and
+-reporting errors, it must call
+-<code class="function">VG_(needs_tool_errors)</code> and provide definitions of
+-eight functions for comparing errors, printing out errors, reading
+-suppressions from a suppressions file, etc.  While writing these
+-functions requires some work, it's much less than doing error handling
+-from scratch because the core is doing most of the work.
+-</p>
+-<p>Third, the tool can indicate which events in core it wants to be
+-notified about, using the functions <code class="function">VG_(track_*)</code>.
+-These include things such as heap blocks being allocated, the stack
+-pointer changing, a mutex being locked, etc.  If a tool wants to know
+-about this, it should provide a pointer to a function, which will be
+-called when that event happens.</p>
+-<p>For example, if the tool want to be notified when a new heap block
+-is allocated, it should call
+-<code class="function">VG_(track_new_mem_heap)</code> with an appropriate
+-function pointer, and the assigned function will be called each time
+-this happens.</p>
+-<p>More information about "details", "needs" and "trackable events"
+-can be found in
+-<code class="filename">include/pub_tool_tooliface.h</code>.</p>
+-</div>
+-<div class="sect2" title="2.2.6. Instrumentation">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.instr"></a>2.2.6. Instrumentation</h3></div></div></div>
+-<p><code class="function">instrument</code> is the interesting one.  It
+-allows you to instrument <span class="emphasis"><em>VEX IR</em></span>, which is
+-Valgrind's RISC-like intermediate language.  VEX IR is described
+-in the comments of the header file
+-<code class="filename">VEX/pub/libvex_ir.h</code>.</p>
+-<p>The easiest way to instrument VEX IR is to insert calls to C
+-functions when interesting things happen.  See the tool "Lackey"
+-(<code class="filename">lackey/lk_main.c</code>) for a simple example of this, or
+-Cachegrind (<code class="filename">cachegrind/cg_main.c</code>) for a more
+-complex example.</p>
+-</div>
+-<div class="sect2" title="2.2.7. Finalisation">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.fini"></a>2.2.7. Finalisation</h3></div></div></div>
+-<p>This is where you can present the final results, such as a summary
+-of the information collected.  Any log files should be written out at
+-this point.</p>
+-</div>
+-<div class="sect2" title="2.2.8. Other Important Information">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.otherinfo"></a>2.2.8. Other Important Information</h3></div></div></div>
+-<p>Please note that the core/tool split infrastructure is quite
+-complex and not brilliantly documented.  Here are some important points,
+-but there are undoubtedly many others that I should note but haven't
+-thought of.</p>
+-<p>The files <code class="filename">include/pub_tool_*.h</code> contain all the
+-types, macros, functions, etc. that a tool should (hopefully) need, and are
+-the only <code class="filename">.h</code> files a tool should need to
+-<code class="computeroutput">#include</code>.  They have a reasonable amount of
+-documentation in it that should hopefully be enough to get you going.</p>
+-<p>Note that you can't use anything from the C library (there
+-are deep reasons for this, trust us).  Valgrind provides an
+-implementation of a reasonable subset of the C library, details of which
+-are in <code class="filename">pub_tool_libc*.h</code>.</p>
+-<p>When writing a tool, in theory you shouldn't need to look at any of
+-the code in Valgrind's core, but in practice it might be useful sometimes to
+-help understand something.</p>
+-<p>The <code class="filename">include/pub_tool_basics.h</code> and
+-<code class="filename">VEX/pub/libvex_basictypes.h</code> files have some basic
+-types that are widely used.</p>
+-<p>Ultimately, the tools distributed (Memcheck, Cachegrind, Lackey, etc.)
+-are probably the best documentation of all, for the moment.</p>
+-<p>The <code class="computeroutput">VG_</code> macro is used
+-heavily.  This just prepends a longer string in front of names to avoid
+-potential namespace clashes.  It is defined in
+-<code class="filename">include/pub_tool_basics.h</code>.</p>
+-<p>There are some assorted notes about various aspects of the
+-implementation in <code class="filename">docs/internals/</code>.  Much of it
+-isn't that relevant to tool-writers, however.</p>
+-</div>
+-</div>
+-<div class="sect1" title="2.3. Advanced Topics">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-writing-tools.advtopics"></a>2.3. Advanced Topics</h2></div></div></div>
+-<p>Once a tool becomes more complicated, there are some extra
+-things you may want/need to do.</p>
+-<div class="sect2" title="2.3.1. Debugging Tips">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.advice"></a>2.3.1. Debugging Tips</h3></div></div></div>
+-<p>Writing and debugging tools is not trivial.  Here are some
+-suggestions for solving common problems.</p>
+-<p>If you are getting segmentation faults in C functions used by your
+-tool, the usual GDB command:</p>
+-<pre class="screen">
+-  gdb <prog> core</pre>
+-<p>usually gives the location of the segmentation fault.</p>
+-<p>If you want to debug C functions used by your tool, there are
+-instructions on how to do so in the file
+-<code class="filename">README_DEVELOPERS</code>.</p>
+-<p>If you are having problems with your VEX IR instrumentation, it's
+-likely that GDB won't be able to help at all.  In this case, Valgrind's
+-<code class="option">--trace-flags</code> option is invaluable for observing the
+-results of instrumentation.</p>
+-<p>If you just want to know whether a program point has been reached,
+-using the <code class="computeroutput">OINK</code> macro (in
+-<code class="filename">include/pub_tool_libcprint.h</code>) can be easier than
+-using GDB.</p>
+-<p>The other debugging command line options can be useful too (run
+-<code class="computeroutput">valgrind --help-debug</code> for the
+-list).</p>
+-</div>
+-<div class="sect2" title="2.3.2. Suppressions">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.suppressions"></a>2.3.2. Suppressions</h3></div></div></div>
+-<p>If your tool reports errors and you want to suppress some common
+-ones, you can add suppressions to the suppression files.  The relevant
+-files are <code class="filename">*.supp</code>; the final suppression
+-file is aggregated from these files by combining the relevant
+-<code class="filename">.supp</code> files depending on the versions of linux, X
+-and glibc on a system.</p>
+-<p>Suppression types have the form
+-<code class="computeroutput">tool_name:suppression_name</code>.  The
+-<code class="computeroutput">tool_name</code> here is the name you specify
+-for the tool during initialisation with
+-<code class="function">VG_(details_name)</code>.</p>
+-</div>
+-<div class="sect2" title="2.3.3. Documentation">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.docs"></a>2.3.3. Documentation</h3></div></div></div>
+-<p>If you are feeling conscientious and want to write some
+-documentation for your tool, please use XML as the rest of Valgrind does.
+-The file <code class="filename">docs/README</code> has more details on getting
+-the XML toolchain to work;  this can be difficult, unfortunately.</p>
+-<p>To write the documentation, follow these steps (using
+-<code class="computeroutput">foobar</code> as the example tool name
+-again):</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>The docs go in
+-   <code class="computeroutput">foobar/docs/</code>, which you will
+-   have created when you started writing the tool.</p></li>
+-<li class="listitem">
+-<p>Copy the XML documentation file for the tool Nulgrind from
+-    <code class="filename">none/docs/nl-manual.xml</code> to
+-    <code class="computeroutput">foobar/docs/</code>, and rename it to
+-    <code class="filename">foobar/docs/fb-manual.xml</code>.</p>
+-<p><span class="command"><strong>Note</strong></span>: there is a tetex bug
+-    involving underscores in filenames, so don't use '_'.</p>
+-</li>
+-<li class="listitem"><p>Write the documentation. There are some helpful bits and
+-    pieces on using XML markup in
+-    <code class="filename">docs/xml/xml_help.txt</code>.</p></li>
+-<li class="listitem"><p>Include it in the User Manual by adding the relevant entry to
+-    <code class="filename">docs/xml/manual.xml</code>.  Copy and edit an
+-    existing entry.</p></li>
+-<li class="listitem"><p>Include it in the man page by adding the relevant entry to
+-    <code class="filename">docs/xml/valgrind-manpage.xml</code>.  Copy and
+-    edit an existing entry.</p></li>
+-<li class="listitem">
+-<p>Validate <code class="filename">foobar/docs/fb-manual.xml</code> using
+-    the following command from within <code class="filename">docs/</code>:
+-  </p>
+-<pre class="screen">
+-make valid
+-</pre>
+-<p>You may get errors that look like this:</p>
+-<pre class="screen">
+-./xml/index.xml:5: element chapter: validity error : No declaration for
+-attribute base of element chapter
+-</pre>
+-<p>Ignore (only) these -- they're not important.</p>
+-<p>Because the XML toolchain is fragile, it is important to ensure
+-   that <code class="filename">fb-manual.xml</code> won't break the documentation
+-   set build.  Note that just because an XML file happily transforms to
+-   html does not necessarily mean the same holds true for pdf/ps.</p>
+-</li>
+-<li class="listitem">
+-<p>You can (re-)generate the HTML docs while you are writing
+-    <code class="filename">fb-manual.xml</code> to help you see how it's looking.
+-    The generated files end up in
+-    <code class="filename">docs/html/</code>.  Use the following
+-    command, within <code class="filename">docs/</code>:</p>
+-<pre class="screen">
+-make html-docs
+-</pre>
+-</li>
+-<li class="listitem">
+-<p>When you have finished, try to generate PDF and PostScript output to
+-    check all is well, from within <code class="filename">docs/</code>:
+-  </p>
+-<pre class="screen">
+-make print-docs
+-</pre>
+-<p>Check the output <code class="filename">.pdf</code> and
+-    <code class="filename">.ps</code> files in
+-    <code class="computeroutput">docs/print/</code>.</p>
+-<p>Note that the toolchain is even more fragile for the print docs,
+-    so don't feel too bad if you can't get it working.</p>
+-</li>
+-</ol></div>
+-</div>
+-<div class="sect2" title="2.3.4. Regression Tests">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.regtests"></a>2.3.4. Regression Tests</h3></div></div></div>
+-<p>Valgrind has some support for regression tests.  If you want to
+-write regression tests for your tool:</p>
+-<div class="orderedlist"><ol class="orderedlist" type="1">
+-<li class="listitem"><p>The tests go in <code class="computeroutput">foobar/tests/</code>,
+-    which you will have created when you started writing the tool.</p></li>
+-<li class="listitem"><p>Write <code class="filename">foobar/tests/Makefile.am</code>.  Use
+-    <code class="filename">memcheck/tests/Makefile.am</code> as an
+-    example.</p></li>
+-<li class="listitem"><p>Write the tests, <code class="computeroutput">.vgtest</code> test
+-    description files, <code class="computeroutput">.stdout.exp</code> and
+-    <code class="computeroutput">.stderr.exp</code> expected output files.
+-    (Note that Valgrind's output goes to stderr.)  Some details on
+-    writing and running tests are given in the comments at the top of
+-    the testing script
+-    <code class="computeroutput">tests/vg_regtest</code>.</p></li>
+-<li class="listitem"><p>Write a filter for stderr results
+-    <code class="computeroutput">foobar/tests/filter_stderr</code>.  It can
+-    call the existing filters in
+-    <code class="computeroutput">tests/</code>.  See
+-    <code class="computeroutput">memcheck/tests/filter_stderr</code> for an
+-    example; in particular note the
+-    <code class="computeroutput">$dir</code> trick that ensures the filter
+-    works correctly from any directory.</p></li>
+-</ol></div>
+-</div>
+-<div class="sect2" title="2.3.5. Profiling">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.profiling"></a>2.3.5. Profiling</h3></div></div></div>
+-<p>Lots of profiling tools have trouble running Valgrind.  For example,
+-trying to use gprof is hopeless.</p>
+-<p>Probably the best way to profile a tool is with OProfile on Linux.</p>
+-<p>You can also use Cachegrind on it.  Read
+-<code class="filename">README_DEVELOPERS</code> for details on running Valgrind under
+-Valgrind;  it's a bit fragile but can usually be made to work.</p>
+-</div>
+-<div class="sect2" title="2.3.6. Other Makefile Hackery">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.mkhackery"></a>2.3.6. Other Makefile Hackery</h3></div></div></div>
+-<p>If you add any directories under
+-<code class="computeroutput">foobar/</code>, you will need to add
+-an appropriate <code class="filename">Makefile.am</code> to it, and add a
+-corresponding entry to the <code class="computeroutput">AC_OUTPUT</code>
+-list in <code class="filename">configure.in</code>.</p>
+-<p>If you add any scripts to your tool (see Cachegrind for an
+-example) you need to add them to the
+-<code class="computeroutput">bin_SCRIPTS</code> variable in
+-<code class="filename">foobar/Makefile.am</code> and possible also to the
+-<code class="computeroutput">AC_OUTPUT</code> list in
+-<code class="filename">configure.in</code>.</p>
+-</div>
+-<div class="sect2" title="2.3.7. The Core/tool Interface">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="manual-writing-tools.ifacever"></a>2.3.7. The Core/tool Interface</h3></div></div></div>
+-<p>The core/tool interface evolves over time, but it's pretty stable.
+-We deliberately do not provide backward compatibility with old interfaces,
+-because it is too difficult and too restrictive.  We view this as a good
+-thing -- if we had to be backward compatible with earlier versions, many
+-improvements now in the system could not have been added.</p>
+-<p>Because tools are statically linked with the core, if a tool compiles
+-successfully then it should be compatible with the core.  We would not
+-deliberately violate this property by, for example, changing the behaviour
+-of a core function without changing its prototype.</p>
+-</div>
+-</div>
+-<div class="sect1" title="2.4. Final Words">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="manual-writing-tools.finalwords"></a>2.4. Final Words</h2></div></div></div>
+-<p>Writing a new Valgrind tool is not easy, but the tools you can write
+-with Valgrind are among the most powerful programming tools there are.
+-Happy programming!</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="design-impl.html"><< 1. The Design and Implementation of Valgrind</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="tech-docs.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="cl-format.html">3. Callgrind Format Specification >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/manual.html b/docs/html/manual.html
+deleted file mode 100644
+index ee505f3..0000000
+--- a/docs/html/manual.html
++++ /dev/null
+@@ -1,319 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind User Manual</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="quick-start.html" title="The Valgrind Quick Start Guide">
+-<link rel="next" href="manual-intro.html" title="1. Introduction">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="quick-start.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="manual-intro.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="Valgrind User Manual">
+-<div class="titlepage">
+-<div>
+-<div><h1 class="title">
+-<a name="manual"></a>Valgrind User Manual</h1></div>
+-<div><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div><p class="copyright">Copyright © 2000-2012 <a class="ulink" href="http://www.valgrind.org/info/developers.html" target="_top">Valgrind Developers</a></p></div>
+-<div><div class="legalnotice" title="Legal Notice">
+-<a name="id560383"></a><p>Email: <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a></p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="chapter"><a href="manual-intro.html">1. Introduction</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="manual-intro.html#manual-intro.overview">1.1. An Overview of Valgrind</a></span></dt>
+-<dt><span class="sect1"><a href="manual-intro.html#manual-intro.navigation">1.2. How to navigate this manual</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="manual-core.html">2. Using and understanding the Valgrind core</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.whatdoes">2.1. What Valgrind does with your program</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.started">2.2. Getting started</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.comment">2.3. The Commentary</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.report">2.4. Reporting of errors</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.suppress">2.5. Suppressing errors</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.options">2.6. Core Command-line Options</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.toolopts">2.6.1. Tool-selection Option</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.basicopts">2.6.2. Basic Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.erropts">2.6.3. Error-related Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.mallocopts">2.6.4. malloc-related Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.rareopts">2.6.5. Uncommon Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.debugopts">2.6.6. Debugging Options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core.html#manual-core.defopts">2.6.7. Setting Default Options</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.pthreads">2.7. Support for Threads</a></span></dt>
+-<dd><dl><dt><span class="sect2"><a href="manual-core.html#manual-core.pthreads_perf_sched">2.7.1. Scheduling and Multi-Thread Performance</a></span></dt></dl></dd>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.signals">2.8. Handling of Signals</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.install">2.9. Building and Installing Valgrind</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.problems">2.10. If You Have Problems</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.limits">2.11. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.example">2.12. An Example Run</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core.html#manual-core.warnings">2.13. Warning Messages You Might See</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="manual-core-adv.html">3. Using and understanding the Valgrind core: Advanced Topics</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.clientreq">3.1. The Client Request mechanism</a></span></dt>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.gdbserver">3.2. Debugging your program using Valgrind gdbserver and GDB</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-simple">3.2.1. Quick Start: debugging in 3 steps</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-concept">3.2.2. Valgrind gdbserver overall organisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-gdb">3.2.3. Connecting GDB to a Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-gdb-android">3.2.4. Connecting to an Android gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling">3.2.5. Monitor command handling by the Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-threads">3.2.6. Valgrind gdbserver thread information</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-shadowregisters">3.2.7. Examining and modifying Valgrind shadow registers</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.gdbserver-limitations">3.2.8. Limitations of the Valgrind gdbserver</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.vgdb">3.2.9. vgdb command line options</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.valgrind-monitor-commands">3.2.10. Valgrind monitor commands</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-core-adv.html#manual-core-adv.wrapping">3.3. Function wrapping</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.example">3.3.1. A Simple Example</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.specs">3.3.2. Wrapping Specifications</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.semantics">3.3.3. Wrapping Semantics</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.debugging">3.3.4. Debugging</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.limitations-cf">3.3.5. Limitations - control flow</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.limitations-sigs">3.3.6. Limitations - original function signatures</a></span></dt>
+-<dt><span class="sect2"><a href="manual-core-adv.html#manual-core-adv.wrapping.examples">3.3.7. Examples</a></span></dt>
+-</dl></dd>
+-</dl></dd>
+-<dt><span class="chapter"><a href="mc-manual.html">4. Memcheck: a memory error detector</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.overview">4.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.errormsgs">4.2. Explanation of error messages from Memcheck</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.badrw">4.2.1. Illegal read / Illegal write errors</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.uninitvals">4.2.2. Use of uninitialised values</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.bad-syscall-args">4.2.3. Use of uninitialised or unaddressable values in system
+-       calls</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.badfrees">4.2.4. Illegal frees</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.rudefn">4.2.5. When a heap block is freed with an inappropriate deallocation
+-function</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.overlap">4.2.6. Overlapping source and destination blocks</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.leaks">4.2.7. Memory leak detection</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.options">4.3. Memcheck Command-Line Options</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.suppfiles">4.4. Writing suppression files</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.machine">4.5. Details of Memcheck's checking machinery</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.value">4.5.1. Valid-value (V) bits</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.vaddress">4.5.2. Valid-address (A) bits</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.together">4.5.3. Putting it all together</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.monitor-commands">4.6. Memcheck Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.clientreqs">4.7. Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.mempools">4.8. Memory Pools: describing and working with custom allocators</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.mpiwrap">4.9. Debugging MPI Parallel Programs with Valgrind</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.build">4.9.1. Building and installing the wrappers</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.gettingstarted">4.9.2. Getting started</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.controlling">4.9.3. Controlling the wrapper library</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.limitations.functions">4.9.4. Functions</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.limitations.types">4.9.5. Types</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.writingwrappers">4.9.6. Writing new wrappers</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.whattoexpect">4.9.7. What to expect when using the wrappers</a></span></dt>
+-</dl></dd>
+-</dl></dd>
+-<dt><span class="chapter"><a href="cg-manual.html">5. Cachegrind: a cache and branch-prediction profiler</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.overview">5.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.profile">5.2. Using Cachegrind, cg_annotate and cg_merge</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.running-cachegrind">5.2.1. Running Cachegrind</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.outputfile">5.2.2. Output File</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.running-cg_annotate">5.2.3. Running cg_annotate</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.the-output-preamble">5.2.4. The Output Preamble</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.the-global">5.2.5. The Global and Function-level Counts</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.line-by-line">5.2.6. Line-by-line Counts</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.assembler">5.2.7. Annotating Assembly Code Programs</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#ms-manual.forkingprograms">5.2.8. Forking Programs</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.warnings">5.2.9. cg_annotate Warnings</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.things-to-watch-out-for">5.2.10. Unusual Annotation Cases</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.cg_merge">5.2.11. Merging Profiles with cg_merge</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.cg_diff">5.2.12. Differencing Profiles with cg_diff</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.cgopts">5.3. Cachegrind Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.annopts">5.4. cg_annotate Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.diffopts">5.5. cg_diff Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.acting-on">5.6. Acting on Cachegrind's Information</a></span></dt>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.sim-details">5.7. Simulation Details</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cache-sim">5.7.1. Cache Simulation Specifics</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#branch-sim">5.7.2. Branch Simulation Specifics</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.annopts.accuracy">5.7.3. Accuracy</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cg-manual.html#cg-manual.impl-details">5.8. Implementation Details</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.impl-details.how-cg-works">5.8.1. How Cachegrind Works</a></span></dt>
+-<dt><span class="sect2"><a href="cg-manual.html#cg-manual.impl-details.file-format">5.8.2. Cachegrind Output File Format</a></span></dt>
+-</dl></dd>
+-</dl></dd>
+-<dt><span class="chapter"><a href="cl-manual.html">6. Callgrind: a call-graph generating cache and branch prediction profiler</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.use">6.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.functionality">6.1.1. Functionality</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.basics">6.1.2. Basic Usage</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.usage">6.2. Advanced Usage</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.dumps">6.2.1. Multiple profiling dumps from one program run</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.limits">6.2.2. Limiting the range of collected events</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.busevents">6.2.3. Counting global bus events</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.cycles">6.2.4. Avoiding cycles</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.forkingprograms">6.2.5. Forking Programs</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.options">6.3. Callgrind Command-line Options</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.creation">6.3.1. Dump creation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.activity">6.3.2. Activity options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.collection">6.3.3. Data collection options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.separation">6.3.4. Cost entity separation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.simulation">6.3.5. Simulation options</a></span></dt>
+-<dt><span class="sect2"><a href="cl-manual.html#cl-manual.options.cachesimulation">6.3.6. Cache simulation options</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.monitor-commands">6.4. Callgrind Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.clientrequests">6.5. Callgrind specific client requests</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.callgrind_annotate-options">6.6. callgrind_annotate Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="cl-manual.html#cl-manual.callgrind_control-options">6.7. callgrind_control Command-line Options</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="hg-manual.html">7. Helgrind: a thread error detector</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.overview">7.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.api-checks">7.2. Detected errors: Misuses of the POSIX pthreads API</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.lock-orders">7.3. Detected errors: Inconsistent Lock Orderings</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.data-races">7.4. Detected errors: Data Races</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.example">7.4.1. A Simple Data Race</a></span></dt>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.algorithm">7.4.2. Helgrind's Race Detection Algorithm</a></span></dt>
+-<dt><span class="sect2"><a href="hg-manual.html#hg-manual.data-races.errmsgs">7.4.3. Interpreting Race Error Messages</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.effective-use">7.5. Hints and Tips for Effective Use of Helgrind</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.options">7.6. Helgrind Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.client-requests">7.7. Helgrind Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="hg-manual.html#hg-manual.todolist">7.8. A To-Do List for Helgrind</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="drd-manual.html">8. DRD: a thread error detector</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.overview">8.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mt-progr-models">8.1.1. Multithreaded Programming Paradigms</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.pthreads-model">8.1.2. POSIX Threads Programming Model</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mt-problems">8.1.3. Multithreaded Programming Problems</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.data-race-detection">8.1.4. Data Race Detection</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.using-drd">8.2. Using DRD</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.options">8.2.1. DRD Command-line Options</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.data-races">8.2.2. Detected Errors: Data Races</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.lock-contention">8.2.3. Detected Errors: Lock Contention</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.api-checks">8.2.4. Detected Errors: Misuse of the POSIX threads API</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.clientreqs">8.2.5. Client Requests</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.gnome">8.2.6. Debugging GNOME Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.boost.thread">8.2.7. Debugging Boost.Thread Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.openmp">8.2.8. Debugging OpenMP Programs</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.cust-mem-alloc">8.2.9. DRD and Custom Memory Allocators</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.drd-versus-memcheck">8.2.10. DRD Versus Memcheck</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.resource-requirements">8.2.11. Resource Requirements</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.effective-use">8.2.12. Hints and Tips for Effective Use of DRD</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.Pthreads">8.3. Using the POSIX Threads API Effectively</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.mutex-types">8.3.1. Mutex types</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.condvar">8.3.2. Condition variables</a></span></dt>
+-<dt><span class="sect2"><a href="drd-manual.html#drd-manual.pctw">8.3.3. pthread_cond_timedwait and timeouts</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.limitations">8.4. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="drd-manual.html#drd-manual.feedback">8.5. Feedback</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="ms-manual.html">9. Massif: a heap profiler</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.overview">9.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.using">9.2. Using Massif and ms_print</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.anexample">9.2.1. An Example Program</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.running-massif">9.2.2. Running Massif</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.running-ms_print">9.2.3. Running ms_print</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.theoutputpreamble">9.2.4. The Output Preamble</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.theoutputgraph">9.2.5. The Output Graph</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.thesnapshotdetails">9.2.6. The Snapshot Details</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.forkingprograms">9.2.7. Forking Programs</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.not-measured">9.2.8. Measuring All Memory in a Process</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.acting">9.2.9. Acting on Massif's Information</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.options">9.3. Massif Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.monitor-commands">9.4. Massif Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.clientreqs">9.5. Massif Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.ms_print-options">9.6. ms_print Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.fileformat">9.7. Massif's Output File Format</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="dh-manual.html">10. DHAT: a dynamic heap analysis tool</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.overview">10.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.understanding">10.2. Understanding DHAT's output</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="dh-manual.html#id625080">10.2.1. Interpreting the max-live, tot-alloc and deaths fields</a></span></dt>
+-<dt><span class="sect2"><a href="dh-manual.html#id629340">10.2.2. Interpreting the acc-ratios fields</a></span></dt>
+-<dt><span class="sect2"><a href="dh-manual.html#id598919">10.2.3. Interpreting "Aggregated access counts by offset" data</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="dh-manual.html#dh-manual.options">10.3. DHAT Command-line Options</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="sg-manual.html">11. SGCheck: an experimental stack and global array overrun detector</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.overview">11.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.options">11.2. SGCheck Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.how-works.sg-checks">11.3. How SGCheck Works</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.cmp-w-memcheck">11.4. Comparison with Memcheck</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.limitations">11.5. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.todo-user-visible">11.6. Still To Do: User-visible Functionality</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.todo-implementation">11.7. Still To Do: Implementation Tidying</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="bbv-manual.html">12. BBV: an experimental basic block vector generation tool</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.overview">12.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.quickstart">12.2. Using Basic Block Vectors to create SimPoints</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.usage">12.3. BBV Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.fileformat">12.4. Basic Block Vector File Format</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.implementation">12.5. Implementation</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.threadsupport">12.6. Threaded Executable Support</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.validation">12.7. Validation</a></span></dt>
+-<dt><span class="sect1"><a href="bbv-manual.html#bbv-manual.performance">12.8. Performance</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="lk-manual.html">13. Lackey: an example tool</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="lk-manual.html#lk-manual.overview">13.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="lk-manual.html#lk-manual.options">13.2. Lackey Command-line Options</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="nl-manual.html">14. Nulgrind: the minimal Valgrind tool</a></span></dt>
+-<dd><dl><dt><span class="sect1"><a href="nl-manual.html#ms-manual.overview">14.1. Overview</a></span></dt></dl></dd>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="quick-start.html"><< The Valgrind Quick Start Guide</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="manual-intro.html">1. Introduction >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/mc-manual.html b/docs/html/mc-manual.html
+deleted file mode 100644
+index e349b80..0000000
+--- a/docs/html/mc-manual.html
++++ /dev/null
+@@ -1,1934 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>4. Memcheck: a memory error detector</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="manual-core-adv.html" title="3. Using and understanding the Valgrind core: Advanced Topics">
+-<link rel="next" href="cg-manual.html" title="5. Cachegrind: a cache and branch-prediction profiler">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="manual-core-adv.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="cg-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="4. Memcheck: a memory error detector">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="mc-manual"></a>4. Memcheck: a memory error detector</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.overview">4.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.errormsgs">4.2. Explanation of error messages from Memcheck</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.badrw">4.2.1. Illegal read / Illegal write errors</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.uninitvals">4.2.2. Use of uninitialised values</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.bad-syscall-args">4.2.3. Use of uninitialised or unaddressable values in system
+-       calls</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.badfrees">4.2.4. Illegal frees</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.rudefn">4.2.5. When a heap block is freed with an inappropriate deallocation
+-function</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.overlap">4.2.6. Overlapping source and destination blocks</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.leaks">4.2.7. Memory leak detection</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.options">4.3. Memcheck Command-Line Options</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.suppfiles">4.4. Writing suppression files</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.machine">4.5. Details of Memcheck's checking machinery</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.value">4.5.1. Valid-value (V) bits</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.vaddress">4.5.2. Valid-address (A) bits</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.together">4.5.3. Putting it all together</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.monitor-commands">4.6. Memcheck Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.clientreqs">4.7. Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.mempools">4.8. Memory Pools: describing and working with custom allocators</a></span></dt>
+-<dt><span class="sect1"><a href="mc-manual.html#mc-manual.mpiwrap">4.9. Debugging MPI Parallel Programs with Valgrind</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.build">4.9.1. Building and installing the wrappers</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.gettingstarted">4.9.2. Getting started</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.controlling">4.9.3. Controlling the wrapper library</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.limitations.functions">4.9.4. Functions</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.limitations.types">4.9.5. Types</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.writingwrappers">4.9.6. Writing new wrappers</a></span></dt>
+-<dt><span class="sect2"><a href="mc-manual.html#mc-manual.mpiwrap.whattoexpect">4.9.7. What to expect when using the wrappers</a></span></dt>
+-</dl></dd>
+-</dl>
+-</div>
+-<p>To use this tool, you may specify <code class="option">--tool=memcheck</code>
+-on the Valgrind command line.  You don't have to, though, since Memcheck
+-is the default tool.</p>
+-<div class="sect1" title="4.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.overview"></a>4.1. Overview</h2></div></div></div>
+-<p>Memcheck is a memory error detector.  It can detect the following
+-problems that are common in C and C++ programs.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Accessing memory you shouldn't, e.g. overrunning and underrunning
+-    heap blocks, overrunning the top of the stack, and accessing memory after
+-    it has been freed.</p></li>
+-<li class="listitem"><p>Using undefined values, i.e. values that have not been initialised,
+-    or that have been derived from other undefined values.</p></li>
+-<li class="listitem"><p>Incorrect freeing of heap memory, such as double-freeing heap
+-    blocks, or mismatched use of
+-    <code class="function">malloc</code>/<code class="computeroutput">new</code>/<code class="computeroutput">new[]</code>
+-    versus
+-    <code class="function">free</code>/<code class="computeroutput">delete</code>/<code class="computeroutput">delete[]</code></p></li>
+-<li class="listitem"><p>Overlapping <code class="computeroutput">src</code> and
+-    <code class="computeroutput">dst</code> pointers in
+-    <code class="computeroutput">memcpy</code> and related
+-    functions.</p></li>
+-<li class="listitem"><p>Memory leaks.</p></li>
+-</ul></div>
+-<p>Problems like these can be difficult to find by other means,
+-often remaining undetected for long periods, then causing occasional,
+-difficult-to-diagnose crashes.</p>
+-</div>
+-<div class="sect1" title="4.2. Explanation of error messages from Memcheck">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.errormsgs"></a>4.2. Explanation of error messages from Memcheck</h2></div></div></div>
+-<p>Memcheck issues a range of error messages.  This section presents a
+-quick summary of what error messages mean.  The precise behaviour of the
+-error-checking machinery is described in <a class="xref" href="mc-manual.html#mc-manual.machine" title="4.5. Details of Memcheck's checking machinery">Details of Memcheck's checking machinery</a>.</p>
+-<div class="sect2" title="4.2.1. Illegal read / Illegal write errors">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.badrw"></a>4.2.1. Illegal read / Illegal write errors</h3></div></div></div>
+-<p>For example:</p>
+-<pre class="programlisting">
+-Invalid read of size 4
+-   at 0x40F6BBCC: (within /usr/lib/libpng.so.2.1.0.9)
+-   by 0x40F6B804: (within /usr/lib/libpng.so.2.1.0.9)
+-   by 0x40B07FF4: read_png_image(QImageIO *) (kernel/qpngio.cpp:326)
+-   by 0x40AC751B: QImageIO::read() (kernel/qimage.cpp:3621)
+- Address 0xBFFFF0E0 is not stack'd, malloc'd or free'd
+-</pre>
+-<p>This happens when your program reads or writes memory at a place
+-which Memcheck reckons it shouldn't.  In this example, the program did a
+-4-byte read at address 0xBFFFF0E0, somewhere within the system-supplied
+-library libpng.so.2.1.0.9, which was called from somewhere else in the
+-same library, called from line 326 of <code class="filename">qpngio.cpp</code>,
+-and so on.</p>
+-<p>Memcheck tries to establish what the illegal address might relate
+-to, since that's often useful.  So, if it points into a block of memory
+-which has already been freed, you'll be informed of this, and also where
+-the block was freed.  Likewise, if it should turn out to be just off
+-the end of a heap block, a common result of off-by-one-errors in
+-array subscripting, you'll be informed of this fact, and also where the
+-block was allocated.  If you use the <code class="option"><a class="xref" href="manual-core.html#opt.read-var-info">--read-var-info</a></code> option Memcheck will run more slowly
+-but may give a more detailed description of any illegal address.</p>
+-<p>In this example, Memcheck can't identify the address.  Actually
+-the address is on the stack, but, for some reason, this is not a valid
+-stack address -- it is below the stack pointer and that isn't allowed.
+-In this particular case it's probably caused by GCC generating invalid
+-code, a known bug in some ancient versions of GCC.</p>
+-<p>Note that Memcheck only tells you that your program is about to
+-access memory at an illegal address.  It can't stop the access from
+-happening.  So, if your program makes an access which normally would
+-result in a segmentation fault, you program will still suffer the same
+-fate -- but you will get a message from Memcheck immediately prior to
+-this.  In this particular example, reading junk on the stack is
+-non-fatal, and the program stays alive.</p>
+-</div>
+-<div class="sect2" title="4.2.2. Use of uninitialised values">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.uninitvals"></a>4.2.2. Use of uninitialised values</h3></div></div></div>
+-<p>For example:</p>
+-<pre class="programlisting">
+-Conditional jump or move depends on uninitialised value(s)
+-   at 0x402DFA94: _IO_vfprintf (_itoa.h:49)
+-   by 0x402E8476: _IO_printf (printf.c:36)
+-   by 0x8048472: main (tests/manuel1.c:8)
+-</pre>
+-<p>An uninitialised-value use error is reported when your program
+-uses a value which hasn't been initialised -- in other words, is
+-undefined.  Here, the undefined value is used somewhere inside the
+-<code class="function">printf</code> machinery of the C library.  This error was
+-reported when running the following small program:</p>
+-<pre class="programlisting">
+-int main()
+-{
+-  int x;
+-  printf ("x = %d\n", x);
+-}</pre>
+-<p>It is important to understand that your program can copy around
+-junk (uninitialised) data as much as it likes.  Memcheck observes this
+-and keeps track of the data, but does not complain.  A complaint is
+-issued only when your program attempts to make use of uninitialised
+-data in a way that might affect your program's externally-visible behaviour.
+-In this example, <code class="varname">x</code> is uninitialised.  Memcheck observes
+-the value being passed to <code class="function">_IO_printf</code> and thence to
+-<code class="function">_IO_vfprintf</code>, but makes no comment.  However,
+-<code class="function">_IO_vfprintf</code> has to examine the value of
+-<code class="varname">x</code> so it can turn it into the corresponding ASCII string,
+-and it is at this point that Memcheck complains.</p>
+-<p>Sources of uninitialised data tend to be:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Local variables in procedures which have not been initialised,
+-    as in the example above.</p></li>
+-<li class="listitem"><p>The contents of heap blocks (allocated with
+-    <code class="function">malloc</code>, <code class="function">new</code>, or a similar
+-    function) before you (or a constructor) write something there.
+-    </p></li>
+-</ul></div>
+-<p>To see information on the sources of uninitialised data in your
+-program, use the <code class="option">--track-origins=yes</code> option.  This
+-makes Memcheck run more slowly, but can make it much easier to track down
+-the root causes of uninitialised value errors.</p>
+-</div>
+-<div class="sect2" title="4.2.3. Use of uninitialised or unaddressable values in system calls">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.bad-syscall-args"></a>4.2.3. Use of uninitialised or unaddressable values in system
+-       calls</h3></div></div></div>
+-<p>Memcheck checks all parameters to system calls:
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>It checks all the direct parameters themselves, whether they are
+-    initialised.</p></li>
+-<li class="listitem"><p>Also, if a system call needs to read from a buffer provided by
+-    your program, Memcheck checks that the entire buffer is addressable
+-    and its contents are initialised.</p></li>
+-<li class="listitem"><p>Also, if the system call needs to write to a user-supplied
+-    buffer, Memcheck checks that the buffer is addressable.</p></li>
+-</ul></div>
+-<p>
+-</p>
+-<p>After the system call, Memcheck updates its tracked information to
+-precisely reflect any changes in memory state caused by the system
+-call.</p>
+-<p>Here's an example of two system calls with invalid parameters:</p>
+-<pre class="programlisting">
+-  #include <stdlib.h>
+-  #include <unistd.h>
+-  int main( void )
+-  {
+-    char* arr  = malloc(10);
+-    int*  arr2 = malloc(sizeof(int));
+-    write( 1 /* stdout */, arr, 10 );
+-    exit(arr2[0]);
+-  }
+-</pre>
+-<p>You get these complaints ...</p>
+-<pre class="programlisting">
+-  Syscall param write(buf) points to uninitialised byte(s)
+-     at 0x25A48723: __write_nocancel (in /lib/tls/libc-2.3.3.so)
+-     by 0x259AFAD3: __libc_start_main (in /lib/tls/libc-2.3.3.so)
+-     by 0x8048348: (within /auto/homes/njn25/grind/head4/a.out)
+-   Address 0x25AB8028 is 0 bytes inside a block of size 10 alloc'd
+-     at 0x259852B0: malloc (vg_replace_malloc.c:130)
+-     by 0x80483F1: main (a.c:5)
+-
+-  Syscall param exit(error_code) contains uninitialised byte(s)
+-     at 0x25A21B44: __GI__exit (in /lib/tls/libc-2.3.3.so)
+-     by 0x8048426: main (a.c:8)
+-</pre>
+-<p>... because the program has (a) written uninitialised junk
+-from the heap block to the standard output, and (b) passed an
+-uninitialised value to <code class="function">exit</code>.  Note that the first
+-error refers to the memory pointed to by
+-<code class="computeroutput">buf</code> (not
+-<code class="computeroutput">buf</code> itself), but the second error
+-refers directly to <code class="computeroutput">exit</code>'s argument
+-<code class="computeroutput">arr2[0]</code>.</p>
+-</div>
+-<div class="sect2" title="4.2.4. Illegal frees">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.badfrees"></a>4.2.4. Illegal frees</h3></div></div></div>
+-<p>For example:</p>
+-<pre class="programlisting">
+-Invalid free()
+-   at 0x4004FFDF: free (vg_clientmalloc.c:577)
+-   by 0x80484C7: main (tests/doublefree.c:10)
+- Address 0x3807F7B4 is 0 bytes inside a block of size 177 free'd
+-   at 0x4004FFDF: free (vg_clientmalloc.c:577)
+-   by 0x80484C7: main (tests/doublefree.c:10)
+-</pre>
+-<p>Memcheck keeps track of the blocks allocated by your program
+-with <code class="function">malloc</code>/<code class="computeroutput">new</code>,
+-so it can know exactly whether or not the argument to
+-<code class="function">free</code>/<code class="computeroutput">delete</code> is
+-legitimate or not.  Here, this test program has freed the same block
+-twice.  As with the illegal read/write errors, Memcheck attempts to
+-make sense of the address freed.  If, as here, the address is one
+-which has previously been freed, you wil be told that -- making
+-duplicate frees of the same block easy to spot.  You will also get this
+-message if you try to free a pointer that doesn't point to the start of a
+-heap block.</p>
+-</div>
+-<div class="sect2" title="4.2.5. When a heap block is freed with an inappropriate deallocation function">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.rudefn"></a>4.2.5. When a heap block is freed with an inappropriate deallocation
+-function</h3></div></div></div>
+-<p>In the following example, a block allocated with
+-<code class="function">new[]</code> has wrongly been deallocated with
+-<code class="function">free</code>:</p>
+-<pre class="programlisting">
+-Mismatched free() / delete / delete []
+-   at 0x40043249: free (vg_clientfuncs.c:171)
+-   by 0x4102BB4E: QGArray::~QGArray(void) (tools/qgarray.cpp:149)
+-   by 0x4C261C41: PptDoc::~PptDoc(void) (include/qmemarray.h:60)
+-   by 0x4C261F0E: PptXml::~PptXml(void) (pptxml.cc:44)
+- Address 0x4BB292A8 is 0 bytes inside a block of size 64 alloc'd
+-   at 0x4004318C: operator new[](unsigned int) (vg_clientfuncs.c:152)
+-   by 0x4C21BC15: KLaola::readSBStream(int) const (klaola.cc:314)
+-   by 0x4C21C155: KLaola::stream(KLaola::OLENode const *) (klaola.cc:416)
+-   by 0x4C21788F: OLEFilter::convert(QCString const &) (olefilter.cc:272)
+-</pre>
+-<p>In <code class="literal">C++</code> it's important to deallocate memory in a
+-way compatible with how it was allocated.  The deal is:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>If allocated with
+-    <code class="function">malloc</code>,
+-    <code class="function">calloc</code>,
+-    <code class="function">realloc</code>,
+-    <code class="function">valloc</code> or
+-    <code class="function">memalign</code>, you must
+-    deallocate with <code class="function">free</code>.</p></li>
+-<li class="listitem"><p>If allocated with <code class="function">new</code>, you must deallocate
+-   with <code class="function">delete</code>.</p></li>
+-<li class="listitem"><p>If allocated with <code class="function">new[]</code>, you must
+-    deallocate with <code class="function">delete[]</code>.</p></li>
+-</ul></div>
+-<p>The worst thing is that on Linux apparently it doesn't matter if
+-you do mix these up, but the same program may then crash on a
+-different platform, Solaris for example.  So it's best to fix it
+-properly.  According to the KDE folks "it's amazing how many C++
+-programmers don't know this".</p>
+-<p>The reason behind the requirement is as follows.  In some C++
+-implementations, <code class="function">delete[]</code> must be used for
+-objects allocated by <code class="function">new[]</code> because the compiler
+-stores the size of the array and the pointer-to-member to the
+-destructor of the array's content just before the pointer actually
+-returned.  <code class="function">delete</code> doesn't account for this and will get
+-confused, possibly corrupting the heap.</p>
+-</div>
+-<div class="sect2" title="4.2.6. Overlapping source and destination blocks">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.overlap"></a>4.2.6. Overlapping source and destination blocks</h3></div></div></div>
+-<p>The following C library functions copy some data from one
+-memory block to another (or something similar):
+-<code class="function">memcpy</code>,
+-<code class="function">strcpy</code>,
+-<code class="function">strncpy</code>,
+-<code class="function">strcat</code>,
+-<code class="function">strncat</code>. 
+-The blocks pointed to by their <code class="computeroutput">src</code> and
+-<code class="computeroutput">dst</code> pointers aren't allowed to overlap.
+-The POSIX standards have wording along the lines "If copying takes place
+-between objects that overlap, the behavior is undefined." Therefore,
+-Memcheck checks for this.
+-</p>
+-<p>For example:</p>
+-<pre class="programlisting">
+-==27492== Source and destination overlap in memcpy(0xbffff294, 0xbffff280, 21)
+-==27492==    at 0x40026CDC: memcpy (mc_replace_strmem.c:71)
+-==27492==    by 0x804865A: main (overlap.c:40)
+-</pre>
+-<p>You don't want the two blocks to overlap because one of them could
+-get partially overwritten by the copying.</p>
+-<p>You might think that Memcheck is being overly pedantic reporting
+-this in the case where <code class="computeroutput">dst</code> is less than
+-<code class="computeroutput">src</code>.  For example, the obvious way to
+-implement <code class="function">memcpy</code> is by copying from the first
+-byte to the last.  However, the optimisation guides of some
+-architectures recommend copying from the last byte down to the first.
+-Also, some implementations of <code class="function">memcpy</code> zero
+-<code class="computeroutput">dst</code> before copying, because zeroing the
+-destination's cache line(s) can improve performance.</p>
+-<p>The moral of the story is: if you want to write truly portable
+-code, don't make any assumptions about the language
+-implementation.</p>
+-</div>
+-<div class="sect2" title="4.2.7. Memory leak detection">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.leaks"></a>4.2.7. Memory leak detection</h3></div></div></div>
+-<p>Memcheck keeps track of all heap blocks issued in response to
+-calls to
+-<code class="function">malloc</code>/<code class="function">new</code> et al.
+-So when the program exits, it knows which blocks have not been freed.
+-</p>
+-<p>If <code class="option">--leak-check</code> is set appropriately, for each
+-remaining block, Memcheck determines if the block is reachable from pointers
+-within the root-set.  The root-set consists of (a) general purpose registers
+-of all threads, and (b) initialised, aligned, pointer-sized data words in
+-accessible client memory, including stacks.</p>
+-<p>There are two ways a block can be reached.  The first is with a
+-"start-pointer", i.e. a pointer to the start of the block.  The second is with
+-an "interior-pointer", i.e. a pointer to the middle of the block.  There are
+-three ways we know of that an interior-pointer can occur:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>The pointer might have originally been a start-pointer and have been
+-    moved along deliberately (or not deliberately) by the program.  In
+-    particular, this can happen if your program uses tagged pointers, i.e.
+-    if it uses the bottom one, two or three bits of a pointer, which are
+-    normally always zero due to alignment, in order to store extra
+-    information.</p></li>
+-<li class="listitem"><p>It might be a random junk value in memory, entirely unrelated, just
+-    a coincidence.</p></li>
+-<li class="listitem"><p>It might be a pointer to an array of C++ objects (which possess
+-    destructors) allocated with <code class="computeroutput">new[]</code>.  In
+-    this case, some compilers store a "magic cookie" containing the array
+-    length at the start of the allocated block, and return a pointer to just
+-    past that magic cookie, i.e. an interior-pointer.
+-    See <a class="ulink" href="http://theory.uwinnipeg.ca/gnu/gcc/gxxint_14.html" target="_top">this
+-    page</a> for more information.</p></li>
+-</ul></div>
+-<p>With that in mind, consider the nine possible cases described by the
+-following figure.</p>
+-<pre class="programlisting">
+-     Pointer chain            AAA Category    BBB Category
+-     -------------            ------------    ------------
+-(1)  RRR ------------> BBB                    DR
+-(2)  RRR ---> AAA ---> BBB    DR              IR
+-(3)  RRR               BBB                    DL
+-(4)  RRR      AAA ---> BBB    DL              IL
+-(5)  RRR ------?-----> BBB                    (y)DR, (n)DL
+-(6)  RRR ---> AAA -?-> BBB    DR              (y)IR, (n)DL
+-(7)  RRR -?-> AAA ---> BBB    (y)DR, (n)DL    (y)IR, (n)IL
+-(8)  RRR -?-> AAA -?-> BBB    (y)DR, (n)DL    (y,y)IR, (n,y)IL, (_,n)DL
+-(9)  RRR      AAA -?-> BBB    DL              (y)IL, (n)DL
+-
+-Pointer chain legend:
+-- RRR: a root set node or DR block
+-- AAA, BBB: heap blocks
+-- --->: a start-pointer
+-- -?->: an interior-pointer
+-
+-Category legend:
+-- DR: Directly reachable
+-- IR: Indirectly reachable
+-- DL: Directly lost
+-- IL: Indirectly lost
+-- (y)XY: it's XY if the interior-pointer is a real pointer
+-- (n)XY: it's XY if the interior-pointer is not a real pointer
+-- (_)XY: it's XY in either case
+-</pre>
+-<p>Every possible case can be reduced to one of the above nine.  Memcheck
+-merges some of these cases in its output, resulting in the following four
+-categories.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>"Still reachable". This covers cases 1 and 2 (for the BBB blocks)
+-    above.  A start-pointer or chain of start-pointers to the block is
+-    found.  Since the block is still pointed at, the programmer could, at
+-    least in principle, have freed it before program exit.  Because these
+-    are very common and arguably not a problem, Memcheck won't report such
+-    blocks individually unless <code class="option">--show-reachable=yes</code> is
+-    specified.</p></li>
+-<li class="listitem"><p>"Definitely lost".  This covers case 3 (for the BBB blocks) above.
+-    This means that no pointer to the block can be found.  The block is
+-    classified as "lost", because the programmer could not possibly have
+-    freed it at program exit, since no pointer to it exists.  This is likely
+-    a symptom of having lost the pointer at some earlier point in the
+-    program.  Such cases should be fixed by the programmer.</p></li>
+-<li class="listitem"><p>"Indirectly lost".  This covers cases 4 and 9 (for the BBB blocks)
+-    above.  This means that the block is lost, not because there are no
+-    pointers to it, but rather because all the blocks that point to it are
+-    themselves lost.  For example, if you have a binary tree and the root
+-    node is lost, all its children nodes will be indirectly lost.  Because
+-    the problem will disappear if the definitely lost block that caused the
+-    indirect leak is fixed, Memcheck won't report such blocks individually
+-    unless <code class="option">--show-reachable=yes</code> is specified.</p></li>
+-<li class="listitem"><p>"Possibly lost".  This covers cases 5--8 (for the BBB blocks)
+-    above.  This means that a chain of one or more pointers to the block has
+-    been found, but at least one of the pointers is an interior-pointer.
+-    This could just be a random value in memory that happens to point into a
+-    block, and so you shouldn't consider this ok unless you know you have
+-    interior-pointers.</p></li>
+-</ul></div>
+-<p>(Note: This mapping of the nine possible cases onto four categories is
+-not necessarily the best way that leaks could be reported;  in particular,
+-interior-pointers are treated inconsistently.  It is possible the
+-categorisation may be improved in the future.)</p>
+-<p>Furthermore, if suppressions exists for a block, it will be reported
+-as "suppressed" no matter what which of the above four categories it belongs
+-to.</p>
+-<p>The following is an example leak summary.</p>
+-<pre class="programlisting">
+-LEAK SUMMARY:
+-   definitely lost: 48 bytes in 3 blocks.
+-   indirectly lost: 32 bytes in 2 blocks.
+-     possibly lost: 96 bytes in 6 blocks.
+-   still reachable: 64 bytes in 4 blocks.
+-        suppressed: 0 bytes in 0 blocks.
+-</pre>
+-<p>If <code class="option">--leak-check=full</code> is specified,
+-Memcheck will give details for each definitely lost or possibly lost block,
+-including where it was allocated.  (Actually, it merges results for all
+-blocks that have the same category and sufficiently similar stack traces
+-into a single "loss record".  The
+-<code class="option">--leak-resolution</code> lets you control the
+-meaning of "sufficiently similar".)  It cannot tell you when or how or why
+-the pointer to a leaked block was lost; you have to work that out for
+-yourself.  In general, you should attempt to ensure your programs do not
+-have any definitely lost or possibly lost blocks at exit.</p>
+-<p>For example:</p>
+-<pre class="programlisting">
+-8 bytes in 1 blocks are definitely lost in loss record 1 of 14
+-   at 0x........: malloc (vg_replace_malloc.c:...)
+-   by 0x........: mk (leak-tree.c:11)
+-   by 0x........: main (leak-tree.c:39)
+-
+-88 (8 direct, 80 indirect) bytes in 1 blocks are definitely lost in loss record 13 of 14
+-   at 0x........: malloc (vg_replace_malloc.c:...)
+-   by 0x........: mk (leak-tree.c:11)
+-   by 0x........: main (leak-tree.c:25)
+-</pre>
+-<p>The first message describes a simple case of a single 8 byte block
+-that has been definitely lost.  The second case mentions another 8 byte
+-block that has been definitely lost;  the difference is that a further 80
+-bytes in other blocks are indirectly lost because of this lost block.
+-The loss records are not presented in any notable order, so the loss record
+-numbers aren't particularly meaningful.</p>
+-<p>If you specify <code class="option">--show-reachable=yes</code>,
+-reachable and indirectly lost blocks will also be shown, as the following
+-two examples show.</p>
+-<pre class="programlisting">
+-64 bytes in 4 blocks are still reachable in loss record 2 of 4
+-   at 0x........: malloc (vg_replace_malloc.c:177)
+-   by 0x........: mk (leak-cases.c:52)
+-   by 0x........: main (leak-cases.c:74)
+-
+-32 bytes in 2 blocks are indirectly lost in loss record 1 of 4
+-   at 0x........: malloc (vg_replace_malloc.c:177)
+-   by 0x........: mk (leak-cases.c:52)
+-   by 0x........: main (leak-cases.c:80)
+-</pre>
+-<p>Because there are different kinds of leaks with different severities, an
+-interesting question is this: which leaks should be counted as true "errors"
+-and which should not?  The answer to this question affects the numbers printed
+-in the <code class="computeroutput">ERROR SUMMARY</code> line, and also the effect
+-of the <code class="option">--error-exitcode</code> option.  Memcheck uses the following
+-criteria:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>First, a leak is only counted as a true "error" if
+-    <code class="option">--leak-check=full</code> is specified.  In other words, an
+-    unprinted leak is not considered a true "error".  If this were not the
+-    case, it would be possible to get a high error count but not have any
+-    errors printed, which would be confusing.</p></li>
+-<li class="listitem"><p>After that, definitely lost and possibly lost blocks are counted as
+-    true "errors".  Indirectly lost and still reachable blocks are not counted
+-    as true "errors", even if <code class="option">--show-reachable=yes</code> is
+-    specified and they are printed;  this is because such blocks don't need
+-    direct fixing by the programmer.
+-    </p></li>
+-</ul></div>
+-</div>
+-</div>
+-<div class="sect1" title="4.3. Memcheck Command-Line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.options"></a>4.3. Memcheck Command-Line Options</h2></div></div></div>
+-<div class="variablelist">
+-<a name="mc.opts.list"></a><dl>
+-<dt>
+-<a name="opt.leak-check"></a><span class="term">
+-      <code class="option">--leak-check=<no|summary|yes|full> [default: summary] </code>
+-    </span>
+-</dt>
+-<dd><p>When enabled, search for memory leaks when the client
+-      program finishes.  If set to <code class="varname">summary</code>, it says how
+-      many leaks occurred.  If set to <code class="varname">full</code> or
+-      <code class="varname">yes</code>, it also gives details of each individual
+-      leak.</p></dd>
+-<dt>
+-<a name="opt.show-possibly-lost"></a><span class="term">
+-      <code class="option">--show-possibly-lost=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>When disabled, the memory leak detector will not show "possibly lost" blocks.  
+-      </p></dd>
+-<dt>
+-<a name="opt.leak-resolution"></a><span class="term">
+-      <code class="option">--leak-resolution=<low|med|high> [default: high] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When doing leak checking, determines how willing
+-      Memcheck is to consider different backtraces to
+-      be the same for the purposes of merging multiple leaks into a single
+-      leak report.  When set to <code class="varname">low</code>, only the first
+-      two entries need match.  When <code class="varname">med</code>, four entries
+-      have to match.  When <code class="varname">high</code>, all entries need to
+-      match.</p>
+-<p>For hardcore leak debugging, you probably want to use
+-      <code class="option">--leak-resolution=high</code> together with
+-      <code class="option">--num-callers=40</code> or some such large number.
+-      </p>
+-<p>Note that the <code class="option">--leak-resolution</code> setting
+-      does not affect Memcheck's ability to find
+-      leaks.  It only changes how the results are presented.</p>
+-</dd>
+-<dt>
+-<a name="opt.show-reachable"></a><span class="term">
+-      <code class="option">--show-reachable=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>When disabled, the memory leak detector only shows "definitely
+-      lost" and "possibly lost" blocks.  When enabled, the leak detector also
+-      shows "reachable" and "indirectly lost" blocks.  (In other words, it
+-      shows all blocks, except suppressed ones, so
+-      <code class="option">--show-all</code> would be a better name for
+-      it.)</p></dd>
+-<dt>
+-<a name="opt.undef-value-errors"></a><span class="term">
+-      <code class="option">--undef-value-errors=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>Controls whether Memcheck reports
+-      uses of undefined value errors.  Set this to
+-      <code class="varname">no</code> if you don't want to see undefined value
+-      errors.  It also has the side effect of speeding up
+-      Memcheck somewhat.
+-      </p></dd>
+-<dt>
+-<a name="opt.track-origins"></a><span class="term">
+-      <code class="option">--track-origins=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Controls whether Memcheck tracks
+-        the origin of uninitialised values.  By default, it does not,
+-        which means that although it can tell you that an
+-        uninitialised value is being used in a dangerous way, it
+-        cannot tell you where the uninitialised value came from.  This
+-        often makes it difficult to track down the root problem.
+-        </p>
+-<p>When set
+-        to <code class="varname">yes</code>, Memcheck keeps
+-        track of the origins of all uninitialised values.  Then, when
+-        an uninitialised value error is
+-        reported, Memcheck will try to show the
+-        origin of the value.  An origin can be one of the following
+-        four places: a heap block, a stack allocation, a client
+-        request, or miscellaneous other sources (eg, a call
+-        to <code class="varname">brk</code>).
+-        </p>
+-<p>For uninitialised values originating from a heap
+-        block, Memcheck shows where the block was
+-        allocated.  For uninitialised values originating from a stack
+-        allocation, Memcheck can tell you which
+-        function allocated the value, but no more than that -- typically
+-        it shows you the source location of the opening brace of the
+-        function.  So you should carefully check that all of the
+-        function's local variables are initialised properly.
+-        </p>
+-<p>Performance overhead: origin tracking is expensive.  It
+-        halves Memcheck's speed and increases
+-        memory use by a minimum of 100MB, and possibly more.
+-        Nevertheless it can drastically reduce the effort required to
+-        identify the root cause of uninitialised value errors, and so
+-        is often a programmer productivity win, despite running
+-        more slowly.
+-        </p>
+-<p>Accuracy: Memcheck tracks origins
+-        quite accurately.  To avoid very large space and time
+-        overheads, some approximations are made.  It is possible,
+-        although unlikely, that Memcheck will report an incorrect origin, or
+-        not be able to identify any origin.
+-        </p>
+-<p>Note that the combination
+-        <code class="option">--track-origins=yes</code>
+-        and <code class="option">--undef-value-errors=no</code> is
+-        nonsensical.  Memcheck checks for and
+-        rejects this combination at startup.
+-        </p>
+-</dd>
+-<dt>
+-<a name="opt.partial-loads-ok"></a><span class="term">
+-      <code class="option">--partial-loads-ok=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Controls how Memcheck handles word-sized,
+-      word-aligned loads from addresses for which some bytes are
+-      addressable and others are not.  When <code class="varname">yes</code>, such
+-      loads do not produce an address error.  Instead, loaded bytes
+-      originating from illegal addresses are marked as uninitialised, and
+-      those corresponding to legal addresses are handled in the normal
+-      way.</p>
+-<p>When <code class="varname">no</code>, loads from partially invalid
+-      addresses are treated the same as loads from completely invalid
+-      addresses: an illegal-address error is issued, and the resulting
+-      bytes are marked as initialised.</p>
+-<p>Note that code that behaves in this way is in violation of
+-      the the ISO C/C++ standards, and should be considered broken.  If
+-      at all possible, such code should be fixed.  This option should be
+-      used only as a last resort.</p>
+-</dd>
+-<dt>
+-<a name="opt.freelist-vol"></a><span class="term">
+-      <code class="option">--freelist-vol=<number> [default: 20000000] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When the client program releases memory using
+-      <code class="function">free</code> (in <code class="literal">C</code>) or
+-      <code class="computeroutput">delete</code>
+-      (<code class="literal">C++</code>), that memory is not immediately made
+-      available for re-allocation.  Instead, it is marked inaccessible
+-      and placed in a queue of freed blocks.  The purpose is to defer as
+-      long as possible the point at which freed-up memory comes back
+-      into circulation.  This increases the chance that
+-      Memcheck will be able to detect invalid
+-      accesses to blocks for some significant period of time after they
+-      have been freed.</p>
+-<p>This option specifies the maximum total size, in bytes, of the
+-      blocks in the queue.  The default value is twenty million bytes.
+-      Increasing this increases the total amount of memory used by
+-      Memcheck but may detect invalid uses of freed
+-      blocks which would otherwise go undetected.</p>
+-</dd>
+-<dt>
+-<a name="opt.freelist-big-blocks"></a><span class="term">
+-      <code class="option">--freelist-big-blocks=<number> [default: 1000000] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When making blocks from the queue of freed blocks available
+-      for re-allocation, Memcheck will in priority re-circulate the blocks
+-      with a size greater or equal to <code class="option">--freelist-big-blocks</code>.
+-      This ensures that freeing big blocks (in particular freeing blocks bigger than
+-      <code class="option">--freelist-vol</code>) does not immediately lead to a re-circulation
+-      of all (or a lot of) the small blocks in the free list. In other words,
+-      this option increases the likelihood to discover dangling pointers
+-      for the "small" blocks, even when big blocks are freed.</p>
+-<p>Setting a value of 0 means that all the blocks are re-circulated
+-      in a FIFO order. </p>
+-</dd>
+-<dt>
+-<a name="opt.workaround-gcc296-bugs"></a><span class="term">
+-      <code class="option">--workaround-gcc296-bugs=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>When enabled, assume that reads and writes some small
+-      distance below the stack pointer are due to bugs in GCC 2.96, and
+-      does not report them.  The "small distance" is 256 bytes by
+-      default.  Note that GCC 2.96 is the default compiler on some ancient
+-      Linux distributions (RedHat 7.X) and so you may need to use this
+-      option.  Do not use it if you do not have to, as it can cause real
+-      errors to be overlooked.  A better alternative is to use a more
+-      recent GCC in which this bug is fixed.</p>
+-<p>You may also need to use this option when working with
+-      GCC 3.X or 4.X on 32-bit PowerPC Linux.  This is because
+-      GCC generates code which occasionally accesses below the
+-      stack pointer, particularly for floating-point to/from integer
+-      conversions.  This is in violation of the 32-bit PowerPC ELF
+-      specification, which makes no provision for locations below the
+-      stack pointer to be accessible.</p>
+-</dd>
+-<dt>
+-<a name="opt.ignore-ranges"></a><span class="term">
+-      <code class="option">--ignore-ranges=0xPP-0xQQ[,0xRR-0xSS] </code>
+-    </span>
+-</dt>
+-<dd><p>Any ranges listed in this option (and multiple ranges can be
+-    specified, separated by commas) will be ignored by Memcheck's
+-    addressability checking.</p></dd>
+-<dt>
+-<a name="opt.malloc-fill"></a><span class="term">
+-      <code class="option">--malloc-fill=<hexnumber> </code>
+-    </span>
+-</dt>
+-<dd><p>Fills blocks allocated
+-      by <code class="computeroutput">malloc</code>,
+-         <code class="computeroutput">new</code>, etc, but not
+-      by <code class="computeroutput">calloc</code>, with the specified
+-      byte.  This can be useful when trying to shake out obscure
+-      memory corruption problems.  The allocated area is still
+-      regarded by Memcheck as undefined -- this option only affects its
+-      contents. Note that <code class="option">--malloc-fill</code> does not
+-      affect a block of memory when it is used as argument
+-      to client requests VALGRIND_MEMPOOL_ALLOC or
+-      VALGRIND_MALLOCLIKE_BLOCK.
+-      </p></dd>
+-<dt>
+-<a name="opt.free-fill"></a><span class="term">
+-      <code class="option">--free-fill=<hexnumber> </code>
+-    </span>
+-</dt>
+-<dd><p>Fills blocks freed
+-      by <code class="computeroutput">free</code>,
+-         <code class="computeroutput">delete</code>, etc, with the
+-      specified byte value.  This can be useful when trying to shake out
+-      obscure memory corruption problems.  The freed area is still
+-      regarded by Memcheck as not valid for access -- this option only
+-      affects its contents. Note that <code class="option">--free-fill</code> does not
+-      affect a block of memory when it is used as argument to
+-      client requests VALGRIND_MEMPOOL_FREE or VALGRIND_FREELIKE_BLOCK.
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="4.4. Writing suppression files">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.suppfiles"></a>4.4. Writing suppression files</h2></div></div></div>
+-<p>The basic suppression format is described in 
+-<a class="xref" href="manual-core.html#manual-core.suppress" title="2.5. Suppressing errors">Suppressing errors</a>.</p>
+-<p>The suppression-type (second) line should have the form:</p>
+-<pre class="programlisting">
+-Memcheck:suppression_type</pre>
+-<p>The Memcheck suppression types are as follows:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">Value1</code>, 
+-    <code class="varname">Value2</code>,
+-    <code class="varname">Value4</code>,
+-    <code class="varname">Value8</code>,
+-    <code class="varname">Value16</code>,
+-    meaning an uninitialised-value error when
+-    using a value of 1, 2, 4, 8 or 16 bytes.</p></li>
+-<li class="listitem"><p><code class="varname">Cond</code> (or its old
+-    name, <code class="varname">Value0</code>), meaning use
+-    of an uninitialised CPU condition code.</p></li>
+-<li class="listitem"><p><code class="varname">Addr1</code>,
+-    <code class="varname">Addr2</code>, 
+-    <code class="varname">Addr4</code>,
+-    <code class="varname">Addr8</code>,
+-    <code class="varname">Addr16</code>, 
+-    meaning an invalid address during a
+-    memory access of 1, 2, 4, 8 or 16 bytes respectively.</p></li>
+-<li class="listitem"><p><code class="varname">Jump</code>, meaning an
+-    jump to an unaddressable location error.</p></li>
+-<li class="listitem"><p><code class="varname">Param</code>, meaning an
+-    invalid system call parameter error.</p></li>
+-<li class="listitem"><p><code class="varname">Free</code>, meaning an
+-    invalid or mismatching free.</p></li>
+-<li class="listitem"><p><code class="varname">Overlap</code>, meaning a
+-    <code class="computeroutput">src</code> /
+-    <code class="computeroutput">dst</code> overlap in
+-    <code class="function">memcpy</code> or a similar function.</p></li>
+-<li class="listitem"><p><code class="varname">Leak</code>, meaning
+-    a memory leak.</p></li>
+-</ul></div>
+-<p><code class="computeroutput">Param</code> errors have an extra
+-information line at this point, which is the name of the offending
+-system call parameter.  No other error kinds have this extra
+-line.</p>
+-<p>The first line of the calling context: for <code class="varname">ValueN</code>
+-and <code class="varname">AddrN</code> errors, it is either the name of the function
+-in which the error occurred, or, failing that, the full path of the
+-<code class="filename">.so</code> file
+-or executable containing the error location.  For <code class="varname">Free</code> errors, is the name
+-of the function doing the freeing (eg, <code class="function">free</code>,
+-<code class="function">__builtin_vec_delete</code>, etc).  For
+-<code class="varname">Overlap</code> errors, is the name of the function with the
+-overlapping arguments (eg.  <code class="function">memcpy</code>,
+-<code class="function">strcpy</code>, etc).</p>
+-<p>Lastly, there's the rest of the calling context.</p>
+-</div>
+-<div class="sect1" title="4.5. Details of Memcheck's checking machinery">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.machine"></a>4.5. Details of Memcheck's checking machinery</h2></div></div></div>
+-<p>Read this section if you want to know, in detail, exactly
+-what and how Memcheck is checking.</p>
+-<div class="sect2" title="4.5.1. Valid-value (V) bits">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.value"></a>4.5.1. Valid-value (V) bits</h3></div></div></div>
+-<p>It is simplest to think of Memcheck implementing a synthetic CPU
+-which is identical to a real CPU, except for one crucial detail.  Every
+-bit (literally) of data processed, stored and handled by the real CPU
+-has, in the synthetic CPU, an associated "valid-value" bit, which says
+-whether or not the accompanying bit has a legitimate value.  In the
+-discussions which follow, this bit is referred to as the V (valid-value)
+-bit.</p>
+-<p>Each byte in the system therefore has a 8 V bits which follow it
+-wherever it goes.  For example, when the CPU loads a word-size item (4
+-bytes) from memory, it also loads the corresponding 32 V bits from a
+-bitmap which stores the V bits for the process' entire address space.
+-If the CPU should later write the whole or some part of that value to
+-memory at a different address, the relevant V bits will be stored back
+-in the V-bit bitmap.</p>
+-<p>In short, each bit in the system has (conceptually) an associated V
+-bit, which follows it around everywhere, even inside the CPU.  Yes, all the
+-CPU's registers (integer, floating point, vector and condition registers)
+-have their own V bit vectors.  For this to work, Memcheck uses a great deal
+-of compression to represent the V bits compactly.</p>
+-<p>Copying values around does not cause Memcheck to check for, or
+-report on, errors.  However, when a value is used in a way which might
+-conceivably affect your program's externally-visible behaviour,
+-the associated V bits are immediately checked.  If any of these indicate
+-that the value is undefined (even partially), an error is reported.</p>
+-<p>Here's an (admittedly nonsensical) example:</p>
+-<pre class="programlisting">
+-int i, j;
+-int a[10], b[10];
+-for ( i = 0; i < 10; i++ ) {
+-  j = a[i];
+-  b[i] = j;
+-}</pre>
+-<p>Memcheck emits no complaints about this, since it merely copies
+-uninitialised values from <code class="varname">a[]</code> into
+-<code class="varname">b[]</code>, and doesn't use them in a way which could
+-affect the behaviour of the program.  However, if
+-the loop is changed to:</p>
+-<pre class="programlisting">
+-for ( i = 0; i < 10; i++ ) {
+-  j += a[i];
+-}
+-if ( j == 77 ) 
+-  printf("hello there\n");
+-</pre>
+-<p>then Memcheck will complain, at the
+-<code class="computeroutput">if</code>, that the condition depends on
+-uninitialised values.  Note that it <span class="command"><strong>doesn't</strong></span> complain
+-at the <code class="varname">j += a[i];</code>, since at that point the
+-undefinedness is not "observable".  It's only when a decision has to be
+-made as to whether or not to do the <code class="function">printf</code> -- an
+-observable action of your program -- that Memcheck complains.</p>
+-<p>Most low level operations, such as adds, cause Memcheck to use the
+-V bits for the operands to calculate the V bits for the result.  Even if
+-the result is partially or wholly undefined, it does not
+-complain.</p>
+-<p>Checks on definedness only occur in three places: when a value is
+-used to generate a memory address, when control flow decision needs to
+-be made, and when a system call is detected, Memcheck checks definedness
+-of parameters as required.</p>
+-<p>If a check should detect undefinedness, an error message is
+-issued.  The resulting value is subsequently regarded as well-defined.
+-To do otherwise would give long chains of error messages.  In other
+-words, once Memcheck reports an undefined value error, it tries to
+-avoid reporting further errors derived from that same undefined
+-value.</p>
+-<p>This sounds overcomplicated.  Why not just check all reads from
+-memory, and complain if an undefined value is loaded into a CPU
+-register?  Well, that doesn't work well, because perfectly legitimate C
+-programs routinely copy uninitialised values around in memory, and we
+-don't want endless complaints about that.  Here's the canonical example.
+-Consider a struct like this:</p>
+-<pre class="programlisting">
+-struct S { int x; char c; };
+-struct S s1, s2;
+-s1.x = 42;
+-s1.c = 'z';
+-s2 = s1;
+-</pre>
+-<p>The question to ask is: how large is <code class="varname">struct S</code>,
+-in bytes?  An <code class="varname">int</code> is 4 bytes and a
+-<code class="varname">char</code> one byte, so perhaps a <code class="varname">struct
+-S</code> occupies 5 bytes?  Wrong.  All non-toy compilers we know
+-of will round the size of <code class="varname">struct S</code> up to a whole
+-number of words, in this case 8 bytes.  Not doing this forces compilers
+-to generate truly appalling code for accessing arrays of
+-<code class="varname">struct S</code>'s on some architectures.</p>
+-<p>So <code class="varname">s1</code> occupies 8 bytes, yet only 5 of them will
+-be initialised.  For the assignment <code class="varname">s2 = s1</code>, GCC
+-generates code to copy all 8 bytes wholesale into <code class="varname">s2</code>
+-without regard for their meaning.  If Memcheck simply checked values as
+-they came out of memory, it would yelp every time a structure assignment
+-like this happened.  So the more complicated behaviour described above
+-is necessary.  This allows GCC to copy
+-<code class="varname">s1</code> into <code class="varname">s2</code> any way it likes, and a
+-warning will only be emitted if the uninitialised values are later
+-used.</p>
+-</div>
+-<div class="sect2" title="4.5.2. Valid-address (A) bits">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.vaddress"></a>4.5.2. Valid-address (A) bits</h3></div></div></div>
+-<p>Notice that the previous subsection describes how the validity of
+-values is established and maintained without having to say whether the
+-program does or does not have the right to access any particular memory
+-location.  We now consider the latter question.</p>
+-<p>As described above, every bit in memory or in the CPU has an
+-associated valid-value (V) bit.  In addition, all bytes in memory, but
+-not in the CPU, have an associated valid-address (A) bit.  This
+-indicates whether or not the program can legitimately read or write that
+-location.  It does not give any indication of the validity of the data
+-at that location -- that's the job of the V bits -- only whether or not
+-the location may be accessed.</p>
+-<p>Every time your program reads or writes memory, Memcheck checks
+-the A bits associated with the address.  If any of them indicate an
+-invalid address, an error is emitted.  Note that the reads and writes
+-themselves do not change the A bits, only consult them.</p>
+-<p>So how do the A bits get set/cleared?  Like this:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>When the program starts, all the global data areas are
+-    marked as accessible.</p></li>
+-<li class="listitem"><p>When the program does
+-    <code class="function">malloc</code>/<code class="computeroutput">new</code>,
+-    the A bits for exactly the area allocated, and not a byte more,
+-    are marked as accessible.  Upon freeing the area the A bits are
+-    changed to indicate inaccessibility.</p></li>
+-<li class="listitem"><p>When the stack pointer register (<code class="literal">SP</code>) moves
+-    up or down, A bits are set.  The rule is that the area from
+-    <code class="literal">SP</code> up to the base of the stack is marked as
+-    accessible, and below <code class="literal">SP</code> is inaccessible.  (If
+-    that sounds illogical, bear in mind that the stack grows down, not
+-    up, on almost all Unix systems, including GNU/Linux.)  Tracking
+-    <code class="literal">SP</code> like this has the useful side-effect that the
+-    section of stack used by a function for local variables etc is
+-    automatically marked accessible on function entry and inaccessible
+-    on exit.</p></li>
+-<li class="listitem"><p>When doing system calls, A bits are changed appropriately.
+-    For example, <code class="literal">mmap</code>
+-    magically makes files appear in the process'
+-    address space, so the A bits must be updated if <code class="literal">mmap</code>
+-    succeeds.</p></li>
+-<li class="listitem"><p>Optionally, your program can tell Memcheck about such changes
+-    explicitly, using the client request mechanism described
+-    above.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect2" title="4.5.3. Putting it all together">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.together"></a>4.5.3. Putting it all together</h3></div></div></div>
+-<p>Memcheck's checking machinery can be summarised as
+-follows:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Each byte in memory has 8 associated V (valid-value) bits,
+-    saying whether or not the byte has a defined value, and a single A
+-    (valid-address) bit, saying whether or not the program currently has
+-    the right to read/write that address.  As mentioned above, heavy
+-    use of compression means the overhead is typically around 25%.</p></li>
+-<li class="listitem"><p>When memory is read or written, the relevant A bits are
+-    consulted.  If they indicate an invalid address, Memcheck emits an
+-    Invalid read or Invalid write error.</p></li>
+-<li class="listitem"><p>When memory is read into the CPU's registers, the relevant V
+-    bits are fetched from memory and stored in the simulated CPU.  They
+-    are not consulted.</p></li>
+-<li class="listitem"><p>When a register is written out to memory, the V bits for that
+-    register are written back to memory too.</p></li>
+-<li class="listitem"><p>When values in CPU registers are used to generate a memory
+-    address, or to determine the outcome of a conditional branch, the V
+-    bits for those values are checked, and an error emitted if any of
+-    them are undefined.</p></li>
+-<li class="listitem"><p>When values in CPU registers are used for any other purpose,
+-    Memcheck computes the V bits for the result, but does not check
+-    them.</p></li>
+-<li class="listitem"><p>Once the V bits for a value in the CPU have been checked, they
+-    are then set to indicate validity.  This avoids long chains of
+-    errors.</p></li>
+-<li class="listitem">
+-<p>When values are loaded from memory, Memcheck checks the A bits
+-    for that location and issues an illegal-address warning if needed.
+-    In that case, the V bits loaded are forced to indicate Valid,
+-    despite the location being invalid.</p>
+-<p>This apparently strange choice reduces the amount of confusing
+-    information presented to the user.  It avoids the unpleasant
+-    phenomenon in which memory is read from a place which is both
+-    unaddressable and contains invalid values, and, as a result, you get
+-    not only an invalid-address (read/write) error, but also a
+-    potentially large set of uninitialised-value errors, one for every
+-    time the value is used.</p>
+-<p>There is a hazy boundary case to do with multi-byte loads from
+-    addresses which are partially valid and partially invalid.  See
+-    details of the option <code class="option">--partial-loads-ok</code> for details.
+-    </p>
+-</li>
+-</ul></div>
+-<p>Memcheck intercepts calls to <code class="function">malloc</code>,
+-<code class="function">calloc</code>, <code class="function">realloc</code>,
+-<code class="function">valloc</code>, <code class="function">memalign</code>,
+-<code class="function">free</code>, <code class="computeroutput">new</code>,
+-<code class="computeroutput">new[]</code>,
+-<code class="computeroutput">delete</code> and
+-<code class="computeroutput">delete[]</code>.  The behaviour you get
+-is:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="function">malloc</code>/<code class="function">new</code>/<code class="computeroutput">new[]</code>:
+-    the returned memory is marked as addressable but not having valid
+-    values.  This means you have to write to it before you can read
+-    it.</p></li>
+-<li class="listitem"><p><code class="function">calloc</code>: returned memory is marked both
+-    addressable and valid, since <code class="function">calloc</code> clears
+-    the area to zero.</p></li>
+-<li class="listitem"><p><code class="function">realloc</code>: if the new size is larger than
+-    the old, the new section is addressable but invalid, as with
+-    <code class="function">malloc</code>.  If the new size is smaller, the
+-    dropped-off section is marked as unaddressable.  You may only pass to
+-    <code class="function">realloc</code> a pointer previously issued to you by
+-    <code class="function">malloc</code>/<code class="function">calloc</code>/<code class="function">realloc</code>.</p></li>
+-<li class="listitem"><p><code class="function">free</code>/<code class="computeroutput">delete</code>/<code class="computeroutput">delete[]</code>:
+-    you may only pass to these functions a pointer previously issued
+-    to you by the corresponding allocation function.  Otherwise,
+-    Memcheck complains.  If the pointer is indeed valid, Memcheck
+-    marks the entire area it points at as unaddressable, and places
+-    the block in the freed-blocks-queue.  The aim is to defer as long
+-    as possible reallocation of this block.  Until that happens, all
+-    attempts to access it will elicit an invalid-address error, as you
+-    would hope.</p></li>
+-</ul></div>
+-</div>
+-</div>
+-<div class="sect1" title="4.6. Memcheck Monitor Commands">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.monitor-commands"></a>4.6. Memcheck Monitor Commands</h2></div></div></div>
+-<p>The Memcheck tool provides monitor commands handled by Valgrind's
+-built-in gdbserver (see <a class="xref" href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling" title="3.2.5. Monitor command handling by the Valgrind gdbserver">Monitor command handling by the Valgrind gdbserver</a>).
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p><code class="varname">get_vbits <addr> [<len>]</code>
+-    shows the definedness (V) bits for <len> (default 1) bytes
+-    starting at <addr>.  The definedness of each byte in the
+-    range is given using two hexadecimal digits.  These hexadecimal
+-    digits encode the validity of each bit of the corresponding byte,
+-    using 0 if the bit is defined and 1 if the bit is undefined.
+-    If a byte is not addressable, its validity bits are replaced
+-    by <code class="varname">__</code> (a double underscore).
+-    </p>
+-<p>
+-    In the following example, <code class="varname">string10</code> is an array
+-    of 10 characters, in which the even numbered bytes are
+-    undefined. In the below example, the byte corresponding
+-    to <code class="varname">string10[5]</code> is not addressable.
+-    </p>
+-<pre class="programlisting">
+-(gdb) p &string10
+-$4 = (char (*)[10]) 0x8049e28
+-(gdb) monitor get_vbits 0x8049e28 10
+-ff00ff00 ff__ff00 ff00
+-(gdb) 
+-</pre>
+-<p> The command get_vbits cannot be used with registers. To get
+-    the validity bits of a register, you must start Valgrind with the
+-    option <code class="option">--vgdb-shadow-registers=yes</code>. The validity
+-    bits of a register can be obtained by printing the 'shadow 1'
+-    corresponding register.  In the below x86 example, the register
+-    eax has all its bits undefined, while the register ebx is fully
+-    defined.
+-    </p>
+-<pre class="programlisting">
+-(gdb) p /x $eaxs1
+-$9 = 0xffffffff
+-(gdb) p /x $ebxs1
+-$10 = 0x0
+-(gdb) 
+-</pre>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">make_memory
+-    [noaccess|undefined|defined|Definedifaddressable] <addr>
+-    [<len>]</code> marks the range of <len> (default 1)
+-    bytes at <addr> as having the given status. Parameter
+-    <code class="varname">noaccess</code> marks the range as non-accessible, so
+-    Memcheck will report an error on any access to it.
+-    <code class="varname">undefined</code> or <code class="varname">defined</code> mark
+-    the area as accessible, but Memcheck regards the bytes in it
+-    respectively as having undefined or defined values.
+-    <code class="varname">Definedifaddressable</code> marks as defined, bytes in
+-    the range which are already addressible, but makes no change to
+-    the status of bytes in the range which are not addressible. Note
+-    that the first letter of <code class="varname">Definedifaddressable</code>
+-    is an uppercase D to avoid confusion with <code class="varname">defined</code>.
+-    </p>
+-<p>
+-    In the following example, the first byte of the
+-    <code class="varname">string10</code> is marked as defined:
+-    </p>
+-<pre class="programlisting">
+-(gdb) monitor make_memory defined 0x8049e28  1
+-(gdb) monitor get_vbits 0x8049e28 10
+-0000ff00 ff00ff00 ff00
+-(gdb) 
+-</pre>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">check_memory [addressable|defined] <addr>
+-    [<len>]</code> checks that the range of <len>
+-    (default 1) bytes at <addr> has the specified accessibility.
+-    It then outputs a description of <addr>. In the following
+-    example, a detailed description is available because the
+-    option <code class="option">--read-var-info=yes</code> was given at Valgrind
+-    startup:
+-    </p>
+-<pre class="programlisting">
+-(gdb) monitor check_memory defined 0x8049e28  1
+-Address 0x8049E28 len 1 defined
+-==14698==  Location 0x8049e28 is 0 bytes inside string10[0],
+-==14698==  declared at prog.c:10, in frame #0 of thread 1
+-(gdb) 
+-</pre>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">leak_check [full*|summary]
+-                              [reachable|possibleleak*|definiteleak]
+-                              [increased*|changed|any]
+-                              [unlimited*|limited <max_loss_records_output>]
+-          </code>
+-    performs a leak check. The <code class="varname">*</code> in the arguments
+-    indicates the default values. </p>
+-<p> If the first argument is <code class="varname">summary</code>, only a
+-    summary of the leak search is given; otherwise a full leak report
+-    is produced.  A full leak report gives detailed information for
+-    each leak: the stack trace where the leaked blocks were allocated,
+-    the number of blocks leaked and their total size.  When a full
+-    report is requested, the next two arguments further specify what
+-    kind of leaks to report.  A leak's details are shown if they match
+-    both the second and third argument. A full leak report might
+-    output detailed information for many leaks. The nr of leaks for
+-    which information is output can be controlled using
+-    the <code class="varname">limited</code> argument followed by the maximum nr
+-    of leak records to output. If this maximum is reached, the leak
+-    search  outputs the records with the biggest number of bytes.
+-    </p>
+-<p>The second argument controls what kind of blocks are shown for
+-    a <code class="varname">full</code> leak search.  The
+-    value <code class="varname">definiteleak</code> specifies that only
+-    definitely leaked blocks should be shown.  The
+-    value <code class="varname">possibleleak</code> will also show possibly
+-    leaked blocks (those for which only an interior pointer was
+-    found).  The value
+-    <code class="varname">reachable</code> will show all block categories
+-    (reachable, possibly leaked, definitely leaked).
+-    </p>
+-<p>The third argument controls what kinds of changes are shown
+-    for a <code class="varname">full</code> leak search. The
+-    value <code class="varname">increased</code> specifies that only block
+-    allocation stacks with an increased number of leaked bytes or
+-    blocks since the previous leak check should be shown.  The
+-    value <code class="varname">changed</code> specifies that allocation stacks
+-    with any change since the previous leak check should be shown.
+-    The value <code class="varname">any</code> specifies that all leak entries
+-    should be shown, regardless of any increase or decrease.  When
+-    If <code class="varname">increased</code> or <code class="varname">changed</code> are
+-    specified, the leak report entries will show the delta relative to
+-    the previous leak report.
+-    </p>
+-<p>The following example shows usage of the 
+-    <code class="varname">leak_check</code> monitor command on
+-    the <code class="varname">memcheck/tests/leak-cases.c</code> regression
+-    test. The first command outputs one entry having an increase in
+-    the leaked bytes.  The second command is the same as the first
+-    command, but uses the abbreviated forms accepted by GDB and the
+-    Valgrind gdbserver. It only outputs the summary information, as
+-    there was no increase since the previous leak search.</p>
+-<pre class="programlisting">
+-(gdb) monitor leak_check full possibleleak increased
+-==19520== 16 (+16) bytes in 1 (+1) blocks are possibly lost in loss record 9 of 12
+-==19520==    at 0x40070B4: malloc (vg_replace_malloc.c:263)
+-==19520==    by 0x80484D5: mk (leak-cases.c:52)
+-==19520==    by 0x804855F: f (leak-cases.c:81)
+-==19520==    by 0x80488E0: main (leak-cases.c:107)
+-==19520== 
+-==19520== LEAK SUMMARY:
+-==19520==    definitely lost: 32 (+0) bytes in 2 (+0) blocks
+-==19520==    indirectly lost: 16 (+0) bytes in 1 (+0) blocks
+-==19520==      possibly lost: 32 (+16) bytes in 2 (+1) blocks
+-==19520==    still reachable: 96 (+16) bytes in 6 (+1) blocks
+-==19520==         suppressed: 0 (+0) bytes in 0 (+0) blocks
+-==19520== Reachable blocks (those to which a pointer was found) are not shown.
+-==19520== To see them, add 'reachable any' args to leak_check
+-==19520== 
+-(gdb) mo l
+-==19520== LEAK SUMMARY:
+-==19520==    definitely lost: 32 (+0) bytes in 2 (+0) blocks
+-==19520==    indirectly lost: 16 (+0) bytes in 1 (+0) blocks
+-==19520==      possibly lost: 32 (+0) bytes in 2 (+0) blocks
+-==19520==    still reachable: 96 (+0) bytes in 6 (+0) blocks
+-==19520==         suppressed: 0 (+0) bytes in 0 (+0) blocks
+-==19520== Reachable blocks (those to which a pointer was found) are not shown.
+-==19520== To see them, add 'reachable any' args to leak_check
+-==19520== 
+-(gdb) 
+-</pre>
+-<p>Note that when using Valgrind's gdbserver, it is not
+-    necessary to rerun
+-    with <code class="option">--leak-check=full</code>
+-    <code class="option">--show-reachable=yes</code> to see the reachable
+-    blocks. You can obtain the same information without rerunning by
+-    using the GDB command <code class="computeroutput">monitor leak_check full
+-    reachable any</code> (or, using
+-    abbreviation: <code class="computeroutput">mo l f r a</code>).
+-    </p>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">block_list <loss_record_nr> </code>
+-    shows the list of blocks belonging to <loss_record_nr>.
+-    </p>
+-<p> A leak search merges the allocated blocks in loss records :
+-    a loss record re-groups all blocks having the same state (for
+-    example, Definitely Lost) and the same allocation backtrace.
+-    Each loss record is identified in the leak search result 
+-    by a loss record number.
+-    The <code class="varname">block_list</code> command shows the loss record information
+-    followed by the addresses and sizes of the blocks which have been
+-    merged in the loss record.
+-    </p>
+-<p> If a directly lost block causes some other blocks to be indirectly
+-    lost, the block_list command will also show these indirectly lost blocks.
+-    The indirectly lost blocks will be indented according to the level of indirection
+-    between the directly lost block and the indirectly lost block(s).
+-    Each indirectly lost block is followed by the reference of its loss record.
+-    </p>
+-<p> The block_list command can be used on the results of a leak search as long
+-    as no block has been freed after this leak search: as soon as the program frees
+-    a block, a new leak search is needed before block_list can be used again.
+-    </p>
+-<p>
+-    In the below example, the program leaks a tree structure by losing the pointer to 
+-    the block A (top of the tree).
+-    So, the block A is directly lost, causing an indirect
+-    loss of blocks B to G. The first block_list command shows the loss record of A
+-    (a definitely lost block with address 0x4028028, size 16). The addresses and sizes
+-    of the indirectly lost blocks due to block A are shown below the block A.
+-    The second command shows the details of one of the indirect loss records output
+-    by the first command.
+-    </p>
+-<pre class="programlisting">
+-           A
+-         /   \
+-        B     C
+-       / \   / \ 
+-      D   E F   G
+-</pre>
+-<pre class="programlisting">
+-(gdb) bt
+-#0  main () at leak-tree.c:69
+-(gdb) monitor leak_check full any
+-==19552== 112 (16 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 7
+-==19552==    at 0x40070B4: malloc (vg_replace_malloc.c:263)
+-==19552==    by 0x80484D5: mk (leak-tree.c:28)
+-==19552==    by 0x80484FC: f (leak-tree.c:41)
+-==19552==    by 0x8048856: main (leak-tree.c:63)
+-==19552== 
+-==19552== LEAK SUMMARY:
+-==19552==    definitely lost: 16 bytes in 1 blocks
+-==19552==    indirectly lost: 96 bytes in 6 blocks
+-==19552==      possibly lost: 0 bytes in 0 blocks
+-==19552==    still reachable: 0 bytes in 0 blocks
+-==19552==         suppressed: 0 bytes in 0 blocks
+-==19552== 
+-(gdb) monitor block_list 7
+-==19552== 112 (16 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 7
+-==19552==    at 0x40070B4: malloc (vg_replace_malloc.c:263)
+-==19552==    by 0x80484D5: mk (leak-tree.c:28)
+-==19552==    by 0x80484FC: f (leak-tree.c:41)
+-==19552==    by 0x8048856: main (leak-tree.c:63)
+-==19552== 0x4028028[16]
+-==19552==   0x4028068[16] indirect loss record 1
+-==19552==      0x40280E8[16] indirect loss record 3
+-==19552==      0x4028128[16] indirect loss record 4
+-==19552==   0x40280A8[16] indirect loss record 2
+-==19552==      0x4028168[16] indirect loss record 5
+-==19552==      0x40281A8[16] indirect loss record 6
+-(gdb) mo b 2
+-==19552== 16 bytes in 1 blocks are indirectly lost in loss record 2 of 7
+-==19552==    at 0x40070B4: malloc (vg_replace_malloc.c:263)
+-==19552==    by 0x80484D5: mk (leak-tree.c:28)
+-==19552==    by 0x8048519: f (leak-tree.c:43)
+-==19552==    by 0x8048856: main (leak-tree.c:63)
+-==19552== 0x40280A8[16]
+-==19552==   0x4028168[16] indirect loss record 5
+-==19552==   0x40281A8[16] indirect loss record 6
+-(gdb) 
+-
+-</pre>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">who_points_at <addr> [<len>]</code> 
+-    shows all the locations where a pointer to addr is found.
+-    If len is equal to 1, the command only shows the locations pointing
+-    exactly at addr (i.e. the "start pointers" to addr).
+-    If len is > 1, "interior pointers" pointing at the len first bytes
+-    will also be shown.
+-    </p>
+-<p>The locations searched for are the same as the locations
+-    used in the leak search. So, <code class="varname">who_points_at</code> can a.o.
+-    be used to show why the leak search still can reach a block, or can
+-    search for dangling pointers to a freed block.
+-    Each location pointing at addr (or pointing inside addr if interior pointers
+-    are being searched for) will be described.
+-    </p>
+-<p>In the below example, the pointers to the 'tree block A' (see example
+-    in command <code class="varname">block_list</code>) is shown before the tree was leaked.
+-    The descriptions are detailed as the option <code class="option">--read-var-info=yes</code> 
+-    was given at Valgrind startup. The second call shows the pointers (start and interior
+-    pointers) to block G. The block G (0x40281A8) is reachable via block C (0x40280a8)
+-    and register ECX of tid 1 (tid is the Valgrind thread id).
+-    It is "interior reachable" via the register EBX.
+-    </p>
+-<pre class="programlisting">
+-(gdb) monitor who_points_at 0x4028028
+-==20852== Searching for pointers to 0x4028028
+-==20852== *0x8049e20 points at 0x4028028
+-==20852==  Location 0x8049e20 is 0 bytes inside global var "t"
+-==20852==  declared at leak-tree.c:35
+-(gdb) monitor who_points_at 0x40281A8 16
+-==20852== Searching for pointers pointing in 16 bytes from 0x40281a8
+-==20852== *0x40280ac points at 0x40281a8
+-==20852==  Address 0x40280ac is 4 bytes inside a block of size 16 alloc'd
+-==20852==    at 0x40070B4: malloc (vg_replace_malloc.c:263)
+-==20852==    by 0x80484D5: mk (leak-tree.c:28)
+-==20852==    by 0x8048519: f (leak-tree.c:43)
+-==20852==    by 0x8048856: main (leak-tree.c:63)
+-==20852== tid 1 register ECX points at 0x40281a8
+-==20852== tid 1 register EBX interior points at 2 bytes inside 0x40281a8
+-(gdb)
+-</pre>
+-</li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="4.7. Client Requests">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.clientreqs"></a>4.7. Client Requests</h2></div></div></div>
+-<p>The following client requests are defined in
+-<code class="filename">memcheck.h</code>.
+-See <code class="filename">memcheck.h</code> for exact details of their
+-arguments.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">VALGRIND_MAKE_MEM_NOACCESS</code>,
+-    <code class="varname">VALGRIND_MAKE_MEM_UNDEFINED</code> and
+-    <code class="varname">VALGRIND_MAKE_MEM_DEFINED</code>.
+-    These mark address ranges as completely inaccessible,
+-    accessible but containing undefined data, and accessible and
+-    containing defined data, respectively.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE</code>.
+-    This is just like <code class="varname">VALGRIND_MAKE_MEM_DEFINED</code> but only
+-    affects those bytes that are already addressable.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_CHECK_MEM_IS_ADDRESSABLE</code> and
+-    <code class="varname">VALGRIND_CHECK_MEM_IS_DEFINED</code>: check immediately
+-    whether or not the given address range has the relevant property,
+-    and if not, print an error message.  Also, for the convenience of
+-    the client, returns zero if the relevant property holds; otherwise,
+-    the returned value is the address of the first byte for which the
+-    property is not true.  Always returns 0 when not run on
+-    Valgrind.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_CHECK_VALUE_IS_DEFINED</code>: a quick and easy
+-    way to find out whether Valgrind thinks a particular value
+-    (lvalue, to be precise) is addressable and defined.  Prints an error
+-    message if not.  It has no return value.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_DO_LEAK_CHECK</code>: does a full memory leak
+-    check (like <code class="option">--leak-check=full</code>) right now.
+-    This is useful for incrementally checking for leaks between arbitrary
+-    places in the program's execution.  It has no return value.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_DO_ADDED_LEAK_CHECK</code>: same as
+-   <code class="varname"> VALGRIND_DO_LEAK_CHECK</code> but only shows the
+-    entries for which there was an increase in leaked bytes or leaked
+-    number of blocks since the previous leak search.  It has no return
+-    value.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_DO_CHANGED_LEAK_CHECK</code>: same as
+-    <code class="varname">VALGRIND_DO_LEAK_CHECK</code> but only shows the
+-    entries for which there was an increase or decrease in leaked
+-    bytes or leaked number of blocks since the previous leak search. It
+-    has no return value.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_DO_QUICK_LEAK_CHECK</code>: like
+-    <code class="varname">VALGRIND_DO_LEAK_CHECK</code>, except it produces only a leak
+-    summary (like <code class="option">--leak-check=summary</code>).
+-    It has no return value.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_COUNT_LEAKS</code>: fills in the four
+-    arguments with the number of bytes of memory found by the previous
+-    leak check to be leaked (i.e. the sum of direct leaks and indirect leaks),
+-    dubious, reachable and suppressed.  This is useful in test harness code,
+-    after calling <code class="varname">VALGRIND_DO_LEAK_CHECK</code> or
+-    <code class="varname">VALGRIND_DO_QUICK_LEAK_CHECK</code>.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_COUNT_LEAK_BLOCKS</code>: identical to
+-    <code class="varname">VALGRIND_COUNT_LEAKS</code> except that it returns the
+-    number of blocks rather than the number of bytes in each
+-    category.</p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_GET_VBITS</code> and
+-    <code class="varname">VALGRIND_SET_VBITS</code>: allow you to get and set the
+-    V (validity) bits for an address range.  You should probably only
+-    set V bits that you have got with
+-    <code class="varname">VALGRIND_GET_VBITS</code>.  Only for those who really
+-    know what they are doing.</p></li>
+-<li class="listitem">
+-<p><code class="varname">VALGRIND_CREATE_BLOCK</code> and 
+-    <code class="varname">VALGRIND_DISCARD</code>.  <code class="varname">VALGRIND_CREATE_BLOCK</code>
+-    takes an address, a number of bytes and a character string.  The
+-    specified address range is then associated with that string.  When
+-    Memcheck reports an invalid access to an address in the range, it
+-    will describe it in terms of this block rather than in terms of
+-    any other block it knows about.  Note that the use of this macro
+-    does not actually change the state of memory in any way -- it
+-    merely gives a name for the range.
+-    </p>
+-<p>At some point you may want Memcheck to stop reporting errors
+-    in terms of the block named
+-    by <code class="varname">VALGRIND_CREATE_BLOCK</code>.  To make this
+-    possible, <code class="varname">VALGRIND_CREATE_BLOCK</code> returns a
+-    "block handle", which is a C <code class="varname">int</code> value.  You
+-    can pass this block handle to <code class="varname">VALGRIND_DISCARD</code>.
+-    After doing so, Valgrind will no longer relate addressing errors
+-    in the specified range to the block.  Passing invalid handles to
+-    <code class="varname">VALGRIND_DISCARD</code> is harmless.
+-   </p>
+-</li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="4.8. Memory Pools: describing and working with custom allocators">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.mempools"></a>4.8. Memory Pools: describing and working with custom allocators</h2></div></div></div>
+-<p>Some programs use custom memory allocators, often for performance
+-reasons.  Left to itself, Memcheck is unable to understand the
+-behaviour of custom allocation schemes as well as it understands the
+-standard allocators, and so may miss errors and leaks in your program.  What
+-this section describes is a way to give Memcheck enough of a description of
+-your custom allocator that it can make at least some sense of what is
+-happening.</p>
+-<p>There are many different sorts of custom allocator, so Memcheck
+-attempts to reason about them using a loose, abstract model.  We
+-use the following terminology when describing custom allocation
+-systems:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Custom allocation involves a set of independent "memory pools".
+-    </p></li>
+-<li class="listitem"><p>Memcheck's notion of a a memory pool consists of a single "anchor
+-    address" and a set of non-overlapping "chunks" associated with the
+-    anchor address.</p></li>
+-<li class="listitem"><p>Typically a pool's anchor address is the address of a 
+-    book-keeping "header" structure.</p></li>
+-<li class="listitem"><p>Typically the pool's chunks are drawn from a contiguous
+-    "superblock" acquired through the system
+-    <code class="function">malloc</code> or
+-    <code class="function">mmap</code>.</p></li>
+-</ul></div>
+-<p>Keep in mind that the last two points above say "typically": the
+-Valgrind mempool client request API is intentionally vague about the
+-exact structure of a mempool. There is no specific mention made of
+-headers or superblocks. Nevertheless, the following picture may help
+-elucidate the intention of the terms in the API:</p>
+-<pre class="programlisting">
+-   "pool"
+-   (anchor address)
+-   |
+-   v
+-   +--------+---+
+-   | header | o |
+-   +--------+-|-+
+-              |
+-              v                  superblock
+-              +------+---+--------------+---+------------------+
+-              |      |rzB|  allocation  |rzB|                  |
+-              +------+---+--------------+---+------------------+
+-                         ^              ^
+-                         |              |
+-                       "addr"     "addr"+"size"
+-</pre>
+-<p>
+-Note that the header and the superblock may be contiguous or
+-discontiguous, and there may be multiple superblocks associated with a
+-single header; such variations are opaque to Memcheck. The API
+-only requires that your allocation scheme can present sensible values
+-of "pool", "addr" and "size".</p>
+-<p>
+-Typically, before making client requests related to mempools, a client
+-program will have allocated such a header and superblock for their
+-mempool, and marked the superblock NOACCESS using the
+-<code class="varname">VALGRIND_MAKE_MEM_NOACCESS</code> client request.</p>
+-<p>
+-When dealing with mempools, the goal is to maintain a particular
+-invariant condition: that Memcheck believes the unallocated portions
+-of the pool's superblock (including redzones) are NOACCESS. To
+-maintain this invariant, the client program must ensure that the
+-superblock starts out in that state; Memcheck cannot make it so, since
+-Memcheck never explicitly learns about the superblock of a pool, only
+-the allocated chunks within the pool.</p>
+-<p>
+-Once the header and superblock for a pool are established and properly
+-marked, there are a number of client requests programs can use to
+-inform Memcheck about changes to the state of a mempool:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem">
+-<p>
+-    <code class="varname">VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed)</code>:
+-    This request registers the address <code class="varname">pool</code> as the anchor
+-    address for a memory pool. It also provides a size
+-    <code class="varname">rzB</code>, specifying how large the redzones placed around
+-    chunks allocated from the pool should be. Finally, it provides an
+-    <code class="varname">is_zeroed</code> argument that specifies whether the pool's
+-    chunks are zeroed (more precisely: defined) when allocated.
+-    </p>
+-<p>
+-    Upon completion of this request, no chunks are associated with the
+-    pool.  The request simply tells Memcheck that the pool exists, so that
+-    subsequent calls can refer to it as a pool.
+-    </p>
+-</li>
+-<li class="listitem"><p><code class="varname">VALGRIND_DESTROY_MEMPOOL(pool)</code>:
+-    This request tells Memcheck that a pool is being torn down. Memcheck
+-    then removes all records of chunks associated with the pool, as well
+-    as its record of the pool's existence. While destroying its records of
+-    a mempool, Memcheck resets the redzones of any live chunks in the pool
+-    to NOACCESS.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_MEMPOOL_ALLOC(pool, addr, size)</code>:
+-    This request informs Memcheck that a <code class="varname">size</code>-byte chunk
+-    has been allocated at <code class="varname">addr</code>, and associates the chunk with the
+-    specified
+-    <code class="varname">pool</code>. If the pool was created with nonzero
+-    <code class="varname">rzB</code> redzones, Memcheck will mark the
+-    <code class="varname">rzB</code> bytes before and after the chunk as NOACCESS. If
+-    the pool was created with the <code class="varname">is_zeroed</code> argument set,
+-    Memcheck will mark the chunk as DEFINED, otherwise Memcheck will mark
+-    the chunk as UNDEFINED.
+-    </p></li>
+-<li class="listitem"><p><code class="varname">VALGRIND_MEMPOOL_FREE(pool, addr)</code>:
+-    This request informs Memcheck that the chunk at <code class="varname">addr</code>
+-    should no longer be considered allocated. Memcheck will mark the chunk
+-    associated with <code class="varname">addr</code> as NOACCESS, and delete its
+-    record of the chunk's existence.
+-    </p></li>
+-<li class="listitem">
+-<p><code class="varname">VALGRIND_MEMPOOL_TRIM(pool, addr, size)</code>:
+-    This request trims the chunks associated with <code class="varname">pool</code>.
+-    The request only operates on chunks associated with
+-    <code class="varname">pool</code>. Trimming is formally defined as:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+-<li class="listitem"><p> All chunks entirely inside the range
+-        <code class="varname">addr..(addr+size-1)</code> are preserved.</p></li>
+-<li class="listitem"><p>All chunks entirely outside the range
+-        <code class="varname">addr..(addr+size-1)</code> are discarded, as though
+-        <code class="varname">VALGRIND_MEMPOOL_FREE</code> was called on them. </p></li>
+-<li class="listitem"><p>All other chunks must intersect with the range 
+-        <code class="varname">addr..(addr+size-1)</code>; areas outside the
+-        intersection are marked as NOACCESS, as though they had been
+-        independently freed with
+-        <code class="varname">VALGRIND_MEMPOOL_FREE</code>.</p></li>
+-</ul></div>
+-<p>This is a somewhat rare request, but can be useful in 
+-    implementing the type of mass-free operations common in custom 
+-    LIFO allocators.</p>
+-</li>
+-<li class="listitem">
+-<p><code class="varname">VALGRIND_MOVE_MEMPOOL(poolA, poolB)</code>: This
+-    request informs Memcheck that the pool previously anchored at
+-    address <code class="varname">poolA</code> has moved to anchor address
+-    <code class="varname">poolB</code>.  This is a rare request, typically only needed
+-    if you <code class="function">realloc</code> the header of a mempool.</p>
+-<p>No memory-status bits are altered by this request.</p>
+-</li>
+-<li class="listitem">
+-<p>
+-    <code class="varname">VALGRIND_MEMPOOL_CHANGE(pool, addrA, addrB,
+-    size)</code>: This request informs Memcheck that the chunk
+-    previously allocated at address <code class="varname">addrA</code> within
+-    <code class="varname">pool</code> has been moved and/or resized, and should be
+-    changed to cover the region <code class="varname">addrB..(addrB+size-1)</code>. This
+-    is a rare request, typically only needed if you
+-    <code class="function">realloc</code> a superblock or wish to extend a chunk
+-    without changing its memory-status bits.
+-    </p>
+-<p>No memory-status bits are altered by this request.
+-    </p>
+-</li>
+-<li class="listitem"><p><code class="varname">VALGRIND_MEMPOOL_EXISTS(pool)</code>:
+-    This request informs the caller whether or not Memcheck is currently 
+-    tracking a mempool at anchor address <code class="varname">pool</code>. It
+-    evaluates to 1 when there is a mempool associated with that address, 0
+-    otherwise. This is a rare request, only useful in circumstances when
+-    client code might have lost track of the set of active mempools.
+-    </p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="4.9. Debugging MPI Parallel Programs with Valgrind">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="mc-manual.mpiwrap"></a>4.9. Debugging MPI Parallel Programs with Valgrind</h2></div></div></div>
+-<p>Memcheck supports debugging of distributed-memory applications
+-which use the MPI message passing standard.  This support consists of a
+-library of wrapper functions for the
+-<code class="computeroutput">PMPI_*</code> interface.  When incorporated
+-into the application's address space, either by direct linking or by
+-<code class="computeroutput">LD_PRELOAD</code>, the wrappers intercept
+-calls to <code class="computeroutput">PMPI_Send</code>,
+-<code class="computeroutput">PMPI_Recv</code>, etc.  They then
+-use client requests to inform Memcheck of memory state changes caused
+-by the function being wrapped.  This reduces the number of false
+-positives that Memcheck otherwise typically reports for MPI
+-applications.</p>
+-<p>The wrappers also take the opportunity to carefully check
+-size and definedness of buffers passed as arguments to MPI functions, hence
+-detecting errors such as passing undefined data to
+-<code class="computeroutput">PMPI_Send</code>, or receiving data into a
+-buffer which is too small.</p>
+-<p>Unlike most of the rest of Valgrind, the wrapper library is subject to a
+-BSD-style license, so you can link it into any code base you like.
+-See the top of <code class="computeroutput">mpi/libmpiwrap.c</code>
+-for license details.</p>
+-<div class="sect2" title="4.9.1. Building and installing the wrappers">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.build"></a>4.9.1. Building and installing the wrappers</h3></div></div></div>
+-<p> The wrapper library will be built automatically if possible.
+-Valgrind's configure script will look for a suitable
+-<code class="computeroutput">mpicc</code> to build it with.  This must be
+-the same <code class="computeroutput">mpicc</code> you use to build the
+-MPI application you want to debug.  By default, Valgrind tries
+-<code class="computeroutput">mpicc</code>, but you can specify a
+-different one by using the configure-time option
+-<code class="option">--with-mpicc</code>.  Currently the
+-wrappers are only buildable with
+-<code class="computeroutput">mpicc</code>s which are based on GNU
+-GCC or Intel's C++ Compiler.</p>
+-<p>Check that the configure script prints a line like this:</p>
+-<pre class="programlisting">
+-checking for usable MPI2-compliant mpicc and mpi.h... yes, mpicc
+-</pre>
+-<p>If it says <code class="computeroutput">... no</code>, your
+-<code class="computeroutput">mpicc</code> has failed to compile and link
+-a test MPI2 program.</p>
+-<p>If the configure test succeeds, continue in the usual way with
+-<code class="computeroutput">make</code> and <code class="computeroutput">make
+-install</code>.  The final install tree should then contain
+-<code class="computeroutput">libmpiwrap-<platform>.so</code>.
+-</p>
+-<p>Compile up a test MPI program (eg, MPI hello-world) and try
+-this:</p>
+-<pre class="programlisting">
+-LD_PRELOAD=$prefix/lib/valgrind/libmpiwrap-<platform>.so   \
+-           mpirun [args] $prefix/bin/valgrind ./hello
+-</pre>
+-<p>You should see something similar to the following</p>
+-<pre class="programlisting">
+-valgrind MPI wrappers 31901: Active for pid 31901
+-valgrind MPI wrappers 31901: Try MPIWRAP_DEBUG=help for possible options
+-</pre>
+-<p>repeated for every process in the group.  If you do not see
+-these, there is an build/installation problem of some kind.</p>
+-<p> The MPI functions to be wrapped are assumed to be in an ELF
+-shared object with soname matching
+-<code class="computeroutput">libmpi.so*</code>.  This is known to be
+-correct at least for Open MPI and Quadrics MPI, and can easily be
+-changed if required.</p>
+-</div>
+-<div class="sect2" title="4.9.2. Getting started">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.gettingstarted"></a>4.9.2. Getting started</h3></div></div></div>
+-<p>Compile your MPI application as usual, taking care to link it
+-using the same <code class="computeroutput">mpicc</code> that your
+-Valgrind build was configured with.</p>
+-<p>
+-Use the following basic scheme to run your application on Valgrind with
+-the wrappers engaged:</p>
+-<pre class="programlisting">
+-MPIWRAP_DEBUG=[wrapper-args]                                  \
+-   LD_PRELOAD=$prefix/lib/valgrind/libmpiwrap-<platform>.so   \
+-   mpirun [mpirun-args]                                       \
+-   $prefix/bin/valgrind [valgrind-args]                       \
+-   [application] [app-args]
+-</pre>
+-<p>As an alternative to
+-<code class="computeroutput">LD_PRELOAD</code>ing
+-<code class="computeroutput">libmpiwrap-<platform>.so</code>, you can
+-simply link it to your application if desired.  This should not disturb
+-native behaviour of your application in any way.</p>
+-</div>
+-<div class="sect2" title="4.9.3. Controlling the wrapper library">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.controlling"></a>4.9.3. Controlling the wrapper library</h3></div></div></div>
+-<p>Environment variable
+-<code class="computeroutput">MPIWRAP_DEBUG</code> is consulted at
+-startup.  The default behaviour is to print a starting banner</p>
+-<pre class="programlisting">
+-valgrind MPI wrappers 16386: Active for pid 16386
+-valgrind MPI wrappers 16386: Try MPIWRAP_DEBUG=help for possible options
+-</pre>
+-<p> and then be relatively quiet.</p>
+-<p>You can give a list of comma-separated options in
+-<code class="computeroutput">MPIWRAP_DEBUG</code>.  These are</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="computeroutput">verbose</code>:
+-    show entries/exits of all wrappers.  Also show extra
+-    debugging info, such as the status of outstanding 
+-    <code class="computeroutput">MPI_Request</code>s resulting
+-    from uncompleted <code class="computeroutput">MPI_Irecv</code>s.</p></li>
+-<li class="listitem"><p><code class="computeroutput">quiet</code>: 
+-    opposite of <code class="computeroutput">verbose</code>, only print 
+-    anything when the wrappers want
+-    to report a detected programming error, or in case of catastrophic
+-    failure of the wrappers.</p></li>
+-<li class="listitem"><p><code class="computeroutput">warn</code>: 
+-    by default, functions which lack proper wrappers
+-    are not commented on, just silently
+-    ignored.  This causes a warning to be printed for each unwrapped
+-    function used, up to a maximum of three warnings per function.</p></li>
+-<li class="listitem"><p><code class="computeroutput">strict</code>: 
+-    print an error message and abort the program if 
+-    a function lacking a wrapper is used.</p></li>
+-</ul></div>
+-<p> If you want to use Valgrind's XML output facility
+-(<code class="option">--xml=yes</code>), you should pass
+-<code class="computeroutput">quiet</code> in
+-<code class="computeroutput">MPIWRAP_DEBUG</code> so as to get rid of any
+-extraneous printing from the wrappers.</p>
+-</div>
+-<div class="sect2" title="4.9.4. Functions">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.limitations.functions"></a>4.9.4. Functions</h3></div></div></div>
+-<p>All MPI2 functions except
+-<code class="computeroutput">MPI_Wtick</code>,
+-<code class="computeroutput">MPI_Wtime</code> and
+-<code class="computeroutput">MPI_Pcontrol</code> have wrappers.  The
+-first two are not wrapped because they return a 
+-<code class="computeroutput">double</code>, which Valgrind's
+-function-wrap mechanism cannot handle (but it could easily be
+-extended to do so).  <code class="computeroutput">MPI_Pcontrol</code> cannot be
+-wrapped as it has variable arity: 
+-<code class="computeroutput">int MPI_Pcontrol(const int level, ...)</code></p>
+-<p>Most functions are wrapped with a default wrapper which does
+-nothing except complain or abort if it is called, depending on
+-settings in <code class="computeroutput">MPIWRAP_DEBUG</code> listed
+-above.  The following functions have "real", do-something-useful
+-wrappers:</p>
+-<pre class="programlisting">
+-PMPI_Send PMPI_Bsend PMPI_Ssend PMPI_Rsend
+-
+-PMPI_Recv PMPI_Get_count
+-
+-PMPI_Isend PMPI_Ibsend PMPI_Issend PMPI_Irsend
+-
+-PMPI_Irecv
+-PMPI_Wait PMPI_Waitall
+-PMPI_Test PMPI_Testall
+-
+-PMPI_Iprobe PMPI_Probe
+-
+-PMPI_Cancel
+-
+-PMPI_Sendrecv
+-
+-PMPI_Type_commit PMPI_Type_free
+-
+-PMPI_Pack PMPI_Unpack
+-
+-PMPI_Bcast PMPI_Gather PMPI_Scatter PMPI_Alltoall
+-PMPI_Reduce PMPI_Allreduce PMPI_Op_create
+-
+-PMPI_Comm_create PMPI_Comm_dup PMPI_Comm_free PMPI_Comm_rank PMPI_Comm_size
+-
+-PMPI_Error_string
+-PMPI_Init PMPI_Initialized PMPI_Finalize
+-</pre>
+-<p> A few functions such as
+-<code class="computeroutput">PMPI_Address</code> are listed as
+-<code class="computeroutput">HAS_NO_WRAPPER</code>.  They have no wrapper
+-at all as there is nothing worth checking, and giving a no-op wrapper
+-would reduce performance for no reason.</p>
+-<p> Note that the wrapper library itself can itself generate large
+-numbers of calls to the MPI implementation, especially when walking
+-complex types.  The most common functions called are
+-<code class="computeroutput">PMPI_Extent</code>,
+-<code class="computeroutput">PMPI_Type_get_envelope</code>,
+-<code class="computeroutput">PMPI_Type_get_contents</code>, and
+-<code class="computeroutput">PMPI_Type_free</code>.  </p>
+-</div>
+-<div class="sect2" title="4.9.5. Types">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.limitations.types"></a>4.9.5. Types</h3></div></div></div>
+-<p> MPI-1.1 structured types are supported, and walked exactly.
+-The currently supported combiners are
+-<code class="computeroutput">MPI_COMBINER_NAMED</code>,
+-<code class="computeroutput">MPI_COMBINER_CONTIGUOUS</code>,
+-<code class="computeroutput">MPI_COMBINER_VECTOR</code>,
+-<code class="computeroutput">MPI_COMBINER_HVECTOR</code>
+-<code class="computeroutput">MPI_COMBINER_INDEXED</code>,
+-<code class="computeroutput">MPI_COMBINER_HINDEXED</code> and
+-<code class="computeroutput">MPI_COMBINER_STRUCT</code>.  This should
+-cover all MPI-1.1 types.  The mechanism (function
+-<code class="computeroutput">walk_type</code>) should extend easily to
+-cover MPI2 combiners.</p>
+-<p>MPI defines some named structured types
+-(<code class="computeroutput">MPI_FLOAT_INT</code>,
+-<code class="computeroutput">MPI_DOUBLE_INT</code>,
+-<code class="computeroutput">MPI_LONG_INT</code>,
+-<code class="computeroutput">MPI_2INT</code>,
+-<code class="computeroutput">MPI_SHORT_INT</code>,
+-<code class="computeroutput">MPI_LONG_DOUBLE_INT</code>) which are pairs
+-of some basic type and a C <code class="computeroutput">int</code>.
+-Unfortunately the MPI specification makes it impossible to look inside
+-these types and see where the fields are.  Therefore these wrappers
+-assume the types are laid out as <code class="computeroutput">struct { float val;
+-int loc; }</code> (for
+-<code class="computeroutput">MPI_FLOAT_INT</code>), etc, and act
+-accordingly.  This appears to be correct at least for Open MPI 1.0.2
+-and for Quadrics MPI.</p>
+-<p>If <code class="computeroutput">strict</code> is an option specified 
+-in <code class="computeroutput">MPIWRAP_DEBUG</code>, the application
+-will abort if an unhandled type is encountered.  Otherwise, the 
+-application will print a warning message and continue.</p>
+-<p>Some effort is made to mark/check memory ranges corresponding to
+-arrays of values in a single pass.  This is important for performance
+-since asking Valgrind to mark/check any range, no matter how small,
+-carries quite a large constant cost.  This optimisation is applied to
+-arrays of primitive types (<code class="computeroutput">double</code>,
+-<code class="computeroutput">float</code>,
+-<code class="computeroutput">int</code>,
+-<code class="computeroutput">long</code>, <code class="computeroutput">long
+-long</code>, <code class="computeroutput">short</code>,
+-<code class="computeroutput">char</code>, and <code class="computeroutput">long
+-double</code> on platforms where <code class="computeroutput">sizeof(long
+-double) == 8</code>).  For arrays of all other types, the
+-wrappers handle each element individually and so there can be a very
+-large performance cost.</p>
+-</div>
+-<div class="sect2" title="4.9.6. Writing new wrappers">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.writingwrappers"></a>4.9.6. Writing new wrappers</h3></div></div></div>
+-<p>
+-For the most part the wrappers are straightforward.  The only
+-significant complexity arises with nonblocking receives.</p>
+-<p>The issue is that <code class="computeroutput">MPI_Irecv</code>
+-states the recv buffer and returns immediately, giving a handle
+-(<code class="computeroutput">MPI_Request</code>) for the transaction.
+-Later the user will have to poll for completion with
+-<code class="computeroutput">MPI_Wait</code> etc, and when the
+-transaction completes successfully, the wrappers have to paint the
+-recv buffer.  But the recv buffer details are not presented to
+-<code class="computeroutput">MPI_Wait</code> -- only the handle is.  The
+-library therefore maintains a shadow table which associates
+-uncompleted <code class="computeroutput">MPI_Request</code>s with the
+-corresponding buffer address/count/type.  When an operation completes,
+-the table is searched for the associated address/count/type info, and
+-memory is marked accordingly.</p>
+-<p>Access to the table is guarded by a (POSIX pthreads) lock, so as
+-to make the library thread-safe.</p>
+-<p>The table is allocated with
+-<code class="computeroutput">malloc</code> and never
+-<code class="computeroutput">free</code>d, so it will show up in leak
+-checks.</p>
+-<p>Writing new wrappers should be fairly easy.  The source file is
+-<code class="computeroutput">mpi/libmpiwrap.c</code>.  If possible,
+-find an existing wrapper for a function of similar behaviour to the
+-one you want to wrap, and use it as a starting point.  The wrappers
+-are organised in sections in the same order as the MPI 1.1 spec, to
+-aid navigation.  When adding a wrapper, remember to comment out the
+-definition of the default wrapper in the long list of defaults at the
+-bottom of the file (do not remove it, just comment it out).</p>
+-</div>
+-<div class="sect2" title="4.9.7. What to expect when using the wrappers">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="mc-manual.mpiwrap.whattoexpect"></a>4.9.7. What to expect when using the wrappers</h3></div></div></div>
+-<p>The wrappers should reduce Memcheck's false-error rate on MPI
+-applications.  Because the wrapping is done at the MPI interface,
+-there will still potentially be a large number of errors reported in
+-the MPI implementation below the interface.  The best you can do is
+-try to suppress them.</p>
+-<p>You may also find that the input-side (buffer
+-length/definedness) checks find errors in your MPI use, for example
+-passing too short a buffer to
+-<code class="computeroutput">MPI_Recv</code>.</p>
+-<p>Functions which are not wrapped may increase the false
+-error rate.  A possible approach is to run with
+-<code class="computeroutput">MPI_DEBUG</code> containing
+-<code class="computeroutput">warn</code>.  This will show you functions
+-which lack proper wrappers but which are nevertheless used.  You can
+-then write wrappers for them.
+-</p>
+-<p>A known source of potential false errors are the
+-<code class="computeroutput">PMPI_Reduce</code> family of functions, when
+-using a custom (user-defined) reduction function.  In a reduction
+-operation, each node notionally sends data to a "central point" which
+-uses the specified reduction function to merge the data items into a
+-single item.  Hence, in general, data is passed between nodes and fed
+-to the reduction function, but the wrapper library cannot mark the
+-transferred data as initialised before it is handed to the reduction
+-function, because all that happens "inside" the
+-<code class="computeroutput">PMPI_Reduce</code> call.  As a result you
+-may see false positives reported in your reduction function.</p>
+-</div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="manual-core-adv.html"><< 3. Using and understanding the Valgrind core: Advanced Topics</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="cg-manual.html">5. Cachegrind: a cache and branch-prediction profiler >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/ms-manual.html b/docs/html/ms-manual.html
+deleted file mode 100644
+index 9033d50..0000000
+--- a/docs/html/ms-manual.html
++++ /dev/null
+@@ -1,848 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>9. Massif: a heap profiler</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="drd-manual.html" title="8. DRD: a thread error detector">
+-<link rel="next" href="dh-manual.html" title="10. DHAT: a dynamic heap analysis tool">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="drd-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="dh-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="9. Massif: a heap profiler">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="ms-manual"></a>9. Massif: a heap profiler</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.overview">9.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.using">9.2. Using Massif and ms_print</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.anexample">9.2.1. An Example Program</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.running-massif">9.2.2. Running Massif</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.running-ms_print">9.2.3. Running ms_print</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.theoutputpreamble">9.2.4. The Output Preamble</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.theoutputgraph">9.2.5. The Output Graph</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.thesnapshotdetails">9.2.6. The Snapshot Details</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.forkingprograms">9.2.7. Forking Programs</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.not-measured">9.2.8. Measuring All Memory in a Process</a></span></dt>
+-<dt><span class="sect2"><a href="ms-manual.html#ms-manual.acting">9.2.9. Acting on Massif's Information</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.options">9.3. Massif Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.monitor-commands">9.4. Massif Monitor Commands</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.clientreqs">9.5. Massif Client Requests</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.ms_print-options">9.6. ms_print Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="ms-manual.html#ms-manual.fileformat">9.7. Massif's Output File Format</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=massif</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="9.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.overview"></a>9.1. Overview</h2></div></div></div>
+-<p>Massif is a heap profiler.  It measures how much heap memory your
+-program uses.  This includes both the useful space, and the extra bytes
+-allocated for book-keeping and alignment purposes.  It can also
+-measure the size of your program's stack(s), although it does not do so by
+-default.</p>
+-<p>Heap profiling can help you reduce the amount of memory your program
+-uses.  On modern machines with virtual memory, this provides the following
+-benefits:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>It can speed up your program -- a smaller
+-    program will interact better with your machine's caches and
+-    avoid paging.</p></li>
+-<li class="listitem"><p>If your program uses lots of memory, it will
+-    reduce the chance that it exhausts your machine's swap
+-    space.</p></li>
+-</ul></div>
+-<p>Also, there are certain space leaks that aren't detected by
+-traditional leak-checkers, such as Memcheck's.  That's because
+-the memory isn't ever actually lost -- a pointer remains to it --
+-but it's not in use.  Programs that have leaks like this can
+-unnecessarily increase the amount of memory they are using over
+-time.  Massif can help identify these leaks.</p>
+-<p>Importantly, Massif tells you not only how much heap memory your
+-program is using, it also gives very detailed information that indicates
+-which parts of your program are responsible for allocating the heap memory.
+-</p>
+-</div>
+-<div class="sect1" title="9.2. Using Massif and ms_print">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.using"></a>9.2. Using Massif and ms_print</h2></div></div></div>
+-<p>First off, as for the other Valgrind tools, you should compile with
+-debugging info (the <code class="option">-g</code> option).  It shouldn't
+-matter much what optimisation level you compile your program with, as this
+-is unlikely to affect the heap memory usage.</p>
+-<p>Then, you need to run Massif itself to gather the profiling
+-information, and then run ms_print to present it in a readable way.</p>
+-<div class="sect2" title="9.2.1. An Example Program">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.anexample"></a>9.2.1. An Example Program</h3></div></div></div>
+-<p>An example will make things clear.  Consider the following C program
+-(annotated with line numbers) which allocates a number of different blocks
+-on the heap.</p>
+-<pre class="screen">
+- 1      #include <stdlib.h>
+- 2
+- 3      void g(void)
+- 4      {
+- 5         malloc(4000);
+- 6      }
+- 7
+- 8      void f(void)
+- 9      {
+-10         malloc(2000);
+-11         g();
+-12      }
+-13
+-14      int main(void)
+-15      {
+-16         int i;
+-17         int* a[10];
+-18
+-19         for (i = 0; i < 10; i++) {
+-20            a[i] = malloc(1000);
+-21         }
+-22
+-23         f();
+-24
+-25         g();
+-26
+-27         for (i = 0; i < 10; i++) {
+-28            free(a[i]);
+-29         }
+-30
+-31         return 0;
+-32      }
+-</pre>
+-</div>
+-<div class="sect2" title="9.2.2. Running Massif">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.running-massif"></a>9.2.2. Running Massif</h3></div></div></div>
+-<p>To gather heap profiling information about the program
+-<code class="computeroutput">prog</code>, type:</p>
+-<pre class="screen">
+-valgrind --tool=massif prog
+-</pre>
+-<p>The program will execute (slowly).  Upon completion, no summary
+-statistics are printed to Valgrind's commentary;  all of Massif's profiling
+-data is written to a file.  By default, this file is called
+-<code class="filename">massif.out.<pid></code>, where
+-<code class="filename"><pid></code> is the process ID, although this filename
+-can be changed with the <code class="option">--massif-out-file</code> option.</p>
+-</div>
+-<div class="sect2" title="9.2.3. Running ms_print">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.running-ms_print"></a>9.2.3. Running ms_print</h3></div></div></div>
+-<p>To see the information gathered by Massif in an easy-to-read form, use
+-ms_print.  If the output file's name is
+-<code class="filename">massif.out.12345</code>, type:</p>
+-<pre class="screen">
+-ms_print massif.out.12345</pre>
+-<p>ms_print will produce (a) a graph showing the memory consumption over
+-the program's execution, and (b) detailed information about the responsible
+-allocation sites at various points in the program, including the point of
+-peak memory allocation.  The use of a separate script for presenting the
+-results is deliberate:  it separates the data gathering from its
+-presentation, and means that new methods of presenting the data can be added in
+-the future.</p>
+-</div>
+-<div class="sect2" title="9.2.4. The Output Preamble">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.theoutputpreamble"></a>9.2.4. The Output Preamble</h3></div></div></div>
+-<p>After running this program under Massif, the first part of ms_print's
+-output contains a preamble which just states how the program, Massif and
+-ms_print were each invoked:</p>
+-<pre class="screen">
+---------------------------------------------------------------------------------
+-Command:            example
+-Massif arguments:   (none)
+-ms_print arguments: massif.out.12797
+---------------------------------------------------------------------------------
+-</pre>
+-</div>
+-<div class="sect2" title="9.2.5. The Output Graph">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.theoutputgraph"></a>9.2.5. The Output Graph</h3></div></div></div>
+-<p>The next part is the graph that shows how memory consumption occurred
+-as the program executed:</p>
+-<pre class="screen">
+-    KB
+-19.63^                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                       #
+-     |                                                                      :#
+-     |                                                                      :#
+-     |                                                                      :#
+-   0 +----------------------------------------------------------------------->ki     0                                                                   113.4
+-
+-
+-Number of snapshots: 25
+- Detailed snapshots: [9, 14 (peak), 24]
+-</pre>
+-<p>Why is most of the graph empty, with only a couple of bars at the very
+-end?  By default, Massif uses "instructions executed" as the unit of time.
+-For very short-run programs such as the example, most of the executed
+-instructions involve the loading and dynamic linking of the program.  The
+-execution of <code class="computeroutput">main</code> (and thus the heap
+-allocations) only occur at the very end.  For a short-running program like
+-this, we can use the <code class="option">--time-unit=B</code> option
+-to specify that we want the time unit to instead be the number of bytes
+-allocated/deallocated on the heap and stack(s).</p>
+-<p>If we re-run the program under Massif with this option, and then
+-re-run ms_print, we get this more useful graph:</p>
+-<pre class="screen">
+-19.63^                                               ###                      
+-     |                                               #                        
+-     |                                               #  ::                    
+-     |                                               #  : :::                 
+-     |                                      :::::::::#  : :  ::               
+-     |                                      :        #  : :  : ::             
+-     |                                      :        #  : :  : : :::          
+-     |                                      :        #  : :  : : :  ::        
+-     |                            :::::::::::        #  : :  : : :  : :::     
+-     |                            :         :        #  : :  : : :  : :  ::   
+-     |                        :::::         :        #  : :  : : :  : :  : :: 
+-     |                     @@@:   :         :        #  : :  : : :  : :  : : @
+-     |                   ::@  :   :         :        #  : :  : : :  : :  : : @
+-     |                :::: @  :   :         :        #  : :  : : :  : :  : : @
+-     |              :::  : @  :   :         :        #  : :  : : :  : :  : : @
+-     |            ::: :  : @  :   :         :        #  : :  : : :  : :  : : @
+-     |         :::: : :  : @  :   :         :        #  : :  : : :  : :  : : @
+-     |       :::  : : :  : @  :   :         :        #  : :  : : :  : :  : : @
+-     |    :::: :  : : :  : @  :   :         :        #  : :  : : :  : :  : : @
+-     |  :::  : :  : : :  : @  :   :         :        #  : :  : : :  : :  : : @
+-   0 +----------------------------------------------------------------------->KB     0                                                                   29.48
+-
+-Number of snapshots: 25
+- Detailed snapshots: [9, 14 (peak), 24]
+-</pre>
+-<p>The size of the graph can be changed with ms_print's
+-<code class="option">--x</code> and <code class="option">--y</code> options.  Each vertical bar
+-represents a snapshot, i.e. a measurement of the memory usage at a certain
+-point in time.  If the next snapshot is more than one column away, a
+-horizontal line of characters is drawn from the top of the snapshot to just
+-before the next snapshot column.  The text at the bottom show that 25
+-snapshots were taken for this program, which is one per heap
+-allocation/deallocation, plus a couple of extras.  Massif starts by taking
+-snapshots for every heap allocation/deallocation, but as a program runs for
+-longer, it takes snapshots less frequently.  It also discards older
+-snapshots as the program goes on;  when it reaches the maximum number of
+-snapshots (100 by default, although changeable with the
+-<code class="option">--max-snapshots</code> option) half of them are
+-deleted.  This means that a reasonable number of snapshots are always
+-maintained.</p>
+-<p>Most snapshots are <span class="emphasis"><em>normal</em></span>, and only basic
+-information is recorded for them.  Normal snapshots are represented in the
+-graph by bars consisting of ':' characters.</p>
+-<p>Some snapshots are <span class="emphasis"><em>detailed</em></span>.  Information about
+-where allocations happened are recorded for these snapshots, as we will see
+-shortly.  Detailed snapshots are represented in the graph by bars consisting
+-of '@' characters.  The text at the bottom show that 3 detailed
+-snapshots were taken for this program (snapshots 9, 14 and 24).  By default,
+-every 10th snapshot is detailed, although this can be changed via the
+-<code class="option">--detailed-freq</code> option.</p>
+-<p>Finally, there is at most one <span class="emphasis"><em>peak</em></span> snapshot.  The
+-peak snapshot is a detailed snapshot, and records the point where memory
+-consumption was greatest.  The peak snapshot is represented in the graph by
+-a bar consisting of '#' characters.  The text at the bottom shows
+-that snapshot 14 was the peak.</p>
+-<p>Massif's determination of when the peak occurred can be wrong, for
+-two reasons.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Peak snapshots are only ever taken after a deallocation
+-  happens.  This avoids lots of unnecessary peak snapshot recordings
+-  (imagine what happens if your program allocates a lot of heap blocks in
+-  succession, hitting a new peak every time).  But it means that if your
+-  program never deallocates any blocks, no peak will be recorded.  It also
+-  means that if your program does deallocate blocks but later allocates to a
+-  higher peak without subsequently deallocating, the reported peak will be
+-  too low.
+-  </p></li>
+-<li class="listitem"><p>Even with this behaviour, recording the peak accurately
+-  is slow.  So by default Massif records a peak whose size is within 1% of
+-  the size of the true peak.  This inaccuracy in the peak measurement can be
+-  changed with the <code class="option">--peak-inaccuracy</code> option.</p></li>
+-</ul></div>
+-<p>The following graph is from an execution of Konqueror, the KDE web
+-browser.  It shows what graphs for larger programs look like.</p>
+-<pre class="screen">
+-    MB
+-3.952^                                                                    # 
+-     |                                                                   @#:
+-     |                                                                 :@@#:
+-     |                                                            @@::::@@#: 
+-     |                                                            @ :: :@@#::
+-     |                                                          @@@ :: :@@#::
+-     |                                                       @@:@@@ :: :@@#::
+-     |                                                    :::@ :@@@ :: :@@#::
+-     |                                                    : :@ :@@@ :: :@@#::
+-     |                                                  :@: :@ :@@@ :: :@@#:: 
+-     |                                                @@:@: :@ :@@@ :: :@@#:::
+-     |                           :       ::         ::@@:@: :@ :@@@ :: :@@#:::
+-     |                        :@@:    ::::: ::::@@@:::@@:@: :@ :@@@ :: :@@#:::
+-     |                     ::::@@:  ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |                    @: ::@@:  ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |                    @: ::@@:  ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |                    @: ::@@:::::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |                ::@@@: ::@@:: ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |             :::::@ @: ::@@:: ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-     |           @@:::::@ @: ::@@:: ::: ::::::: @  :::@@:@: :@ :@@@ :: :@@#:::
+-   0 +----------------------------------------------------------------------->Mi
+-     0                                                                   626.4
+-
+-Number of snapshots: 63
+- Detailed snapshots: [3, 4, 10, 11, 15, 16, 29, 33, 34, 36, 39, 41,
+-                      42, 43, 44, 49, 50, 51, 53, 55, 56, 57 (peak)]
+-</pre>
+-<p>Note that the larger size units are KB, MB, GB, etc.  As is typical
+-for memory measurements, these are based on a multiplier of 1024, rather
+-than the standard SI multiplier of 1000.  Strictly speaking, they should be
+-written KiB, MiB, GiB, etc.</p>
+-</div>
+-<div class="sect2" title="9.2.6. The Snapshot Details">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.thesnapshotdetails"></a>9.2.6. The Snapshot Details</h3></div></div></div>
+-<p>Returning to our example, the graph is followed by the detailed
+-information for each snapshot.  The first nine snapshots are normal, so only
+-a small amount of information is recorded for each one:</p>
+-<pre class="screen">
+---------------------------------------------------------------------------------
+-  n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
+---------------------------------------------------------------------------------
+-  0              0                0                0             0            0
+-  1          1,008            1,008            1,000             8            0
+-  2          2,016            2,016            2,000            16            0
+-  3          3,024            3,024            3,000            24            0
+-  4          4,032            4,032            4,000            32            0
+-  5          5,040            5,040            5,000            40            0
+-  6          6,048            6,048            6,000            48            0
+-  7          7,056            7,056            7,000            56            0
+-  8          8,064            8,064            8,000            64            0
+-</pre>
+-<p>Each normal snapshot records several things.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Its number.</p></li>
+-<li class="listitem"><p>The time it was taken. In this case, the time unit is
+-  bytes, due to the use of
+-  <code class="option">--time-unit=B</code>.</p></li>
+-<li class="listitem"><p>The total memory consumption at that point.</p></li>
+-<li class="listitem"><p>The number of useful heap bytes allocated at that point.
+-  This reflects the number of bytes asked for by the
+-  program.</p></li>
+-<li class="listitem">
+-<p>The number of extra heap bytes allocated at that point.
+-  This reflects the number of bytes allocated in excess of what the program
+-  asked for.  There are two sources of extra heap bytes.</p>
+-<p>First, every heap block has administrative bytes associated with it.
+-  The exact number of administrative bytes depends on the details of the
+-  allocator.  By default Massif assumes 8 bytes per block, as can be seen
+-  from the example, but this number can be changed via the
+-  <code class="option">--heap-admin</code> option.</p>
+-<p>Second, allocators often round up the number of bytes asked for to a
+-  larger number, usually 8 or 16.  This is required to ensure that elements
+-  within the block are suitably aligned.  If N bytes are asked for, Massif
+-  rounds N up to the nearest multiple of the value specified by the
+-  <code class="option"><a class="xref" href="manual-core.html#opt.alignment">--alignment</a></code> option.
+-  </p>
+-</li>
+-<li class="listitem"><p>The size of the stack(s).  By default, stack profiling is
+-  off as it slows Massif down greatly.  Therefore, the stack column is zero
+-  in the example.  Stack profiling can be turned on with the
+-  <code class="option">--stacks=yes</code> option.  
+-  
+-  </p></li>
+-</ul></div>
+-<p>The next snapshot is detailed.  As well as the basic counts, it gives
+-an allocation tree which indicates exactly which pieces of code were
+-responsible for allocating heap memory:</p>
+-<pre class="screen">
+-  9          9,072            9,072            9,000            72            0
+-99.21% (9,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+-->99.21% (9,000B) 0x804841A: main (example.c:20)
+-</pre>
+-<p>The allocation tree can be read from the top down.  The first line
+-indicates all heap allocation functions such as <code class="function">malloc</code>
+-and C++ <code class="function">new</code>.  All heap allocations go through these
+-functions, and so all 9,000 useful bytes (which is 99.21% of all allocated
+-bytes) go through them.  But how were <code class="function">malloc</code> and new
+-called?  At this point, every allocation so far has been due to line 20
+-inside <code class="function">main</code>, hence the second line in the tree.  The
+-<code class="option">-></code> indicates that main (line 20) called
+-<code class="function">malloc</code>.</p>
+-<p>Let's see what the subsequent output shows happened next:</p>
+-<pre class="screen">
+---------------------------------------------------------------------------------
+-  n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
+---------------------------------------------------------------------------------
+- 10         10,080           10,080           10,000            80            0
+- 11         12,088           12,088           12,000            88            0
+- 12         16,096           16,096           16,000            96            0
+- 13         20,104           20,104           20,000           104            0
+- 14         20,104           20,104           20,000           104            0
+-99.48% (20,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+-->49.74% (10,000B) 0x804841A: main (example.c:20)
+-| 
+-->39.79% (8,000B) 0x80483C2: g (example.c:5)
+-| ->19.90% (4,000B) 0x80483E2: f (example.c:11)
+-| | ->19.90% (4,000B) 0x8048431: main (example.c:23)
+-| |   
+-| ->19.90% (4,000B) 0x8048436: main (example.c:25)
+-|   
+-->09.95% (2,000B) 0x80483DA: f (example.c:10)
+-  ->09.95% (2,000B) 0x8048431: main (example.c:23)
+-</pre>
+-<p>The first four snapshots are similar to the previous ones.  But then
+-the global allocation peak is reached, and a detailed snapshot (number 14)
+-is taken.  Its allocation tree shows that 20,000B of useful heap memory has
+-been allocated, and the lines and arrows indicate that this is from three
+-different code locations: line 20, which is responsible for 10,000B
+-(49.74%);  line 5, which is responsible for 8,000B (39.79%); and line 10,
+-which is responsible for 2,000B (9.95%).</p>
+-<p>We can then drill down further in the allocation tree.  For example,
+-of the 8,000B asked for by line 5, half of it was due to a call from line
+-11, and half was due to a call from line 25.</p>
+-<p>In short, Massif collates the stack trace of every single allocation
+-point in the program into a single tree, which gives a complete picture at
+-a particular point in time of how and why all heap memory was
+-allocated.</p>
+-<p>Note that the tree entries correspond not to functions, but to
+-individual code locations.  For example, if function <code class="function">A</code>
+-calls <code class="function">malloc</code>, and function <code class="function">B</code> calls
+-<code class="function">A</code> twice, once on line 10 and once on line 11, then
+-the two calls will result in two distinct stack traces in the tree.  In
+-contrast, if <code class="function">B</code> calls <code class="function">A</code> repeatedly
+-from line 15 (e.g. due to a loop), then each of those calls will be
+-represented by the same stack trace in the tree.</p>
+-<p>Note also that each tree entry with children in the example satisfies an
+-invariant: the entry's size is equal to the sum of its children's sizes.
+-For example, the first entry has size 20,000B, and its children have sizes
+-10,000B, 8,000B, and 2,000B.  In general, this invariant almost always
+-holds.  However, in rare circumstances stack traces can be malformed, in
+-which case a stack trace can be a sub-trace of another stack trace.  This
+-means that some entries in the tree may not satisfy the invariant -- the
+-entry's size will be greater than the sum of its children's sizes.  This is
+-not a big problem, but could make the results confusing.  Massif can
+-sometimes detect when this happens;  if it does, it issues a warning:</p>
+-<pre class="screen">
+-Warning: Malformed stack trace detected.  In Massif's output,
+-         the size of an entry's child entries may not sum up
+-         to the entry's size as they normally do.
+-</pre>
+-<p>However, Massif does not detect and warn about every such occurrence.
+-Fortunately, malformed stack traces are rare in practice.</p>
+-<p>Returning now to ms_print's output, the final part is similar:</p>
+-<pre class="screen">
+---------------------------------------------------------------------------------
+-  n        time(B)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)
+---------------------------------------------------------------------------------
+- 15         21,112           19,096           19,000            96            0
+- 16         22,120           18,088           18,000            88            0
+- 17         23,128           17,080           17,000            80            0
+- 18         24,136           16,072           16,000            72            0
+- 19         25,144           15,064           15,000            64            0
+- 20         26,152           14,056           14,000            56            0
+- 21         27,160           13,048           13,000            48            0
+- 22         28,168           12,040           12,000            40            0
+- 23         29,176           11,032           11,000            32            0
+- 24         30,184           10,024           10,000            24            0
+-99.76% (10,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+-->79.81% (8,000B) 0x80483C2: g (example.c:5)
+-| ->39.90% (4,000B) 0x80483E2: f (example.c:11)
+-| | ->39.90% (4,000B) 0x8048431: main (example.c:23)
+-| |   
+-| ->39.90% (4,000B) 0x8048436: main (example.c:25)
+-|   
+-->19.95% (2,000B) 0x80483DA: f (example.c:10)
+-| ->19.95% (2,000B) 0x8048431: main (example.c:23)
+-|   
+-->00.00% (0B) in 1+ places, all below ms_print's threshold (01.00%)
+-</pre>
+-<p>The final detailed snapshot shows how the heap looked at termination.
+-The 00.00% entry represents the code locations for which memory was
+-allocated and then freed (line 20 in this case, the memory for which was
+-freed on line 28).  However, no code location details are given for this
+-entry;  by default, Massif only records the details for code locations
+-responsible for more than 1% of useful memory bytes, and ms_print likewise
+-only prints the details for code locations responsible for more than 1%.
+-The entries that do not meet this threshold are aggregated.  This avoids
+-filling up the output with large numbers of unimportant entries.  The
+-thresholds can be changed with the
+-<code class="option">--threshold</code> option that both Massif and
+-ms_print support.</p>
+-</div>
+-<div class="sect2" title="9.2.7. Forking Programs">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.forkingprograms"></a>9.2.7. Forking Programs</h3></div></div></div>
+-<p>If your program forks, the child will inherit all the profiling data that
+-has been gathered for the parent.</p>
+-<p>If the output file format string (controlled by
+-<code class="option">--massif-out-file</code>) does not contain <code class="option">%p</code>, then
+-the outputs from the parent and child will be intermingled in a single output
+-file, which will almost certainly make it unreadable by ms_print.</p>
+-</div>
+-<div class="sect2" title="9.2.8. Measuring All Memory in a Process">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.not-measured"></a>9.2.8. Measuring All Memory in a Process</h3></div></div></div>
+-<p>
+-It is worth emphasising that by default Massif measures only heap memory, i.e.
+-memory allocated with
+-<code class="function">malloc</code>,
+-<code class="function">calloc</code>,
+-<code class="function">realloc</code>,
+-<code class="function">memalign</code>,
+-<code class="function">new</code>,
+-<code class="function">new[]</code>,
+-and a few other, similar functions.  (And it can optionally measure stack
+-memory, of course.)  This means it does <span class="emphasis"><em>not</em></span> directly
+-measure memory allocated with lower-level system calls such as
+-<code class="function">mmap</code>,
+-<code class="function">mremap</code>, and
+-<code class="function">brk</code>.  
+-</p>
+-<p>
+-Heap allocation functions such as <code class="function">malloc</code> are built on
+-top of these system calls.  For example, when needed, an allocator will
+-typically call <code class="function">mmap</code> to allocate a large chunk of
+-memory, and then hand over pieces of that memory chunk to the client program
+-in response to calls to <code class="function">malloc</code> et al.  Massif directly
+-measures only these higher-level <code class="function">malloc</code> et al calls,
+-not the lower-level system calls.
+-</p>
+-<p>
+-Furthermore, a client program may use these lower-level system calls
+-directly to allocate memory.  By default, Massif does not measure these.  Nor
+-does it measure the size of code, data and BSS segments.  Therefore, the
+-numbers reported by Massif may be significantly smaller than those reported by
+-tools such as <code class="filename">top</code> that measure a program's total size in
+-memory.
+-</p>
+-<p>
+-However, if you wish to measure <span class="emphasis"><em>all</em></span> the memory used by
+-your program, you can use the <code class="option">--pages-as-heap=yes</code>.  When this
+-option is enabled, Massif's normal heap block profiling is replaced by
+-lower-level page profiling.  Every page allocated via
+-<code class="function">mmap</code> and similar system calls is treated as a distinct
+-block.  This means that code, data and BSS segments are all measured, as they
+-are just memory pages.  Even the stack is measured, since it is ultimately
+-allocated (and extended when necessary) via <code class="function">mmap</code>;  for
+-this reason <code class="option">--stacks=yes</code> is not allowed in conjunction with
+-<code class="option">--pages-as-heap=yes</code>.
+-</p>
+-<p>
+-After <code class="option">--pages-as-heap=yes</code> is used, ms_print's output is
+-mostly unchanged.  One difference is that the start of each detailed snapshot
+-says:
+-</p>
+-<pre class="screen">
+-(page allocation syscalls) mmap/mremap/brk, --alloc-fns, etc.
+-</pre>
+-<p>instead of the usual</p>:
+-
+-<pre class="screen">
+-(heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+-</pre>
+-<p>
+-The stack traces in the output may be more difficult to read, and interpreting
+-them may require some detailed understanding of the lower levels of a program
+-like the memory allocators.  But for some programs having the full information
+-about memory usage can be very useful.
+-</p>
+-</div>
+-<div class="sect2" title="9.2.9. Acting on Massif's Information">
+-<div class="titlepage"><div><div><h3 class="title">
+-<a name="ms-manual.acting"></a>9.2.9. Acting on Massif's Information</h3></div></div></div>
+-<p>Massif's information is generally fairly easy to act upon.  The
+-obvious place to start looking is the peak snapshot.</p>
+-<p>It can also be useful to look at the overall shape of the graph, to
+-see if memory usage climbs and falls as you expect;  spikes in the graph
+-might be worth investigating.</p>
+-<p>The detailed snapshots can get quite large.  It is worth viewing them
+-in a very wide window.   It's also a good idea to view them with a text
+-editor.  That makes it easy to scroll up and down while keeping the cursor
+-in a particular column, which makes following the allocation chains easier.
+-</p>
+-</div>
+-</div>
+-<div class="sect1" title="9.3. Massif Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.options"></a>9.3. Massif Command-line Options</h2></div></div></div>
+-<p>Massif-specific command-line options are:</p>
+-<div class="variablelist">
+-<a name="ms.opts.list"></a><dl>
+-<dt>
+-<a name="opt.heap"></a><span class="term">
+-      <code class="option">--heap=<yes|no> [default: yes] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies whether heap profiling should be done.</p></dd>
+-<dt>
+-<a name="opt.heap-admin"></a><span class="term">
+-      <code class="option">--heap-admin=<size> [default: 8] </code>
+-    </span>
+-</dt>
+-<dd><p>If heap profiling is enabled, gives the number of administrative
+-      bytes per block to use.  This should be an estimate of the average,
+-      since it may vary.  For example, the allocator used by
+-      glibc on Linux requires somewhere between 4 to
+-      15 bytes per block, depending on various factors.  That allocator also
+-      requires admin space for freed blocks, but Massif cannot
+-      account for this.</p></dd>
+-<dt>
+-<a name="opt.stacks"></a><span class="term">
+-      <code class="option">--stacks=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Specifies whether stack profiling should be done.  This option
+-      slows Massif down greatly, and so is off by default.  Note that Massif
+-      assumes that the main stack has size zero at start-up.  This is not
+-      true, but doing otherwise accurately is difficult.  Furthermore,
+-      starting at zero better indicates the size of the part of the main
+-      stack that a user program actually has control over.</p></dd>
+-<dt>
+-<a name="opt.pages-as-heap"></a><span class="term">
+-      <code class="option">--pages-as-heap=<yes|no> [default: no] </code>
+-    </span>
+-</dt>
+-<dd><p>Tells Massif to profile memory at the page level rather
+-        than at the malloc'd block level.  See above for details.
+-      </p></dd>
+-<dt>
+-<a name="opt.depth"></a><span class="term">
+-      <code class="option">--depth=<number> [default: 30] </code>
+-    </span>
+-</dt>
+-<dd><p>Maximum depth of the allocation trees recorded for detailed
+-      snapshots.  Increasing it will make Massif run somewhat more slowly,
+-      use more memory, and produce bigger output files.</p></dd>
+-<dt>
+-<a name="opt.alloc-fn"></a><span class="term">
+-      <code class="option">--alloc-fn=<name> </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Functions specified with this option will be treated as though
+-      they were a heap allocation function such as
+-      <code class="function">malloc</code>.  This is useful for functions that are
+-      wrappers to <code class="function">malloc</code> or <code class="function">new</code>,
+-      which can fill up the allocation trees with uninteresting information.
+-      This option can be specified multiple times on the command line, to
+-      name multiple functions.</p>
+-<p>Note that the named function will only be treated this way if it is
+-      the top entry in a stack trace, or just below another function treated
+-      this way.  For example, if you have a function
+-      <code class="function">malloc1</code> that wraps <code class="function">malloc</code>,
+-      and <code class="function">malloc2</code> that wraps
+-      <code class="function">malloc1</code>, just specifying
+-      <code class="option">--alloc-fn=malloc2</code> will have no effect.  You need to
+-      specify <code class="option">--alloc-fn=malloc1</code> as well.  This is a little
+-      inconvenient, but the reason is that checking for allocation functions
+-      is slow, and it saves a lot of time if Massif can stop looking through
+-      the stack trace entries as soon as it finds one that doesn't match
+-      rather than having to continue through all the entries.</p>
+-<p>Note that C++ names are demangled.  Note also that overloaded
+-      C++ names must be written in full.  Single quotes may be necessary to
+-      prevent the shell from breaking them up.  For example:
+-</p>
+-<pre class="screen">
+---alloc-fn='operator new(unsigned, std::nothrow_t const&)'
+-</pre>
+-<p>
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.ignore-fn"></a><span class="term">
+-      <code class="option">--ignore-fn=<name> </code>
+-    </span>
+-</dt>
+-<dd>
+-<p>Any direct heap allocation (i.e. a call to
+-      <code class="function">malloc</code>, <code class="function">new</code>, etc, or a call
+-      to a function named by an <code class="option">--alloc-fn</code>
+-      option) that occurs in a function specified by this option will be
+-      ignored.  This is mostly useful for testing purposes.  This option can
+-      be specified multiple times on the command line, to name multiple
+-      functions.
+-      </p>
+-<p>Any <code class="function">realloc</code> of an ignored block will
+-      also be ignored, even if the <code class="function">realloc</code> call does
+-      not occur in an ignored function.  This avoids the possibility of
+-      negative heap sizes if ignored blocks are shrunk with
+-      <code class="function">realloc</code>.
+-      </p>
+-<p>The rules for writing C++ function names are the same as
+-      for <code class="option">--alloc-fn</code> above.
+-      </p>
+-</dd>
+-<dt>
+-<a name="opt.threshold"></a><span class="term">
+-      <code class="option">--threshold=<m.n> [default: 1.0] </code>
+-    </span>
+-</dt>
+-<dd><p>The significance threshold for heap allocations, as a
+-      percentage of total memory size.  Allocation tree entries that account
+-      for less than this will be aggregated.  Note that this should be
+-      specified in tandem with ms_print's option of the same name.</p></dd>
+-<dt>
+-<a name="opt.peak-inaccuracy"></a><span class="term">
+-      <code class="option">--peak-inaccuracy=<m.n> [default: 1.0] </code>
+-    </span>
+-</dt>
+-<dd><p>Massif does not necessarily record the actual global memory
+-      allocation peak;  by default it records a peak only when the global
+-      memory allocation size exceeds the previous peak by at least 1.0%.
+-      This is because there can be many local allocation peaks along the way,
+-      and doing a detailed snapshot for every one would be expensive and
+-      wasteful, as all but one of them will be later discarded.  This
+-      inaccuracy can be changed (even to 0.0%) via this option, but Massif
+-      will run drastically slower as the number approaches zero.</p></dd>
+-<dt>
+-<a name="opt.time-unit"></a><span class="term">
+-      <code class="option">--time-unit=<i|ms|B> [default: i] </code>
+-    </span>
+-</dt>
+-<dd><p>The time unit used for the profiling.  There are three
+-      possibilities: instructions executed (i), which is good for most
+-      cases; real (wallclock) time (ms, i.e. milliseconds), which is
+-      sometimes useful; and bytes allocated/deallocated on the heap and/or
+-      stack (B), which is useful for very short-run programs, and for
+-      testing purposes, because it is the most reproducible across different
+-      machines.</p></dd>
+-<dt>
+-<a name="opt.detailed-freq"></a><span class="term">
+-      <code class="option">--detailed-freq=<n> [default: 10] </code>
+-    </span>
+-</dt>
+-<dd><p>Frequency of detailed snapshots.  With
+-      <code class="option">--detailed-freq=1</code>, every snapshot is
+-      detailed.</p></dd>
+-<dt>
+-<a name="opt.max-snapshots"></a><span class="term">
+-      <code class="option">--max-snapshots=<n> [default: 100] </code>
+-    </span>
+-</dt>
+-<dd><p>The maximum number of snapshots recorded.  If set to N, for all
+-      programs except very short-running ones, the final number of snapshots
+-      will be between N/2 and N.</p></dd>
+-<dt>
+-<a name="opt.massif-out-file"></a><span class="term">
+-      <code class="option">--massif-out-file=<file> [default: massif.out.%p] </code>
+-    </span>
+-</dt>
+-<dd><p>Write the profile data to <code class="computeroutput">file</code>
+-      rather than to the default output file,
+-      <code class="computeroutput">massif.out.<pid></code>.  The
+-      <code class="option">%p</code> and <code class="option">%q</code> format specifiers can be
+-      used to embed the process ID and/or the contents of an environment
+-      variable in the name, as is the case for the core option
+-      <code class="option"><a class="xref" href="manual-core.html#opt.log-file">--log-file</a></code>.
+-      </p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="9.4. Massif Monitor Commands">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.monitor-commands"></a>9.4. Massif Monitor Commands</h2></div></div></div>
+-<p>The Massif tool provides monitor commands handled by the Valgrind
+-gdbserver (see <a class="xref" href="manual-core-adv.html#manual-core-adv.gdbserver-commandhandling" title="3.2.5. Monitor command handling by the Valgrind gdbserver">Monitor command handling by the Valgrind gdbserver</a>).
+-</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p><code class="varname">snapshot [<filename>]</code> requests
+-    to take a snapshot and save it in the given <filename>
+-    (default massif.vgdb.out).
+-    </p></li>
+-<li class="listitem"><p><code class="varname">detailed_snapshot [<filename>]</code>
+-    requests to take a detailed snapshot and save it in the given
+-    <filename> (default massif.vgdb.out).
+-    </p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="9.5. Massif Client Requests">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.clientreqs"></a>9.5. Massif Client Requests</h2></div></div></div>
+-<p>Massif does not have a <code class="filename">massif.h</code> file, but it does
+-implement two of the core client requests:
+-<code class="function">VALGRIND_MALLOCLIKE_BLOCK</code> and
+-<code class="function">VALGRIND_FREELIKE_BLOCK</code>;  they are described in 
+-<a class="xref" href="manual-core-adv.html#manual-core-adv.clientreq" title="3.1. The Client Request mechanism">The Client Request mechanism</a>.
+-</p>
+-</div>
+-<div class="sect1" title="9.6. ms_print Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.ms_print-options"></a>9.6. ms_print Command-line Options</h2></div></div></div>
+-<p>ms_print's options are:</p>
+-<div class="variablelist">
+-<a name="ms_print.opts.list"></a><dl>
+-<dt><span class="term">
+-      <code class="option">-h --help </code>
+-    </span></dt>
+-<dd><p>Show the help message.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--version </code>
+-    </span></dt>
+-<dd><p>Show the version number.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--threshold=<m.n> [default: 1.0] </code>
+-    </span></dt>
+-<dd><p>Same as Massif's <code class="option">--threshold</code> option, but
+-      applied after profiling rather than during.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--x=<4..1000> [default: 72]</code>
+-    </span></dt>
+-<dd><p>Width of the graph, in columns.</p></dd>
+-<dt><span class="term">
+-      <code class="option">--y=<4..1000> [default: 20] </code>
+-    </span></dt>
+-<dd><p>Height of the graph, in rows.</p></dd>
+-</dl>
+-</div>
+-</div>
+-<div class="sect1" title="9.7. Massif's Output File Format">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.fileformat"></a>9.7. Massif's Output File Format</h2></div></div></div>
+-<p>Massif's file format is plain text (i.e. not binary) and deliberately
+-easy to read for both humans and machines.  Nonetheless, the exact format
+-is not described here.  This is because the format is currently very
+-Massif-specific.  In the future we hope to make the format more general, and
+-thus suitable for possible use with other tools.  Once this has been done,
+-the format will be documented here.</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="drd-manual.html"><< 8. DRD: a thread error detector</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dh-manual.html">10. DHAT: a dynamic heap analysis tool >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/nl-manual.html b/docs/html/nl-manual.html
+deleted file mode 100644
+index 021c720..0000000
+--- a/docs/html/nl-manual.html
++++ /dev/null
+@@ -1,56 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>14. Nulgrind: the minimal Valgrind tool</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="lk-manual.html" title="13. Lackey: an example tool">
+-<link rel="next" href="FAQ.html" title="Valgrind FAQ">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="lk-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="FAQ.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="14. Nulgrind: the minimal Valgrind tool">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="nl-manual"></a>14. Nulgrind: the minimal Valgrind tool</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl><dt><span class="sect1"><a href="nl-manual.html#ms-manual.overview">14.1. Overview</a></span></dt></dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=none</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="14.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="ms-manual.overview"></a>14.1. Overview</h2></div></div></div>
+-<p>Nulgrind is the simplest possible Valgrind tool.  It performs no
+-instrumentation or analysis of a program, just runs it normally.  It is
+-mainly of use for Valgrind's developers for debugging and regression
+-testing.</p>
+-<p>Nonetheless you can run programs with Nulgrind.  They will run
+-roughly 5 times more slowly than normal, for no useful effect.  Note
+-that you need to use the option <code class="option">--tool=none</code> to run
+-Nulgrind (ie. not <code class="option">--tool=nulgrind</code>).</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="lk-manual.html"><< 13. Lackey: an example tool</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="FAQ.html">Valgrind FAQ >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/quick-start.html b/docs/html/quick-start.html
+deleted file mode 100644
+index 7cb72b4..0000000
+--- a/docs/html/quick-start.html
++++ /dev/null
+@@ -1,203 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>The Valgrind Quick Start Guide</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="QuickStart.html" title="The Valgrind Quick Start Guide">
+-<link rel="prev" href="QuickStart.html" title="The Valgrind Quick Start Guide">
+-<link rel="next" href="manual.html" title="Valgrind User Manual">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="QuickStart.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="QuickStart.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">The Valgrind Quick Start Guide</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="article" title="The Valgrind Quick Start Guide">
+-<div class="titlepage">
+-<div><div><h2 class="title">
+-<a name="quick-start"></a>The Valgrind Quick Start Guide</h2></div></div>
+-<hr>
+-</div>
+-<div class="sect1" title="1. Introduction">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.intro"></a>1. Introduction</h2></div></div></div>
+-<p>The Valgrind tool suite provides a number of debugging and
+-profiling tools that help you make your programs faster and more correct.
+-The most popular of these tools is called Memcheck.  It can detect many
+-memory-related errors that are common in C and C++ programs and that can
+-lead to crashes and unpredictable behaviour.</p>
+-<p>The rest of this guide gives the minimum information you need to start
+-detecting memory errors in your program with Memcheck.  For full
+-documentation of Memcheck and the other tools, please read the User Manual.
+-</p>
+-</div>
+-<div class="sect1" title="2. Preparing your program">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.prepare"></a>2. Preparing your program</h2></div></div></div>
+-<p>Compile your program with <code class="option">-g</code> to include debugging
+-information so that Memcheck's error messages include exact line
+-numbers.  Using <code class="option">-O0</code> is also a good
+-idea, if you can tolerate the slowdown.  With
+-<code class="option">-O1</code> line numbers in error messages can
+-be inaccurate, although generally speaking running Memcheck on code compiled
+-at <code class="option">-O1</code> works fairly well, and the speed improvement
+-compared to running <code class="option">-O0</code> is quite significant.
+-Use of
+-<code class="option">-O2</code> and above is not recommended as
+-Memcheck occasionally reports uninitialised-value errors which don't
+-really exist.</p>
+-</div>
+-<div class="sect1" title="3. Running your program under Memcheck">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.mcrun"></a>3. Running your program under Memcheck</h2></div></div></div>
+-<p>If you normally run your program like this:</p>
+-<pre class="programlisting">  myprog arg1 arg2
+-</pre>
+-<p>Use this command line:</p>
+-<pre class="programlisting">  valgrind --leak-check=yes myprog arg1 arg2
+-</pre>
+-<p>Memcheck is the default tool.  The <code class="option">--leak-check</code>
+-option turns on the detailed memory leak detector.</p>
+-<p>Your program will run much slower (eg. 20 to 30 times) than
+-normal, and use a lot more memory.  Memcheck will issue messages about
+-memory errors and leaks that it detects.</p>
+-</div>
+-<div class="sect1" title="4. Interpreting Memcheck's output">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.interpret"></a>4. Interpreting Memcheck's output</h2></div></div></div>
+-<p>Here's an example C program, in a file called a.c, with a memory error
+-and a memory leak.</p>
+-<pre class="programlisting">
+-  #include <stdlib.h>
+-
+-  void f(void)
+-  {
+-     int* x = malloc(10 * sizeof(int));
+-     x[10] = 0;        // problem 1: heap block overrun
+-  }                    // problem 2: memory leak -- x not freed
+-
+-  int main(void)
+-  {
+-     f();
+-     return 0;
+-  }
+-</pre>
+-<p>Most error messages look like the following, which describes
+-problem 1, the heap block overrun:</p>
+-<pre class="programlisting">
+-  ==19182== Invalid write of size 4
+-  ==19182==    at 0x804838F: f (example.c:6)
+-  ==19182==    by 0x80483AB: main (example.c:11)
+-  ==19182==  Address 0x1BA45050 is 0 bytes after a block of size 40 alloc'd
+-  ==19182==    at 0x1B8FF5CD: malloc (vg_replace_malloc.c:130)
+-  ==19182==    by 0x8048385: f (example.c:5)
+-  ==19182==    by 0x80483AB: main (example.c:11)
+-</pre>
+-<p>Things to notice:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>There is a lot of information in each error message; read it
+-   carefully.</p></li>
+-<li class="listitem"><p>The 19182 is the process ID;  it's usually unimportant.</p></li>
+-<li class="listitem"><p>The first line ("Invalid write...") tells you what kind of
+-   error it is.  Here, the program wrote to some memory it should not
+-   have due to a heap block overrun.</p></li>
+-<li class="listitem"><p>Below the first line is a stack trace telling you where the
+-    problem occurred.  Stack traces can get quite large, and be
+-    confusing, especially if you are using the C++ STL.  Reading them
+-    from the bottom up can help.  If the stack trace is not big enough,
+-    use the <code class="option">--num-callers</code> option to make it
+-    bigger.</p></li>
+-<li class="listitem"><p>The code addresses (eg. 0x804838F) are usually unimportant, but
+-   occasionally crucial for tracking down weirder bugs.</p></li>
+-<li class="listitem"><p>Some error messages have a second component which describes
+-    the memory address involved.  This one shows that the written memory
+-    is just past the end of a block allocated with malloc() on line 5 of
+-    example.c.</p></li>
+-</ul></div>
+-<p>It's worth fixing errors in the order they are reported, as
+-later errors can be caused by earlier errors.  Failing to do this is a
+-common cause of difficulty with Memcheck.</p>
+-<p>Memory leak messages look like this:</p>
+-<pre class="programlisting">
+-  ==19182== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1
+-  ==19182==    at 0x1B8FF5CD: malloc (vg_replace_malloc.c:130)
+-  ==19182==    by 0x8048385: f (a.c:5)
+-  ==19182==    by 0x80483AB: main (a.c:11)
+-</pre>
+-<p>The stack trace tells you where the leaked memory was allocated.
+-Memcheck cannot tell you why the memory leaked, unfortunately.
+-(Ignore the "vg_replace_malloc.c", that's an implementation
+-detail.)</p>
+-<p>There are several kinds of leaks; the two most important
+-categories are:</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>"definitely lost": your program is leaking memory -- fix
+-    it!</p></li>
+-<li class="listitem"><p>"probably lost": your program is leaking memory, unless you're
+-    doing funny things with pointers (such as moving them to point to
+-    the middle of a heap block).</p></li>
+-</ul></div>
+-<p>Memcheck also reports uses of uninitialised values, most commonly with
+-the message "Conditional jump or move depends on uninitialised
+-value(s)".  It can be difficult to determine the root cause of these errors.
+-Try using the <code class="option">--track-origins=yes</code> to get extra information.
+-This makes Memcheck run slower, but the extra information you get often
+-saves a lot of time figuring out where the uninitialised values are coming
+-from.</p>
+-<p>If you don't understand an error message, please consult
+-<a class="xref" href="mc-manual.html#mc-manual.errormsgs" title="4.2. Explanation of error messages from Memcheck">Explanation of error messages from Memcheck</a> in the <a class="xref" href="manual.html" title="Valgrind User Manual">Valgrind User Manual</a>
+-which has examples of all the error messages Memcheck produces.</p>
+-</div>
+-<div class="sect1" title="5. Caveats">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.caveats"></a>5. Caveats</h2></div></div></div>
+-<p>Memcheck is not perfect;  it occasionally produces false positives,
+-and there are mechanisms for suppressing these (see 
+-<a class="xref" href="manual-core.html#manual-core.suppress" title="2.5. Suppressing errors">Suppressing errors</a> in the <a class="xref" href="manual.html" title="Valgrind User Manual">Valgrind User Manual</a>).
+-However, it is typically right 99% of the time, so you should be wary of
+-ignoring its error messages.  After all, you wouldn't ignore warning
+-messages produced by a compiler, right?  The suppression mechanism is
+-also useful if Memcheck is reporting errors in library code that you
+-cannot change.  The default suppression set hides a lot of these, but you
+-may come across more.</p>
+-<p>Memcheck cannot detect every memory error your program has.
+-For example, it can't detect out-of-range reads or writes to arrays
+-that are allocated statically or on the stack.  But it should detect many
+-errors that could crash your program (eg. cause a segmentation
+-fault).</p>
+-<p>Try to make your program so clean that Memcheck reports no
+-errors.  Once you achieve this state, it is much easier to see when
+-changes to the program cause Memcheck to report new errors.
+-Experience from several years of Memcheck use shows that it is
+-possible to make even huge programs run Memcheck-clean.  For example,
+-large parts of KDE, OpenOffice.org and Firefox are Memcheck-clean, or very
+-close to it.</p>
+-</div>
+-<div class="sect1" title="6. More information">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="quick-start.info"></a>6. More information</h2></div></div></div>
+-<p>Please consult the <a class="xref" href="FAQ.html" title="Valgrind FAQ">Valgrind FAQ</a> and the 
+-<a class="xref" href="manual.html" title="Valgrind User Manual">Valgrind User Manual</a>, which have much more information.  Note that
+-the other tools in the Valgrind distribution can be invoked with the
+-<code class="option">--tool</code> option.</p>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="QuickStart.html"><< The Valgrind Quick Start Guide</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="QuickStart.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="manual.html">Valgrind User Manual >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/sg-manual.html b/docs/html/sg-manual.html
+deleted file mode 100644
+index 4905bf2..0000000
+--- a/docs/html/sg-manual.html
++++ /dev/null
+@@ -1,250 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>11. SGCheck: an experimental stack and global array overrun detector</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="manual.html" title="Valgrind User Manual">
+-<link rel="prev" href="dh-manual.html" title="10. DHAT: a dynamic heap analysis tool">
+-<link rel="next" href="bbv-manual.html" title="12. BBV: an experimental basic block vector generation tool">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="dh-manual.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="manual.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind User Manual</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="bbv-manual.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="chapter" title="11. SGCheck: an experimental stack and global array overrun detector">
+-<div class="titlepage"><div><div><h2 class="title">
+-<a name="sg-manual"></a>11. SGCheck: an experimental stack and global array overrun detector</h2></div></div></div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.overview">11.1. Overview</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.options">11.2. SGCheck Command-line Options</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.how-works.sg-checks">11.3. How SGCheck Works</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.cmp-w-memcheck">11.4. Comparison with Memcheck</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.limitations">11.5. Limitations</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.todo-user-visible">11.6. Still To Do: User-visible Functionality</a></span></dt>
+-<dt><span class="sect1"><a href="sg-manual.html#sg-manual.todo-implementation">11.7. Still To Do: Implementation Tidying</a></span></dt>
+-</dl>
+-</div>
+-<p>To use this tool, you must specify
+-<code class="option">--tool=exp-sgcheck</code> on the Valgrind
+-command line.</p>
+-<div class="sect1" title="11.1. Overview">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.overview"></a>11.1. Overview</h2></div></div></div>
+-<p>SGCheck is a tool for finding overruns of stack and global
+-arrays.  It works by using a heuristic approach derived from an
+-observation about the likely forms of stack and global array accesses.
+-</p>
+-</div>
+-<div class="sect1" title="11.2. SGCheck Command-line Options">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.options"></a>11.2. SGCheck Command-line Options</h2></div></div></div>
+-<p>There are no SGCheck-specific command-line options at present.</p>
+-</div>
+-<div class="sect1" title="11.3. How SGCheck Works">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.how-works.sg-checks"></a>11.3. How SGCheck Works</h2></div></div></div>
+-<p>When a source file is compiled
+-with <code class="option">-g</code>, the compiler attaches DWARF3
+-debugging information which describes the location of all stack and
+-global arrays in the file.</p>
+-<p>Checking of accesses to such arrays would then be relatively
+-simple, if the compiler could also tell us which array (if any) each
+-memory referencing instruction was supposed to access.  Unfortunately
+-the DWARF3 debugging format does not provide a way to represent such
+-information, so we have to resort to a heuristic technique to
+-approximate it.  The key observation is that
+-   <span class="emphasis"><em>
+-   if a memory referencing instruction accesses inside a stack or
+-   global array once, then it is highly likely to always access that
+-   same array</em></span>.</p>
+-<p>To see how this might be useful, consider the following buggy
+-fragment:</p>
+-<pre class="programlisting">
+-   { int i, a[10];  // both are auto vars
+-     for (i = 0; i <= 10; i++)
+-        a[i] = 42;
+-   }
+-</pre>
+-<p>At run time we will know the precise address
+-of <code class="computeroutput">a[]</code> on the stack, and so we can
+-observe that the first store resulting from <code class="computeroutput">a[i] =
+-42</code> writes <code class="computeroutput">a[]</code>, and
+-we will (correctly) assume that that instruction is intended always to
+-access <code class="computeroutput">a[]</code>.  Then, on the 11th
+-iteration, it accesses somewhere else, possibly a different local,
+-possibly an un-accounted for area of the stack (eg, spill slot), so
+-SGCheck reports an error.</p>
+-<p>There is an important caveat.</p>
+-<p>Imagine a function such as <code class="function">memcpy</code>, which is used
+-to read and write many different areas of memory over the lifetime of the
+-program.  If we insist that the read and write instructions in its memory
+-copying loop only ever access one particular stack or global variable, we
+-will be flooded with errors resulting from calls to
+-<code class="function">memcpy</code>.</p>
+-<p>To avoid this problem, SGCheck instantiates fresh likely-target
+-records for each entry to a function, and discards them on exit.  This
+-allows detection of cases where (e.g.) <code class="function">memcpy</code>
+-overflows its source or destination buffers for any specific call, but
+-does not carry any restriction from one call to the next.  Indeed,
+-multiple threads may make multiple simultaneous calls to
+-(e.g.) <code class="function">memcpy</code> without mutual interference.</p>
+-</div>
+-<div class="sect1" title="11.4. Comparison with Memcheck">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.cmp-w-memcheck"></a>11.4. Comparison with Memcheck</h2></div></div></div>
+-<p>SGCheck and Memcheck are complementary: their capabilities do
+-not overlap.  Memcheck performs bounds checks and use-after-free
+-checks for heap arrays.  It also finds uses of uninitialised values
+-created by heap or stack allocations.  But it does not perform bounds
+-checking for stack or global arrays.</p>
+-<p>SGCheck, on the other hand, does do bounds checking for stack or
+-global arrays, but it doesn't do anything else.</p>
+-</div>
+-<div class="sect1" title="11.5. Limitations">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.limitations"></a>11.5. Limitations</h2></div></div></div>
+-<p>This is an experimental tool, which relies rather too heavily on some
+-not-as-robust-as-I-would-like assumptions on the behaviour of correct
+-programs.  There are a number of limitations which you should be aware
+-of.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>False negatives (missed errors): it follows from the
+-   description above (<a class="xref" href="sg-manual.html#sg-manual.how-works.sg-checks" title="11.3. How SGCheck Works">How SGCheck Works</a>)
+-   that the first access by a memory referencing instruction to a
+-   stack or global array creates an association between that
+-   instruction and the array, which is checked on subsequent accesses
+-   by that instruction, until the containing function exits.  Hence,
+-   the first access by an instruction to an array (in any given
+-   function instantiation) is not checked for overrun, since SGCheck
+-   uses that as the "example" of how subsequent accesses should
+-   behave.</p></li>
+-<li class="listitem">
+-<p>False positives (false errors): similarly, and more serious,
+-   it is clearly possible to write legitimate pieces of code which
+-   break the basic assumption upon which the checking algorithm
+-   depends.  For example:</p>
+-<pre class="programlisting">
+-  { int a[10], b[10], *p, i;
+-    for (i = 0; i < 10; i++) {
+-       p = /* arbitrary condition */  ? &a[i]  : &b[i];
+-       *p = 42;
+-    }
+-  }
+-</pre>
+-<p>In this case the store sometimes
+-   accesses <code class="computeroutput">a[]</code> and
+-   sometimes <code class="computeroutput">b[]</code>, but in no cases is
+-   the addressed array overrun.  Nevertheless the change in target
+-   will cause an error to be reported.</p>
+-<p>It is hard to see how to get around this problem.  The only
+-   mitigating factor is that such constructions appear very rare, at
+-   least judging from the results using the tool so far.  Such a
+-   construction appears only once in the Valgrind sources (running
+-   Valgrind on Valgrind) and perhaps two or three times for a start
+-   and exit of Firefox.  The best that can be done is to suppress the
+-   errors.</p>
+-</li>
+-<li class="listitem"><p>Performance: SGCheck has to read all of
+-   the DWARF3 type and variable information on the executable and its
+-   shared objects.  This is computationally expensive and makes
+-   startup quite slow.  You can expect debuginfo reading time to be in
+-   the region of a minute for an OpenOffice sized application, on a
+-   2.4 GHz Core 2 machine.  Reading this information also requires a
+-   lot of memory.  To make it viable, SGCheck goes to considerable
+-   trouble to compress the in-memory representation of the DWARF3
+-   data, which is why the process of reading it appears slow.</p></li>
+-<li class="listitem"><p>Performance: SGCheck runs slower than Memcheck.  This is
+-   partly due to a lack of tuning, but partly due to algorithmic
+-   difficulties.  The
+-   stack and global checks can sometimes require a number of range
+-   checks per memory access, and these are difficult to short-circuit,
+-   despite considerable efforts having been made.  A
+-   redesign and reimplementation could potentially make it much faster.
+-   </p></li>
+-<li class="listitem">
+-<p>Coverage: Stack and global checking is fragile.  If a shared
+-   object does not have debug information attached, then SGCheck will
+-   not be able to determine the bounds of any stack or global arrays
+-   defined within that shared object, and so will not be able to check
+-   accesses to them.  This is true even when those arrays are accessed
+-   from some other shared object which was compiled with debug
+-   info.</p>
+-<p>At the moment SGCheck accepts objects lacking debuginfo
+-   without comment.  This is dangerous as it causes SGCheck to
+-   silently skip stack and global checking for such objects.  It would
+-   be better to print a warning in such circumstances.</p>
+-</li>
+-<li class="listitem"><p>Coverage: SGCheck does not check whether the the areas read
+-   or written by system calls do overrun stack or global arrays.  This
+-   would be easy to add.</p></li>
+-<li class="listitem"><p>Platforms: the stack/global checks won't work properly on
+-   PowerPC, ARM or S390X platforms, only on X86 and AMD64 targets.
+-   That's because the stack and global checking requires tracking
+-   function calls and exits reliably, and there's no obvious way to do
+-   it on ABIs that use a link register for function returns.
+-   </p></li>
+-<li class="listitem"><p>Robustness: related to the previous point.  Function
+-   call/exit tracking for X86 and AMD64 is believed to work properly
+-   even in the presence of longjmps within the same stack (although
+-   this has not been tested).  However, code which switches stacks is
+-   likely to cause breakage/chaos.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="11.6. Still To Do: User-visible Functionality">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.todo-user-visible"></a>11.6. Still To Do: User-visible Functionality</h2></div></div></div>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p>Extend system call checking to work on stack and global arrays.</p></li>
+-<li class="listitem"><p>Print a warning if a shared object does not have debug info
+-   attached, or if, for whatever reason, debug info could not be
+-   found, or read.</p></li>
+-<li class="listitem"><p>Add some heuristic filtering that removes obvious false
+-     positives.  This would be easy to do.  For example, an access
+-     transition from a heap to a stack object almost certainly isn't a
+-     bug and so should not be reported to the user.</p></li>
+-</ul></div>
+-</div>
+-<div class="sect1" title="11.7. Still To Do: Implementation Tidying">
+-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+-<a name="sg-manual.todo-implementation"></a>11.7. Still To Do: Implementation Tidying</h2></div></div></div>
+-<p>Items marked CRITICAL are considered important for correctness:
+-non-fixage of them is liable to lead to crashes or assertion failures
+-in real use.</p>
+-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+-<li class="listitem"><p> sg_main.c: Redesign and reimplement the basic checking
+-   algorithm.  It could be done much faster than it is -- the current
+-   implementation isn't very good.
+-   </p></li>
+-<li class="listitem"><p> sg_main.c: Improve the performance of the stack / global
+-   checks by doing some up-front filtering to ignore references in
+-   areas which "obviously" can't be stack or globals.  This will
+-   require using information that m_aspacemgr knows about the address
+-   space layout.</p></li>
+-<li class="listitem"><p>sg_main.c: fix compute_II_hash to make it a bit more sensible
+-   for ppc32/64 targets (except that sg_ doesn't work on ppc32/64
+-   targets, so this is a bit academic at the moment).</p></li>
+-</ul></div>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="dh-manual.html"><< 10. DHAT: a dynamic heap analysis tool</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="manual.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="bbv-manual.html">12. BBV: an experimental basic block vector generation tool >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/tech-docs.html b/docs/html/tech-docs.html
+deleted file mode 100644
+index 2244c16..0000000
+--- a/docs/html/tech-docs.html
++++ /dev/null
+@@ -1,98 +0,0 @@
+-<html>
+-<head>
+-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+-<title>Valgrind Technical Documentation</title>
+-<link rel="stylesheet" href="vg_basic.css" type="text/css">
+-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+-<link rel="home" href="index.html" title="Valgrind Documentation">
+-<link rel="up" href="index.html" title="Valgrind Documentation">
+-<link rel="prev" href="faq.html" title="Valgrind Frequently Asked Questions">
+-<link rel="next" href="design-impl.html" title="1. The Design and Implementation of Valgrind">
+-</head>
+-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+-<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
+-<td width="22px" align="center" valign="middle"><a accesskey="p" href="faq.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
+-<td width="25px" align="center" valign="middle"><a accesskey="u" href="index.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
+-<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
+-<th align="center" valign="middle">Valgrind Documentation</th>
+-<td width="22px" align="center" valign="middle"><a accesskey="n" href="design-impl.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
+-</tr></table></div>
+-<div class="book" title="Valgrind Technical Documentation">
+-<div class="titlepage">
+-<div>
+-<div><h1 class="title">
+-<a name="tech-docs"></a>Valgrind Technical Documentation</h1></div>
+-<div><p class="releaseinfo">Release 3.8.0 10 August 2012</p></div>
+-<div><p class="copyright">Copyright © 2000-2012 <a class="ulink" href="http://www.valgrind.org/info/developers.html" target="_top">Valgrind Developers</a></p></div>
+-<div><div class="legalnotice" title="Legal Notice">
+-<a name="id661486"></a><p>Email: <a class="ulink" href="mailto:valgrind at valgrind.org" target="_top">valgrind at valgrind.org</a></p>
+-</div></div>
+-</div>
+-<hr>
+-</div>
+-<div class="toc">
+-<p><b>Table of Contents</b></p>
+-<dl>
+-<dt><span class="chapter"><a href="design-impl.html">1. The Design and Implementation of Valgrind</a></span></dt>
+-<dt><span class="chapter"><a href="manual-writing-tools.html">2. Writing a New Valgrind Tool</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.intro">2.1. Introduction</a></span></dt>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.writingatool">2.2. Basics</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.howtoolswork">2.2.1. How tools work</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.gettingcode">2.2.2. Getting the code</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.gettingstarted">2.2.3. Getting started</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.writingcode">2.2.4. Writing the code</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.init">2.2.5. Initialisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.instr">2.2.6. Instrumentation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.fini">2.2.7. Finalisation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.otherinfo">2.2.8. Other Important Information</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.advtopics">2.3. Advanced Topics</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.advice">2.3.1. Debugging Tips</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.suppressions">2.3.2. Suppressions</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.docs">2.3.3. Documentation</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.regtests">2.3.4. Regression Tests</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.profiling">2.3.5. Profiling</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.mkhackery">2.3.6. Other Makefile Hackery</a></span></dt>
+-<dt><span class="sect2"><a href="manual-writing-tools.html#manual-writing-tools.ifacever">2.3.7. The Core/tool Interface</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="manual-writing-tools.html#manual-writing-tools.finalwords">2.4. Final Words</a></span></dt>
+-</dl></dd>
+-<dt><span class="chapter"><a href="cl-format.html">3. Callgrind Format Specification</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect1"><a href="cl-format.html#cl-format.overview">3.1. Overview</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.basics">3.1.1. Basic Structure</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.example1">3.1.2. Simple Example</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.associations">3.1.3. Associations</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.example2">3.1.4. Extended Example</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.compression1">3.1.5. Name Compression</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.compression2">3.1.6. Subposition Compression</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.overview.misc">3.1.7. Miscellaneous</a></span></dt>
+-</dl></dd>
+-<dt><span class="sect1"><a href="cl-format.html#cl-format.reference">3.2. Reference</a></span></dt>
+-<dd><dl>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.grammar">3.2.1. Grammar</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.header">3.2.2. Description of Header Lines</a></span></dt>
+-<dt><span class="sect2"><a href="cl-format.html#cl-format.reference.body">3.2.3. Description of Body Lines</a></span></dt>
+-</dl></dd>
+-</dl></dd>
+-</dl>
+-</div>
+-</div>
+-<div>
+-<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
+-<tr>
+-<td rowspan="2" width="40%" align="left">
+-<a accesskey="p" href="faq.html"><< Valgrind Frequently Asked Questions</a> </td>
+-<td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td>
+-<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="design-impl.html">1. The Design and Implementation of Valgrind >></a>
+-</td>
+-</tr>
+-<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
+-</table>
+-</div>
+-</body>
+-</html>
+diff --git a/docs/html/vg_basic.css b/docs/html/vg_basic.css
+deleted file mode 100644
+index 49367fe..0000000
+--- a/docs/html/vg_basic.css
++++ /dev/null
+@@ -1,67 +0,0 @@
+-/* default link colours */
+-a, a:link, a:visited, a:active { color: #74240f; }
+-a:hover { color: #888800; }
+-
+-body { 
+- color: #202020; 
+- background-color: #ffffff;
+-}
+-
+-body, td {
+- font-size:   90%;
+- line-height: 125%;
+- font-family: Arial, Geneva, Helvetica, sans-serif;
+-}
+-
+-h1, h2, h3, h4 { color: #74240f; }
+-h3 { margin-bottom: 0.4em; }
+-
+-code, tt { color: #761596; }
+-code a, code a:link, code a:visited, code a:active, code a:hover {
+-  color: #761596;
+-  text-decoration: none;
+-  border-bottom:   dashed 1px #761596;
+-}
+-
+-pre { color: #3366cc; }
+-pre.programlisting {
+- color:      #000000;
+- padding:    0.5em;
+- background: #f2f2f9;
+- border:     1px solid #3366cc;
+-}
+-pre.screen {
+- color:      #000000;
+- padding:    0.5em;
+- background: #eeeeee;
+- border:     1px solid #626262;
+-}
+-
+-ul { list-style: url("images/li-brown.png"); }
+-
+-.titlepage hr {
+-  height:  1px;
+-  border:  0px;
+-  background-color: #7f7f7f;
+-}
+-
+-/* header / footer nav tables */
+-table.nav {
+- color:      #0f7355;
+- border:     solid 1px #0f7355;
+- background: #edf7f4;
+- background-color: #edf7f4;
+- margin-bottom: 0.5em;
+-}
+-/* don't have underlined links in chunked nav menus */
+-table.nav a { text-decoration: none; }
+-table.nav a:hover { text-decoration: underline; }
+-table.nav td { font-size: 85%; }
+-
+-/* yellow box just for massif blockquotes */
+-blockquote {
+- padding:     0.5em;
+- background:  #fffbc9; 
+- border:      solid 1px #ffde84; 
+-}
+-
+diff --git a/docs/ms_print.1 b/docs/ms_print.1
+deleted file mode 100644
+index 5453298..0000000
+--- a/docs/ms_print.1
++++ /dev/null
+@@ -1,75 +0,0 @@
+-'\" t
+-.\"     Title: ms_print
+-.\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2012
+-.\"    Manual: Release 3.8.0
+-.\"    Source: Release 3.8.0
+-.\"  Language: English
+-.\"
+-.TH "MS_PRINT" "1" "09/18/2012" "Release 3.8.0" "Release 3.8.0"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el       .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-ms_print \- post\-processing tool for Massif
+-.SH "SYNOPSIS"
+-.HP \w'\fBms_print\fR\ 'u
+-\fBms_print\fR [\fIoptions\fR] \fImassif\-out\-file\fR
+-.SH "DESCRIPTION"
+-.PP
+-\fBms_print\fR
+-takes an output file produced by the Valgrind tool Massif and prints the information in an easy\-to\-read form\&.
+-.SH "OPTIONS"
+-.PP
+-\fB\-h \-\-help \fR
+-.RS 4
+-Show the help message\&.
+-.RE
+-.PP
+-\fB\-\-version \fR
+-.RS 4
+-Show the version number\&.
+-.RE
+-.PP
+-\fB\-\-threshold=<m\&.n> [default: 1\&.0] \fR
+-.RS 4
+-Same as Massif\*(Aqs
+-\fB\-\-threshold\fR
+-option, but applied after profiling rather than during\&.
+-.RE
+-.PP
+-\fB\-\-x=<4\&.\&.1000> [default: 72]\fR
+-.RS 4
+-Width of the graph, in columns\&.
+-.RE
+-.PP
+-\fB\-\-y=<4\&.\&.1000> [default: 20] \fR
+-.RS 4
+-Height of the graph, in rows\&.
+-.RE
+-.SH "SEE ALSO"
+-.PP
+-valgrind(1),
+-$INSTALL/share/doc/valgrind/html/index\&.html
+-or
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "AUTHOR"
+-.PP
+-Nicholas Nethercote\&.
+diff --git a/docs/valgrind.1 b/docs/valgrind.1
+deleted file mode 100644
+index 9a47ac4..0000000
+--- a/docs/valgrind.1
++++ /dev/null
+@@ -1,1713 +0,0 @@
+-'\" t
+-.\"     Title: VALGRIND
+-.\"    Author: [see the "Author" section]
+-.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2012
+-.\"    Manual: Release 3.8.0
+-.\"    Source: Release 3.8.0
+-.\"  Language: English
+-.\"
+-.TH "VALGRIND" "1" "09/18/2012" "Release 3.8.0" "Release 3.8.0"
+-.\" -----------------------------------------------------------------
+-.\" * Define some portability stuff
+-.\" -----------------------------------------------------------------
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.\" http://bugs.debian.org/507673
+-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-.ie \n(.g .ds Aq \(aq
+-.el       .ds Aq '
+-.\" -----------------------------------------------------------------
+-.\" * set default formatting
+-.\" -----------------------------------------------------------------
+-.\" disable hyphenation
+-.nh
+-.\" disable justification (adjust text to left margin only)
+-.ad l
+-.\" -----------------------------------------------------------------
+-.\" * MAIN CONTENT STARTS HERE *
+-.\" -----------------------------------------------------------------
+-.SH "NAME"
+-valgrind \- a suite of tools for debugging and profiling programs
+-.SH "SYNOPSIS"
+-.HP \w'\fBvalgrind\fR\ 'u
+-\fBvalgrind\fR [\fIvalgrind\-options\fR] [\fByour\-program\fR] [\fIyour\-program\-options\fR]
+-.SH "DESCRIPTION"
+-.PP
+-\fBValgrind\fR
+-is a flexible program for debugging and profiling Linux executables\&. It consists of a core, which provides a synthetic CPU in software, and a series of debugging and profiling tools\&. The architecture is modular, so that new tools can be created easily and without disturbing the existing structure\&.
+-.PP
+-Some of the options described below work with all Valgrind tools, and some only work with a few or one\&. The section MEMCHECK OPTIONS and those below it describe tool\-specific options\&.
+-.PP
+-This manual page covers only basic usage and options\&. For more comprehensive information, please see the HTML documentation on your system:
+-$INSTALL/share/doc/valgrind/html/index\&.html, or online:
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "TOOL SELECTION OPTIONS"
+-.PP
+-The single most important option\&.
+-.PP
+-\fB\-\-tool=<toolname> [default: memcheck] \fR
+-.RS 4
+-Run the Valgrind tool called
+-\fItoolname\fR, e\&.g\&. Memcheck, Cachegrind, etc\&.
+-.RE
+-.SH "BASIC OPTIONS"
+-.PP
+-These options work with all tools\&.
+-.PP
+-\fB\-h \-\-help\fR
+-.RS 4
+-Show help for all options, both for the core and for the selected tool\&. If the option is repeated it is equivalent to giving
+-\fB\-\-help\-debug\fR\&.
+-.RE
+-.PP
+-\fB\-\-help\-debug\fR
+-.RS 4
+-Same as
+-\fB\-\-help\fR, but also lists debugging options which usually are only of use to Valgrind\*(Aqs developers\&.
+-.RE
+-.PP
+-\fB\-\-version\fR
+-.RS 4
+-Show the version number of the Valgrind core\&. Tools can have their own version numbers\&. There is a scheme in place to ensure that tools only execute when the core version is one they are known to work with\&. This was done to minimise the chances of strange problems arising from tool\-vs\-core version incompatibilities\&.
+-.RE
+-.PP
+-\fB\-q\fR, \fB\-\-quiet\fR
+-.RS 4
+-Run silently, and only print error messages\&. Useful if you are running regression tests or have some other automated test machinery\&.
+-.RE
+-.PP
+-\fB\-v\fR, \fB\-\-verbose\fR
+-.RS 4
+-Be more verbose\&. Gives extra information on various aspects of your program, such as: the shared objects loaded, the suppressions used, the progress of the instrumentation and execution engines, and warnings about unusual behaviour\&. Repeating the option increases the verbosity level\&.
+-.RE
+-.PP
+-\fB\-\-trace\-children=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will trace into sub\-processes initiated via the
+-\fIexec\fR
+-system call\&. This is necessary for multi\-process programs\&.
+-.sp
+-Note that Valgrind does trace into the child of a
+-\fIfork\fR
+-(it would be difficult not to, since
+-\fIfork\fR
+-makes an identical copy of a process), so this option is arguably badly named\&. However, most children of
+-\fIfork\fR
+-calls immediately call
+-\fIexec\fR
+-anyway\&.
+-.RE
+-.PP
+-\fB\-\-trace\-children\-skip=patt1,patt2,\&.\&.\&. \fR
+-.RS 4
+-This option only has an effect when
+-\fB\-\-trace\-children=yes\fR
+-is specified\&. It allows for some children to be skipped\&. The option takes a comma separated list of patterns for the names of child executables that Valgrind should not trace into\&. Patterns may include the metacharacters
+-?
+-and
+-*, which have the usual meaning\&.
+-.sp
+-This can be useful for pruning uninteresting branches from a tree of processes being run on Valgrind\&. But you should be careful when using it\&. When Valgrind skips tracing into an executable, it doesn\*(Aqt just skip tracing that executable, it also skips tracing any of that executable\*(Aqs child processes\&. In other words, the flag doesn\*(Aqt merely cause tracing to stop at the specified executables \-\- it skips tracing of entire process subtrees rooted at any of the specified executables\&.
+-.RE
+-.PP
+-\fB\-\-trace\-children\-skip\-by\-arg=patt1,patt2,\&.\&.\&. \fR
+-.RS 4
+-This is the same as
+-\fB\-\-trace\-children\-skip\fR, with one difference: the decision as to whether to trace into a child process is made by examining the arguments to the child process, rather than the name of its executable\&.
+-.RE
+-.PP
+-\fB\-\-child\-silent\-after\-fork=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will not show any debugging or logging output for the child process resulting from a
+-\fIfork\fR
+-call\&. This can make the output less confusing (although more misleading) when dealing with processes that create children\&. It is particularly useful in conjunction with
+-\fI\-\-trace\-children=\fR\&. Use of this option is also strongly recommended if you are requesting XML output (\fI\-\-xml=yes\fR), since otherwise the XML from child and parent may become mixed up, which usually makes it useless\&.
+-.RE
+-.PP
+-\fB\-\-vgdb=<no|yes|full> [default: yes] \fR
+-.RS 4
+-Valgrind will provide "gdbserver" functionality when
+-\fB\-\-vgdb=yes\fR
+-or
+-\fB\-\-vgdb=full\fR
+-is specified\&. This allows an external GNU GDB debugger to control and debug your program when it runs on Valgrind\&.
+-\fB\-\-vgdb=full\fR
+-incurs significant performance overheads, but provides more precise breakpoints and watchpoints\&. See
+-???
+-for a detailed description\&.
+-.sp
+-If the embedded gdbserver is enabled but no gdb is currently being used, the
+-???
+-command line utility can send "monitor commands" to Valgrind from a shell\&. The Valgrind core provides a set of
+-???\&. A tool can optionally provide tool specific monitor commands, which are documented in the tool specific chapter\&.
+-.RE
+-.PP
+-\fB\-\-vgdb\-error=<number> [default: 999999999] \fR
+-.RS 4
+-Use this option when the Valgrind gdbserver is enabled with
+-\fB\-\-vgdb=yes\fR
+-or
+-\fB\-\-vgdb=full\fR\&. Tools that report errors will wait for "number" errors to be reported before freezing the program and waiting for you to connect with GDB\&. It follows that a value of zero will cause the gdbserver to be started before your program is executed\&. This is typically used to insert GDB breakpoints before execution, and also works with tools that do not report errors, such as Massif\&.
+-.RE
+-.PP
+-\fB\-\-track\-fds=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will print out a list of open file descriptors on exit\&. Along with each file descriptor is printed a stack backtrace of where the file was opened and any details relating to the file descriptor such as the file name or socket details\&.
+-.RE
+-.PP
+-\fB\-\-time\-stamp=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, each message is preceded with an indication of the elapsed wallclock time since startup, expressed as days, hours, minutes, seconds and milliseconds\&.
+-.RE
+-.PP
+-\fB\-\-log\-fd=<number> [default: 2, stderr] \fR
+-.RS 4
+-Specifies that Valgrind should send all of its messages to the specified file descriptor\&. The default, 2, is the standard error channel (stderr)\&. Note that this may interfere with the client\*(Aqs own use of stderr, as Valgrind\*(Aqs output will be interleaved with any output that the client sends to stderr\&.
+-.RE
+-.PP
+-\fB\-\-log\-file=<filename> \fR
+-.RS 4
+-Specifies that Valgrind should send all of its messages to the specified file\&. If the file name is empty, it causes an abort\&. There are three special format specifiers that can be used in the file name\&.
+-.sp
+-\fB%p\fR
+-is replaced with the current process ID\&. This is very useful for program that invoke multiple processes\&. WARNING: If you use
+-\fB\-\-trace\-children=yes\fR
+-and your program invokes multiple processes OR your program forks without calling exec afterwards, and you don\*(Aqt use this specifier (or the
+-\fB%q\fR
+-specifier below), the Valgrind output from all those processes will go into one file, possibly jumbled up, and possibly incomplete\&.
+-.sp
+-\fB%q{FOO}\fR
+-is replaced with the contents of the environment variable
+-\fIFOO\fR\&. If the
+-\fB{FOO}\fR
+-part is malformed, it causes an abort\&. This specifier is rarely needed, but very useful in certain circumstances (eg\&. when running MPI programs)\&. The idea is that you specify a variable which will be set differently for each process in the job, for example
+-BPROC_RANK
+-or whatever is applicable in your MPI setup\&. If the named environment variable is not set, it causes an abort\&. Note that in some shells, the
+-\fB{\fR
+-and
+-\fB}\fR
+-characters may need to be escaped with a backslash\&.
+-.sp
+-\fB%%\fR
+-is replaced with
+-\fB%\fR\&.
+-.sp
+-If an
+-\fB%\fR
+-is followed by any other character, it causes an abort\&.
+-.RE
+-.PP
+-\fB\-\-log\-socket=<ip\-address:port\-number> \fR
+-.RS 4
+-Specifies that Valgrind should send all of its messages to the specified port at the specified IP address\&. The port may be omitted, in which case port 1500 is used\&. If a connection cannot be made to the specified socket, Valgrind falls back to writing output to the standard error (stderr)\&. This option is intended to be used in conjunction with the
+-valgrind\-listener
+-program\&. For further details, see
+-the commentary
+-in the manual\&.
+-.RE
+-.SH "ERROR-RELATED OPTIONS"
+-.PP
+-These options are used by all tools that can report errors, e\&.g\&. Memcheck, but not Cachegrind\&.
+-.PP
+-\fB\-\-xml=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, the important parts of the output (e\&.g\&. tool error messages) will be in XML format rather than plain text\&. Furthermore, the XML output will be sent to a different output channel than the plain text output\&. Therefore, you also must use one of
+-\fB\-\-xml\-fd\fR,
+-\fB\-\-xml\-file\fR
+-or
+-\fB\-\-xml\-socket\fR
+-to specify where the XML is to be sent\&.
+-.sp
+-Less important messages will still be printed in plain text, but because the XML output and plain text output are sent to different output channels (the destination of the plain text output is still controlled by
+-\fB\-\-log\-fd\fR,
+-\fB\-\-log\-file\fR
+-and
+-\fB\-\-log\-socket\fR) this should not cause problems\&.
+-.sp
+-This option is aimed at making life easier for tools that consume Valgrind\*(Aqs output as input, such as GUI front ends\&. Currently this option works with Memcheck, Helgrind, DRD and SGcheck\&. The output format is specified in the file
+-docs/internals/xml\-output\-protocol4\&.txt
+-in the source tree for Valgrind 3\&.5\&.0 or later\&.
+-.sp
+-The recommended options for a GUI to pass, when requesting XML output, are:
+-\fB\-\-xml=yes\fR
+-to enable XML output,
+-\fB\-\-xml\-file\fR
+-to send the XML output to a (presumably GUI\-selected) file,
+-\fB\-\-log\-file\fR
+-to send the plain text output to a second GUI\-selected file,
+-\fB\-\-child\-silent\-after\-fork=yes\fR, and
+-\fB\-q\fR
+-to restrict the plain text output to critical error messages created by Valgrind itself\&. For example, failure to read a specified suppressions file counts as a critical error message\&. In this way, for a successful run the text output file will be empty\&. But if it isn\*(Aqt empty, then it will contain important information which the GUI user should be made aware of\&.
+-.RE
+-.PP
+-\fB\-\-xml\-fd=<number> [default: \-1, disabled] \fR
+-.RS 4
+-Specifies that Valgrind should send its XML output to the specified file descriptor\&. It must be used in conjunction with
+-\fB\-\-xml=yes\fR\&.
+-.RE
+-.PP
+-\fB\-\-xml\-file=<filename> \fR
+-.RS 4
+-Specifies that Valgrind should send its XML output to the specified file\&. It must be used in conjunction with
+-\fB\-\-xml=yes\fR\&. Any
+-\fB%p\fR
+-or
+-\fB%q\fR
+-sequences appearing in the filename are expanded in exactly the same way as they are for
+-\fB\-\-log\-file\fR\&. See the description of
+-\fB\-\-log\-file\fR
+-for details\&.
+-.RE
+-.PP
+-\fB\-\-xml\-socket=<ip\-address:port\-number> \fR
+-.RS 4
+-Specifies that Valgrind should send its XML output the specified port at the specified IP address\&. It must be used in conjunction with
+-\fB\-\-xml=yes\fR\&. The form of the argument is the same as that used by
+-\fB\-\-log\-socket\fR\&. See the description of
+-\fB\-\-log\-socket\fR
+-for further details\&.
+-.RE
+-.PP
+-\fB\-\-xml\-user\-comment=<string> \fR
+-.RS 4
+-Embeds an extra user comment string at the start of the XML output\&. Only works when
+-\fB\-\-xml=yes\fR
+-is specified; ignored otherwise\&.
+-.RE
+-.PP
+-\fB\-\-demangle=<yes|no> [default: yes] \fR
+-.RS 4
+-Enable/disable automatic demangling (decoding) of C++ names\&. Enabled by default\&. When enabled, Valgrind will attempt to translate encoded C++ names back to something approaching the original\&. The demangler handles symbols mangled by g++ versions 2\&.X, 3\&.X and 4\&.X\&.
+-.sp
+-An important fact about demangling is that function names mentioned in suppressions files should be in their mangled form\&. Valgrind does not demangle function names when searching for applicable suppressions, because to do otherwise would make suppression file contents dependent on the state of Valgrind\*(Aqs demangling machinery, and also slow down suppression matching\&.
+-.RE
+-.PP
+-\fB\-\-num\-callers=<number> [default: 12] \fR
+-.RS 4
+-Specifies the maximum number of entries shown in stack traces that identify program locations\&. Note that errors are commoned up using only the top four function locations (the place in the current function, and that of its three immediate callers)\&. So this doesn\*(Aqt affect the total number of errors reported\&.
+-.sp
+-The maximum value for this is 500\&. Note that higher settings will make Valgrind run a bit more slowly and take a bit more memory, but can be useful when working with programs with deeply\-nested call chains\&.
+-.RE
+-.PP
+-\fB\-\-error\-limit=<yes|no> [default: yes] \fR
+-.RS 4
+-When enabled, Valgrind stops reporting errors after 10,000,000 in total, or 1,000 different ones, have been seen\&. This is to stop the error tracking machinery from becoming a huge performance overhead in programs with many errors\&.
+-.RE
+-.PP
+-\fB\-\-error\-exitcode=<number> [default: 0] \fR
+-.RS 4
+-Specifies an alternative exit code to return if Valgrind reported any errors in the run\&. When set to the default value (zero), the return value from Valgrind will always be the return value of the process being simulated\&. When set to a nonzero value, that value is returned instead, if Valgrind detects any errors\&. This is useful for using Valgrind as part of an automated test suite, since it makes it easy to detect test cases for which Valgrind has reported errors, just by inspecting return codes\&.
+-.RE
+-.PP
+-\fB\-\-show\-below\-main=<yes|no> [default: no] \fR
+-.RS 4
+-By default, stack traces for errors do not show any functions that appear beneath
+-\fBmain\fR
+-because most of the time it\*(Aqs uninteresting C library stuff and/or gobbledygook\&. Alternatively, if
+-\fBmain\fR
+-is not present in the stack trace, stack traces will not show any functions below
+-\fBmain\fR\-like functions such as glibc\*(Aqs
+-\fB__libc_start_main\fR\&. Furthermore, if
+-\fBmain\fR\-like functions are present in the trace, they are normalised as
+-\fB(below main)\fR, in order to make the output more deterministic\&.
+-.sp
+-If this option is enabled, all stack trace entries will be shown and
+-\fBmain\fR\-like functions will not be normalised\&.
+-.RE
+-.PP
+-\fB\-\-fullpath\-after=<string> [default: don\*(Aqt show source paths] \fR
+-.RS 4
+-By default Valgrind only shows the filenames in stack traces, but not full paths to source files\&. When using Valgrind in large projects where the sources reside in multiple different directories, this can be inconvenient\&.
+-\fB\-\-fullpath\-after\fR
+-provides a flexible solution to this problem\&. When this option is present, the path to each source file is shown, with the following all\-important caveat: if
+-\fBstring\fR
+-is found in the path, then the path up to and including
+-\fBstring\fR
+-is omitted, else the path is shown unmodified\&. Note that
+-\fBstring\fR
+-is not required to be a prefix of the path\&.
+-.sp
+-For example, consider a file named
+-/home/janedoe/blah/src/foo/bar/xyzzy\&.c\&. Specifying
+-\fB\-\-fullpath\-after=/home/janedoe/blah/src/\fR
+-will cause Valgrind to show the name as
+-foo/bar/xyzzy\&.c\&.
+-.sp
+-Because the string is not required to be a prefix,
+-\fB\-\-fullpath\-after=src/\fR
+-will produce the same output\&. This is useful when the path contains arbitrary machine\-generated characters\&. For example, the path
+-/my/build/dir/C32A1B47/blah/src/foo/xyzzy
+-can be pruned to
+-foo/xyzzy
+-using
+-\fB\-\-fullpath\-after=/blah/src/\fR\&.
+-.sp
+-If you simply want to see the full path, just specify an empty string:
+-\fB\-\-fullpath\-after=\fR\&. This isn\*(Aqt a special case, merely a logical consequence of the above rules\&.
+-.sp
+-Finally, you can use
+-\fB\-\-fullpath\-after\fR
+-multiple times\&. Any appearance of it causes Valgrind to switch to producing full paths and applying the above filtering rule\&. Each produced path is compared against all the
+-\fB\-\-fullpath\-after\fR\-specified strings, in the order specified\&. The first string to match causes the path to be truncated as described above\&. If none match, the full path is shown\&. This facilitates chopping off prefixes when the sources are drawn from a number of unrelated directories\&.
+-.RE
+-.PP
+-\fB\-\-suppressions=<filename> [default: $PREFIX/lib/valgrind/default\&.supp] \fR
+-.RS 4
+-Specifies an extra file from which to read descriptions of errors to suppress\&. You may use up to 100 extra suppression files\&.
+-.RE
+-.PP
+-\fB\-\-gen\-suppressions=<yes|no|all> [default: no] \fR
+-.RS 4
+-When set to
+-\fIyes\fR, Valgrind will pause after every error shown and print the line:
+-.sp
+-.if n \{\
+-.RS 4
+-.\}
+-.nf
+-    \-\-\-\- Print suppression ? \-\-\- [Return/N/n/Y/y/C/c] \-\-\-\-
+-.fi
+-.if n \{\
+-.RE
+-.\}
+-.sp
+-The prompt\*(Aqs behaviour is the same as for the
+-\fB\-\-db\-attach\fR
+-option (see below)\&.
+-.sp
+-If you choose to, Valgrind will print out a suppression for this error\&. You can then cut and paste it into a suppression file if you don\*(Aqt want to hear about the error in the future\&.
+-.sp
+-When set to
+-\fIall\fR, Valgrind will print a suppression for every reported error, without querying the user\&.
+-.sp
+-This option is particularly useful with C++ programs, as it prints out the suppressions with mangled names, as required\&.
+-.sp
+-Note that the suppressions printed are as specific as possible\&. You may want to common up similar ones, by adding wildcards to function names, and by using frame\-level wildcards\&. The wildcarding facilities are powerful yet flexible, and with a bit of careful editing, you may be able to suppress a whole family of related errors with only a few suppressions\&.
+-.sp
+-Sometimes two different errors are suppressed by the same suppression, in which case Valgrind will output the suppression more than once, but you only need to have one copy in your suppression file (but having more than one won\*(Aqt cause problems)\&. Also, the suppression name is given as
+-<insert a suppression name here>; the name doesn\*(Aqt really matter, it\*(Aqs only used with the
+-\fB\-v\fR
+-option which prints out all used suppression records\&.
+-.RE
+-.PP
+-\fB\-\-db\-attach=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will pause after every error shown and print the line:
+-.sp
+-.if n \{\
+-.RS 4
+-.\}
+-.nf
+-    \-\-\-\- Attach to debugger ? \-\-\- [Return/N/n/Y/y/C/c] \-\-\-\-
+-.fi
+-.if n \{\
+-.RE
+-.\}
+-.sp
+-Pressing
+-\fIRet\fR, or
+-\fIN Ret\fR
+-or
+-\fIn Ret\fR, causes Valgrind not to start a debugger for this error\&.
+-.sp
+-Pressing
+-\fIY Ret\fR
+-or
+-\fIy Ret\fR
+-causes Valgrind to start a debugger for the program at this point\&. When you have finished with the debugger, quit from it, and the program will continue\&. Trying to continue from inside the debugger doesn\*(Aqt work\&.
+-.sp
+-Note: if you use GDB, more powerful debugging support is provided by the
+-\fB\-\-vgdb=\fR
+-\fIyes\fR
+-or
+-\fIfull\fR
+-value\&. This activates Valgrind\*(Aqs internal gdbserver, which provides more\-or\-less full GDB\-style control of the application: insertion of breakpoints, continuing from inside GDB, inferior function calls, and much more\&.
+-.sp
+-\fIC Ret\fR
+-or
+-\fIc Ret\fR
+-causes Valgrind not to start a debugger, and not to ask again\&.
+-.RE
+-.PP
+-\fB\-\-db\-command=<command> [default: gdb \-nw %f %p] \fR
+-.RS 4
+-Specify the debugger to use with the
+-\fB\-\-db\-attach\fR
+-command\&. The default debugger is GDB\&. This option is a template that is expanded by Valgrind at runtime\&.
+-%f
+-is replaced with the executable\*(Aqs file name and
+-%p
+-is replaced by the process ID of the executable\&.
+-.sp
+-This specifies how Valgrind will invoke the debugger\&. By default it will use whatever GDB is detected at build time, which is usually
+-/usr/bin/gdb\&. Using this command, you can specify some alternative command to invoke the debugger you want to use\&.
+-.sp
+-The command string given can include one or instances of the
+-%p
+-and
+-%f
+-expansions\&. Each instance of
+-%p
+-expands to the PID of the process to be debugged and each instance of
+-%f
+-expands to the path to the executable for the process to be debugged\&.
+-.sp
+-Since
+-<command>
+-is likely to contain spaces, you will need to put this entire option in quotes to ensure it is correctly handled by the shell\&.
+-.RE
+-.PP
+-\fB\-\-input\-fd=<number> [default: 0, stdin] \fR
+-.RS 4
+-When using
+-\fB\-\-db\-attach=yes\fR
+-or
+-\fB\-\-gen\-suppressions=yes\fR, Valgrind will stop so as to read keyboard input from you when each error occurs\&. By default it reads from the standard input (stdin), which is problematic for programs which close stdin\&. This option allows you to specify an alternative file descriptor from which to read input\&.
+-.RE
+-.PP
+-\fB\-\-dsymutil=no|yes [no] \fR
+-.RS 4
+-This option is only relevant when running Valgrind on Mac OS X\&.
+-.sp
+-Mac OS X uses a deferred debug information (debuginfo) linking scheme\&. When object files containing debuginfo are linked into a
+-\&.dylib
+-or an executable, the debuginfo is not copied into the final file\&. Instead, the debuginfo must be linked manually by running
+-dsymutil, a system\-provided utility, on the executable or
+-\&.dylib\&. The resulting combined debuginfo is placed in a directory alongside the executable or
+-\&.dylib, but with the extension
+-\&.dSYM\&.
+-.sp
+-With
+-\fB\-\-dsymutil=no\fR, Valgrind will detect cases where the
+-\&.dSYM
+-directory is either missing, or is present but does not appear to match the associated executable or
+-\&.dylib, most likely because it is out of date\&. In these cases, Valgrind will print a warning message but take no further action\&.
+-.sp
+-With
+-\fB\-\-dsymutil=yes\fR, Valgrind will, in such cases, automatically run
+-dsymutil
+-as necessary to bring the debuginfo up to date\&. For all practical purposes, if you always use
+-\fB\-\-dsymutil=yes\fR, then there is never any need to run
+-dsymutil
+-manually or as part of your applications\*(Aqs build system, since Valgrind will run it as necessary\&.
+-.sp
+-Valgrind will not attempt to run
+-dsymutil
+-on any executable or library in
+-/usr/,
+-/bin/,
+-/sbin/,
+-/opt/,
+-/sw/,
+-/System/,
+-/Library/
+-or
+-/Applications/
+-since
+-dsymutil
+-will always fail in such situations\&. It fails both because the debuginfo for such pre\-installed system components is not available anywhere, and also because it would require write privileges in those directories\&.
+-.sp
+-Be careful when using
+-\fB\-\-dsymutil=yes\fR, since it will cause pre\-existing
+-\&.dSYM
+-directories to be silently deleted and re\-created\&. Also note that
+-dsymutil
+-is quite slow, sometimes excessively so\&.
+-.RE
+-.PP
+-\fB\-\-max\-stackframe=<number> [default: 2000000] \fR
+-.RS 4
+-The maximum size of a stack frame\&. If the stack pointer moves by more than this amount then Valgrind will assume that the program is switching to a different stack\&.
+-.sp
+-You may need to use this option if your program has large stack\-allocated arrays\&. Valgrind keeps track of your program\*(Aqs stack pointer\&. If it changes by more than the threshold amount, Valgrind assumes your program is switching to a different stack, and Memcheck behaves differently than it would for a stack pointer change smaller than the threshold\&. Usually this heuristic works well\&. However, if your program allocates large structures on the stack, this heuristic will be fooled, and Memcheck will subsequently report large numbers of invalid stack accesses\&. This option allows you to change the threshold to a different value\&.
+-.sp
+-You should only consider use of this option if Valgrind\*(Aqs debug output directs you to do so\&. In that case it will tell you the new threshold you should specify\&.
+-.sp
+-In general, allocating large structures on the stack is a bad idea, because you can easily run out of stack space, especially on systems with limited memory or which expect to support large numbers of threads each with a small stack, and also because the error checking performed by Memcheck is more effective for heap\-allocated data than for stack\-allocated data\&. If you have to use this option, you may wish to consider rewriting your code to allocate on the heap rather than on the stack\&.
+-.RE
+-.PP
+-\fB\-\-main\-stacksize=<number> [default: use current \*(Aqulimit\*(Aq value] \fR
+-.RS 4
+-Specifies the size of the main thread\*(Aqs stack\&.
+-.sp
+-To simplify its memory management, Valgrind reserves all required space for the main thread\*(Aqs stack at startup\&. That means it needs to know the required stack size at startup\&.
+-.sp
+-By default, Valgrind uses the current "ulimit" value for the stack size, or 16 MB, whichever is lower\&. In many cases this gives a stack size in the range 8 to 16 MB, which almost never overflows for most applications\&.
+-.sp
+-If you need a larger total stack size, use
+-\fB\-\-main\-stacksize\fR
+-to specify it\&. Only set it as high as you need, since reserving far more space than you need (that is, hundreds of megabytes more than you need) constrains Valgrind\*(Aqs memory allocators and may reduce the total amount of memory that Valgrind can use\&. This is only really of significance on 32\-bit machines\&.
+-.sp
+-On Linux, you may request a stack of size up to 2GB\&. Valgrind will stop with a diagnostic message if the stack cannot be allocated\&.
+-.sp
+-\fB\-\-main\-stacksize\fR
+-only affects the stack size for the program\*(Aqs initial thread\&. It has no bearing on the size of thread stacks, as Valgrind does not allocate those\&.
+-.sp
+-You may need to use both
+-\fB\-\-main\-stacksize\fR
+-and
+-\fB\-\-max\-stackframe\fR
+-together\&. It is important to understand that
+-\fB\-\-main\-stacksize\fR
+-sets the maximum total stack size, whilst
+-\fB\-\-max\-stackframe\fR
+-specifies the largest size of any one stack frame\&. You will have to work out the
+-\fB\-\-main\-stacksize\fR
+-value for yourself (usually, if your applications segfaults)\&. But Valgrind will tell you the needed
+-\fB\-\-max\-stackframe\fR
+-size, if necessary\&.
+-.sp
+-As discussed further in the description of
+-\fB\-\-max\-stackframe\fR, a requirement for a large stack is a sign of potential portability problems\&. You are best advised to place all large data in heap\-allocated memory\&.
+-.RE
+-.SH "MALLOC()-RELATED OPTIONS"
+-.PP
+-For tools that use their own version of
+-malloc
+-(e\&.g\&. Memcheck, Massif, Helgrind, DRD), the following options apply\&.
+-.PP
+-\fB\-\-alignment=<number> [default: 8 or 16, depending on the platform] \fR
+-.RS 4
+-By default Valgrind\*(Aqs
+-\fBmalloc\fR,
+-\fBrealloc\fR, etc, return a block whose starting address is 8\-byte aligned or 16\-byte aligned (the value depends on the platform and matches the platform default)\&. This option allows you to specify a different alignment\&. The supplied value must be greater than or equal to the default, less than or equal to 4096, and must be a power of two\&.
+-.RE
+-.PP
+-\fB\-\-redzone\-size=<number> [default: depends on the tool] \fR
+-.RS 4
+-Valgrind\*(Aqs
+-\fBmalloc, realloc,\fR
+-etc, add padding blocks before and after each heap block allocated by the program being run\&. Such padding blocks are called redzones\&. The default value for the redzone size depends on the tool\&. For example, Memcheck adds and protects a minimum of 16 bytes before and after each block allocated by the client\&. This allows it to detect block underruns or overruns of up to 16 bytes\&.
+-.sp
+-Increasing the redzone size makes it possible to detect overruns of larger distances, but increases the amount of memory used by Valgrind\&. Decreasing the redzone size will reduce the memory needed by Valgrind but also reduces the chances of detecting over/underruns, so is not recommended\&.
+-.RE
+-.SH "UNCOMMON OPTIONS"
+-.PP
+-These options apply to all tools, as they affect certain obscure workings of the Valgrind core\&. Most people won\*(Aqt need to use them\&.
+-.PP
+-\fB\-\-smc\-check=<none|stack|all|all\-non\-file> [default: stack] \fR
+-.RS 4
+-This option controls Valgrind\*(Aqs detection of self\-modifying code\&. If no checking is done, if a program executes some code, then overwrites it with new code, and executes the new code, Valgrind will continue to execute the translations it made for the old code\&. This will likely lead to incorrect behaviour and/or crashes\&.
+-.sp
+-Valgrind has four levels of self\-modifying code detection: no detection, detect self\-modifying code on the stack (which is used by GCC to implement nested functions), detect self\-modifying code everywhere, and detect self\-modifying code everywhere except in file\-backed mappings\&. Note that the default option will catch the vast majority of cases\&. The main case it will not catch is programs such as JIT compilers that dynamically generate code
+-\fIand\fR
+-subsequently overwrite part or all of it\&. Running with
+-\fIall\fR
+-will slow Valgrind down noticeably\&. Running with
+-\fInone\fR
+-will rarely speed things up, since very little code gets put on the stack for most programs\&. The
+-\fBVALGRIND_DISCARD_TRANSLATIONS\fR
+-client request is an alternative to
+-\fB\-\-smc\-check=all\fR
+-that requires more programmer effort but allows Valgrind to run your program faster, by telling it precisely when translations need to be re\-made\&.
+-.sp
+-\fB\-\-smc\-check=all\-non\-file\fR
+-provides a cheaper but more limited version of
+-\fB\-\-smc\-check=all\fR\&. It adds checks to any translations that do not originate from file\-backed memory mappings\&. Typical applications that generate code, for example JITs in web browsers, generate code into anonymous mmaped areas, whereas the "fixed" code of the browser always lives in file\-backed mappings\&.
+-\fB\-\-smc\-check=all\-non\-file\fR
+-takes advantage of this observation, limiting the overhead of checking to code which is likely to be JIT generated\&.
+-.sp
+-Some architectures (including ppc32, ppc64, ARM and MIPS) require programs which create code at runtime to flush the instruction cache in between code generation and first use\&. Valgrind observes and honours such instructions\&. Hence, on ppc32/Linux, ppc64/Linux and ARM/Linux, Valgrind always provides complete, transparent support for self\-modifying code\&. It is only on platforms such as x86/Linux, AMD64/Linux, x86/Darwin and AMD64/Darwin that you need to use this option\&.
+-.RE
+-.PP
+-\fB\-\-read\-var\-info=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will read information about variable types and locations from DWARF3 debug info\&. This slows Valgrind down and makes it use more memory, but for the tools that can take advantage of it (Memcheck, Helgrind, DRD) it can result in more precise error messages\&. For example, here are some standard errors issued by Memcheck:
+-.sp
+-.if n \{\
+-.RS 4
+-.\}
+-.nf
+-==15516== Uninitialised byte(s) found during client check request
+-==15516==    at 0x400633: croak (varinfo1\&.c:28)
+-==15516==    by 0x4006B2: main (varinfo1\&.c:55)
+-==15516==  Address 0x60103b is 7 bytes inside data symbol "global_i2"
+-==15516== 
+-==15516== Uninitialised byte(s) found during client check request
+-==15516==    at 0x400633: croak (varinfo1\&.c:28)
+-==15516==    by 0x4006BC: main (varinfo1\&.c:56)
+-==15516==  Address 0x7fefffefc is on thread 1\*(Aqs stack
+-.fi
+-.if n \{\
+-.RE
+-.\}
+-.sp
+-And here are the same errors with
+-\fB\-\-read\-var\-info=yes\fR:
+-.sp
+-.if n \{\
+-.RS 4
+-.\}
+-.nf
+-==15522== Uninitialised byte(s) found during client check request
+-==15522==    at 0x400633: croak (varinfo1\&.c:28)
+-==15522==    by 0x4006B2: main (varinfo1\&.c:55)
+-==15522==  Location 0x60103b is 0 bytes inside global_i2[7],
+-==15522==  a global variable declared at varinfo1\&.c:41
+-==15522== 
+-==15522== Uninitialised byte(s) found during client check request
+-==15522==    at 0x400633: croak (varinfo1\&.c:28)
+-==15522==    by 0x4006BC: main (varinfo1\&.c:56)
+-==15522==  Location 0x7fefffefc is 0 bytes inside local var "local"
+-==15522==  declared at varinfo1\&.c:46, in frame #1 of thread 1
+-.fi
+-.if n \{\
+-.RE
+-.\}
+-.RE
+-.PP
+-\fB\-\-vgdb\-poll=<number> [default: 5000] \fR
+-.RS 4
+-As part of its main loop, the Valgrind scheduler will poll to check if some activity (such as an external command or some input from a gdb) has to be handled by gdbserver\&. This activity poll will be done after having run the given number of basic blocks (or slightly more than the given number of basic blocks)\&. This poll is quite cheap so the default value is set relatively low\&. You might further decrease this value if vgdb cannot use ptrace system call to interrupt Valgrind if all threads are (most of the time) blocked in a system call\&.
+-.RE
+-.PP
+-\fB\-\-vgdb\-shadow\-registers=no|yes [default: no] \fR
+-.RS 4
+-When activated, gdbserver will expose the Valgrind shadow registers to GDB\&. With this, the value of the Valgrind shadow registers can be examined or changed using GDB\&. Exposing shadow registers only works with GDB version 7\&.1 or later\&.
+-.RE
+-.PP
+-\fB\-\-vgdb\-prefix=<prefix> [default: /tmp/vgdb\-pipe] \fR
+-.RS 4
+-To communicate with gdb/vgdb, the Valgrind gdbserver creates 3 files (2 named FIFOs and a mmap shared memory file)\&. The prefix option controls the directory and prefix for the creation of these files\&.
+-.RE
+-.PP
+-\fB\-\-run\-libc\-freeres=<yes|no> [default: yes] \fR
+-.RS 4
+-This option is only relevant when running Valgrind on Linux\&.
+-.sp
+-The GNU C library (\fBlibc\&.so\fR), which is used by all programs, may allocate memory for its own uses\&. Usually it doesn\*(Aqt bother to free that memory when the program ends\(emthere would be no point, since the Linux kernel reclaims all process resources when a process exits anyway, so it would just slow things down\&.
+-.sp
+-The glibc authors realised that this behaviour causes leak checkers, such as Valgrind, to falsely report leaks in glibc, when a leak check is done at exit\&. In order to avoid this, they provided a routine called
+-\fB__libc_freeres\fR
+-specifically to make glibc release all memory it has allocated\&. Memcheck therefore tries to run
+-\fB__libc_freeres\fR
+-at exit\&.
+-.sp
+-Unfortunately, in some very old versions of glibc,
+-\fB__libc_freeres\fR
+-is sufficiently buggy to cause segmentation faults\&. This was particularly noticeable on Red Hat 7\&.1\&. So this option is provided in order to inhibit the run of
+-\fB__libc_freeres\fR\&. If your program seems to run fine on Valgrind, but segfaults at exit, you may find that
+-\fB\-\-run\-libc\-freeres=no\fR
+-fixes that, although at the cost of possibly falsely reporting space leaks in
+-libc\&.so\&.
+-.RE
+-.PP
+-\fB\-\-sim\-hints=hint1,hint2,\&.\&.\&. \fR
+-.RS 4
+-Pass miscellaneous hints to Valgrind which slightly modify the simulated behaviour in nonstandard or dangerous ways, possibly to help the simulation of strange features\&. By default no hints are enabled\&. Use with caution! Currently known hints are:
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-\fBlax\-ioctls: \fR
+-Be very lax about ioctl handling; the only assumption is that the size is correct\&. Doesn\*(Aqt require the full buffer to be initialized when writing\&. Without this, using some device drivers with a large number of strange ioctl commands becomes very tiresome\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-\fBenable\-outer: \fR
+-Enable some special magic needed when the program being run is itself Valgrind\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-\fBno\-inner\-prefix: \fR
+-Disable printing a prefix
+-\fB>\fR
+-in front of each stdout or stderr output line in an inner Valgrind being run by an outer Valgrind\&. This is useful when running Valgrind regression tests in an outer/inner setup\&. Note that the prefix
+-\fB>\fR
+-will always be printed in front of the inner debug logging lines\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-\fBfuse\-compatible: \fR
+-Enable special handling for certain system calls that may block in a FUSE file\-system\&. This may be necessary when running Valgrind on a multi\-threaded program that uses one thread to manage a FUSE file\-system and another thread to access that file\-system\&.
+-.RE
+-.RE
+-.PP
+-\fB\-\-fair\-sched=<no|yes|try> [default: no] \fR
+-.RS 4
+-The
+-\fB\-\-fair\-sched\fR
+-option controls the locking mechanism used by Valgrind to serialise thread execution\&. The locking mechanism controls the way the threads are scheduled, and different settings give different trade\-offs between fairness and performance\&. For more details about the Valgrind thread serialisation scheme and its impact on performance and thread scheduling, see
+-???\&.
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-The value
+-\fB\-\-fair\-sched=yes\fR
+-activates a fair scheduler\&. In short, if multiple threads are ready to run, the threads will be scheduled in a round robin fashion\&. This mechanism is not available on all platforms or Linux versions\&. If not available, using
+-\fB\-\-fair\-sched=yes\fR
+-will cause Valgrind to terminate with an error\&.
+-.sp
+-You may find this setting improves overall responsiveness if you are running an interactive multithreaded program, for example a web browser, on Valgrind\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-The value
+-\fB\-\-fair\-sched=try\fR
+-activates fair scheduling if available on the platform\&. Otherwise, it will automatically fall back to
+-\fB\-\-fair\-sched=no\fR\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-The value
+-\fB\-\-fair\-sched=no\fR
+-activates a scheduler which does not guarantee fairness between threads ready to run, but which in general gives the highest performance\&.
+-.RE
+-.sp
+-.RE
+-.PP
+-\fB\-\-kernel\-variant=variant1,variant2,\&.\&.\&.\fR
+-.RS 4
+-Handle system calls and ioctls arising from minor variants of the default kernel for this platform\&. This is useful for running on hacked kernels or with kernel modules which support nonstandard ioctls, for example\&. Use with caution\&. If you don\*(Aqt understand what this option does then you almost certainly don\*(Aqt need it\&. Currently known variants are:
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-\fBbproc: \fR
+-Support the
+-\fBsys_broc\fR
+-system call on x86\&. This is for running on BProc, which is a minor variant of standard Linux which is sometimes used for building clusters\&.
+-.RE
+-.RE
+-.PP
+-\fB\-\-show\-emwarns=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, Valgrind will emit warnings about its CPU emulation in certain cases\&. These are usually not interesting\&.
+-.RE
+-.PP
+-\fB\-\-require\-text\-symbol=:sonamepatt:fnnamepatt\fR
+-.RS 4
+-When a shared object whose soname matches
+-\fIsonamepatt\fR
+-is loaded into the process, examine all the text symbols it exports\&. If none of those match
+-\fIfnnamepatt\fR, print an error message and abandon the run\&. This makes it possible to ensure that the run does not continue unless a given shared object contains a particular function name\&.
+-.sp
+-Both
+-\fIsonamepatt\fR
+-and
+-\fIfnnamepatt\fR
+-can be written using the usual
+-\fI?\fR
+-and
+-\fI*\fR
+-wildcards\&. For example:
+-\fI":*libc\&.so*:foo?bar"\fR\&. You may use characters other than a colon to separate the two patterns\&. It is only important that the first character and the separator character are the same\&. For example, the above example could also be written
+-\fI"Q*libc\&.so*Qfoo?bar"\fR\&. Multiple
+-\fI \-\-require\-text\-symbol\fR
+-flags are allowed, in which case shared objects that are loaded into the process will be checked against all of them\&.
+-.sp
+-The purpose of this is to support reliable usage of marked\-up libraries\&. For example, suppose we have a version of GCC\*(Aqs
+-\fIlibgomp\&.so\fR
+-which has been marked up with annotations to support Helgrind\&. It is only too easy and confusing to load the wrong, un\-annotated
+-\fIlibgomp\&.so\fR
+-into the application\&. So the idea is: add a text symbol in the marked\-up library, for example
+-\fIannotated_for_helgrind_3_6\fR, and then give the flag
+-\fI\-\-require\-text\-symbol=:*libgomp*so*:annotated_for_helgrind_3_6\fR
+-so that when
+-\fIlibgomp\&.so\fR
+-is loaded, Valgrind scans its symbol table, and if the symbol isn\*(Aqt present the run is aborted, rather than continuing silently with the un\-marked\-up library\&. Note that you should put the entire flag in quotes to stop shells expanding up the
+-\fI*\fR
+-and
+-\fI?\fR
+-wildcards\&.
+-.RE
+-.PP
+-\fB\-\-soname\-synonyms=syn1=pattern1,syn2=pattern2,\&.\&.\&.\fR
+-.RS 4
+-When a shared library is loaded, Valgrind checks for functions in the library that must be replaced or wrapped\&. For example, Memcheck replaces all malloc related functions (malloc, free, calloc, \&.\&.\&.) with its own versions\&. Such replacements are done by default only in shared libraries whose soname matches a predefined soname pattern (e\&.g\&.
+-\fIlibc\&.so*\fR
+-on linux)\&. By default, no replacement is done for a statically linked library or for alternative libraries such as tcmalloc\&. In some cases, the replacements allow
+-\fB\-\-soname\-synonyms\fR
+-to specify one additional synonym pattern, giving flexibility in the replacement\&.
+-.sp
+-Currently, this flexibility is only allowed for the malloc related functions, using the synonym
+-\fIsomalloc\fR\&. This synonym is usable for all tools doing standard replacement of malloc related functions (e\&.g\&. memcheck, massif, drd, helgrind, exp\-dhat, exp\-sgcheck)\&.
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-Alternate malloc library: to replace the malloc related functions in an alternate library with soname
+-\fImymalloclib\&.so\fR, give the option
+-\fB\-\-soname\-synonyms=somalloc=mymalloclib\&.so\fR\&. A pattern can be used to match multiple libraries sonames\&. For example,
+-\fB\-\-soname\-synonyms=somalloc=*tcmalloc*\fR
+-will match the soname of all variants of the tcmalloc library (native, debug, profiled, \&.\&.\&. tcmalloc variants)\&.
+-.sp
+-Note: the soname of a elf shared library can be retrieved using the readelf utility\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-Replacements in a statically linked library are done by using the
+-\fINONE\fR
+-pattern\&. For example, if you link with
+-\fIlibtcmalloc\&.a\fR, memcheck will properly work when you give the option
+-\fB\-\-soname\-synonyms=somalloc=NONE\fR\&. Note that a NONE pattern will match the main executable and any shared library having no soname\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-To run a "default" Firefox build for Linux, in which JEMalloc is linked in to the main executable, use
+-\fB\-\-soname\-synonyms=somalloc=NONE\fR\&.
+-.RE
+-.RE
+-.SH "DEBUGGING VALGRIND OPTIONS"
+-.PP
+-There are also some options for debugging Valgrind itself\&. You shouldn\*(Aqt need to use them in the normal run of things\&. If you wish to see the list, use the
+-\fB\-\-help\-debug\fR
+-option\&.
+-.SH "MEMCHECK OPTIONS"
+-.PP
+-\fB\-\-leak\-check=<no|summary|yes|full> [default: summary] \fR
+-.RS 4
+-When enabled, search for memory leaks when the client program finishes\&. If set to
+-\fIsummary\fR, it says how many leaks occurred\&. If set to
+-\fIfull\fR
+-or
+-\fIyes\fR, it also gives details of each individual leak\&.
+-.RE
+-.PP
+-\fB\-\-show\-possibly\-lost=<yes|no> [default: yes] \fR
+-.RS 4
+-When disabled, the memory leak detector will not show "possibly lost" blocks\&.
+-.RE
+-.PP
+-\fB\-\-leak\-resolution=<low|med|high> [default: high] \fR
+-.RS 4
+-When doing leak checking, determines how willing Memcheck is to consider different backtraces to be the same for the purposes of merging multiple leaks into a single leak report\&. When set to
+-\fIlow\fR, only the first two entries need match\&. When
+-\fImed\fR, four entries have to match\&. When
+-\fIhigh\fR, all entries need to match\&.
+-.sp
+-For hardcore leak debugging, you probably want to use
+-\fB\-\-leak\-resolution=high\fR
+-together with
+-\fB\-\-num\-callers=40\fR
+-or some such large number\&.
+-.sp
+-Note that the
+-\fB\-\-leak\-resolution\fR
+-setting does not affect Memcheck\*(Aqs ability to find leaks\&. It only changes how the results are presented\&.
+-.RE
+-.PP
+-\fB\-\-show\-reachable=<yes|no> [default: no] \fR
+-.RS 4
+-When disabled, the memory leak detector only shows "definitely lost" and "possibly lost" blocks\&. When enabled, the leak detector also shows "reachable" and "indirectly lost" blocks\&. (In other words, it shows all blocks, except suppressed ones, so
+-\fB\-\-show\-all\fR
+-would be a better name for it\&.)
+-.RE
+-.PP
+-\fB\-\-undef\-value\-errors=<yes|no> [default: yes] \fR
+-.RS 4
+-Controls whether Memcheck reports uses of undefined value errors\&. Set this to
+-\fIno\fR
+-if you don\*(Aqt want to see undefined value errors\&. It also has the side effect of speeding up Memcheck somewhat\&.
+-.RE
+-.PP
+-\fB\-\-track\-origins=<yes|no> [default: no] \fR
+-.RS 4
+-Controls whether Memcheck tracks the origin of uninitialised values\&. By default, it does not, which means that although it can tell you that an uninitialised value is being used in a dangerous way, it cannot tell you where the uninitialised value came from\&. This often makes it difficult to track down the root problem\&.
+-.sp
+-When set to
+-\fIyes\fR, Memcheck keeps track of the origins of all uninitialised values\&. Then, when an uninitialised value error is reported, Memcheck will try to show the origin of the value\&. An origin can be one of the following four places: a heap block, a stack allocation, a client request, or miscellaneous other sources (eg, a call to
+-\fIbrk\fR)\&.
+-.sp
+-For uninitialised values originating from a heap block, Memcheck shows where the block was allocated\&. For uninitialised values originating from a stack allocation, Memcheck can tell you which function allocated the value, but no more than that \-\- typically it shows you the source location of the opening brace of the function\&. So you should carefully check that all of the function\*(Aqs local variables are initialised properly\&.
+-.sp
+-Performance overhead: origin tracking is expensive\&. It halves Memcheck\*(Aqs speed and increases memory use by a minimum of 100MB, and possibly more\&. Nevertheless it can drastically reduce the effort required to identify the root cause of uninitialised value errors, and so is often a programmer productivity win, despite running more slowly\&.
+-.sp
+-Accuracy: Memcheck tracks origins quite accurately\&. To avoid very large space and time overheads, some approximations are made\&. It is possible, although unlikely, that Memcheck will report an incorrect origin, or not be able to identify any origin\&.
+-.sp
+-Note that the combination
+-\fB\-\-track\-origins=yes\fR
+-and
+-\fB\-\-undef\-value\-errors=no\fR
+-is nonsensical\&. Memcheck checks for and rejects this combination at startup\&.
+-.RE
+-.PP
+-\fB\-\-partial\-loads\-ok=<yes|no> [default: no] \fR
+-.RS 4
+-Controls how Memcheck handles word\-sized, word\-aligned loads from addresses for which some bytes are addressable and others are not\&. When
+-\fIyes\fR, such loads do not produce an address error\&. Instead, loaded bytes originating from illegal addresses are marked as uninitialised, and those corresponding to legal addresses are handled in the normal way\&.
+-.sp
+-When
+-\fIno\fR, loads from partially invalid addresses are treated the same as loads from completely invalid addresses: an illegal\-address error is issued, and the resulting bytes are marked as initialised\&.
+-.sp
+-Note that code that behaves in this way is in violation of the the ISO C/C++ standards, and should be considered broken\&. If at all possible, such code should be fixed\&. This option should be used only as a last resort\&.
+-.RE
+-.PP
+-\fB\-\-freelist\-vol=<number> [default: 20000000] \fR
+-.RS 4
+-When the client program releases memory using
+-\fBfree\fR
+-(in
+-C) or
+-delete
+-(C++), that memory is not immediately made available for re\-allocation\&. Instead, it is marked inaccessible and placed in a queue of freed blocks\&. The purpose is to defer as long as possible the point at which freed\-up memory comes back into circulation\&. This increases the chance that Memcheck will be able to detect invalid accesses to blocks for some significant period of time after they have been freed\&.
+-.sp
+-This option specifies the maximum total size, in bytes, of the blocks in the queue\&. The default value is twenty million bytes\&. Increasing this increases the total amount of memory used by Memcheck but may detect invalid uses of freed blocks which would otherwise go undetected\&.
+-.RE
+-.PP
+-\fB\-\-freelist\-big\-blocks=<number> [default: 1000000] \fR
+-.RS 4
+-When making blocks from the queue of freed blocks available for re\-allocation, Memcheck will in priority re\-circulate the blocks with a size greater or equal to
+-\fB\-\-freelist\-big\-blocks\fR\&. This ensures that freeing big blocks (in particular freeing blocks bigger than
+-\fB\-\-freelist\-vol\fR) does not immediately lead to a re\-circulation of all (or a lot of) the small blocks in the free list\&. In other words, this option increases the likelihood to discover dangling pointers for the "small" blocks, even when big blocks are freed\&.
+-.sp
+-Setting a value of 0 means that all the blocks are re\-circulated in a FIFO order\&.
+-.RE
+-.PP
+-\fB\-\-workaround\-gcc296\-bugs=<yes|no> [default: no] \fR
+-.RS 4
+-When enabled, assume that reads and writes some small distance below the stack pointer are due to bugs in GCC 2\&.96, and does not report them\&. The "small distance" is 256 bytes by default\&. Note that GCC 2\&.96 is the default compiler on some ancient Linux distributions (RedHat 7\&.X) and so you may need to use this option\&. Do not use it if you do not have to, as it can cause real errors to be overlooked\&. A better alternative is to use a more recent GCC in which this bug is fixed\&.
+-.sp
+-You may also need to use this option when working with GCC 3\&.X or 4\&.X on 32\-bit PowerPC Linux\&. This is because GCC generates code which occasionally accesses below the stack pointer, particularly for floating\-point to/from integer conversions\&. This is in violation of the 32\-bit PowerPC ELF specification, which makes no provision for locations below the stack pointer to be accessible\&.
+-.RE
+-.PP
+-\fB\-\-ignore\-ranges=0xPP\-0xQQ[,0xRR\-0xSS] \fR
+-.RS 4
+-Any ranges listed in this option (and multiple ranges can be specified, separated by commas) will be ignored by Memcheck\*(Aqs addressability checking\&.
+-.RE
+-.PP
+-\fB\-\-malloc\-fill=<hexnumber> \fR
+-.RS 4
+-Fills blocks allocated by
+-malloc,
+-new, etc, but not by
+-calloc, with the specified byte\&. This can be useful when trying to shake out obscure memory corruption problems\&. The allocated area is still regarded by Memcheck as undefined \-\- this option only affects its contents\&. Note that
+-\fB\-\-malloc\-fill\fR
+-does not affect a block of memory when it is used as argument to client requests VALGRIND_MEMPOOL_ALLOC or VALGRIND_MALLOCLIKE_BLOCK\&.
+-.RE
+-.PP
+-\fB\-\-free\-fill=<hexnumber> \fR
+-.RS 4
+-Fills blocks freed by
+-free,
+-delete, etc, with the specified byte value\&. This can be useful when trying to shake out obscure memory corruption problems\&. The freed area is still regarded by Memcheck as not valid for access \-\- this option only affects its contents\&. Note that
+-\fB\-\-free\-fill\fR
+-does not affect a block of memory when it is used as argument to client requests VALGRIND_MEMPOOL_FREE or VALGRIND_FREELIKE_BLOCK\&.
+-.RE
+-.SH "CACHEGRIND OPTIONS"
+-.PP
+-\fB\-\-I1=<size>,<associativity>,<line size> \fR
+-.RS 4
+-Specify the size, associativity and line size of the level 1 instruction cache\&.
+-.RE
+-.PP
+-\fB\-\-D1=<size>,<associativity>,<line size> \fR
+-.RS 4
+-Specify the size, associativity and line size of the level 1 data cache\&.
+-.RE
+-.PP
+-\fB\-\-LL=<size>,<associativity>,<line size> \fR
+-.RS 4
+-Specify the size, associativity and line size of the last\-level cache\&.
+-.RE
+-.PP
+-\fB\-\-cache\-sim=no|yes [yes] \fR
+-.RS 4
+-Enables or disables collection of cache access and miss counts\&.
+-.RE
+-.PP
+-\fB\-\-branch\-sim=no|yes [no] \fR
+-.RS 4
+-Enables or disables collection of branch instruction and misprediction counts\&. By default this is disabled as it slows Cachegrind down by approximately 25%\&. Note that you cannot specify
+-\fB\-\-cache\-sim=no\fR
+-and
+-\fB\-\-branch\-sim=no\fR
+-together, as that would leave Cachegrind with no information to collect\&.
+-.RE
+-.PP
+-\fB\-\-cachegrind\-out\-file=<file> \fR
+-.RS 4
+-Write the profile data to
+-file
+-rather than to the default output file,
+-cachegrind\&.out\&.<pid>\&. The
+-\fB%p\fR
+-and
+-\fB%q\fR
+-format specifiers can be used to embed the process ID and/or the contents of an environment variable in the name, as is the case for the core option
+-\fB--log-file\fR\&.
+-.RE
+-.SH "CALLGRIND OPTIONS"
+-.PP
+-\fB\-\-callgrind\-out\-file=<file> \fR
+-.RS 4
+-Write the profile data to
+-file
+-rather than to the default output file,
+-callgrind\&.out\&.<pid>\&. The
+-\fB%p\fR
+-and
+-\fB%q\fR
+-format specifiers can be used to embed the process ID and/or the contents of an environment variable in the name, as is the case for the core option
+-\fB--log-file\fR\&. When multiple dumps are made, the file name is modified further; see below\&.
+-.RE
+-.PP
+-\fB\-\-dump\-line=<no|yes> [default: yes] \fR
+-.RS 4
+-This specifies that event counting should be performed at source line granularity\&. This allows source annotation for sources which are compiled with debug information (\fB\-g\fR)\&.
+-.RE
+-.PP
+-\fB\-\-dump\-instr=<no|yes> [default: no] \fR
+-.RS 4
+-This specifies that event counting should be performed at per\-instruction granularity\&. This allows for assembly code annotation\&. Currently the results can only be displayed by KCachegrind\&.
+-.RE
+-.PP
+-\fB\-\-compress\-strings=<no|yes> [default: yes] \fR
+-.RS 4
+-This option influences the output format of the profile data\&. It specifies whether strings (file and function names) should be identified by numbers\&. This shrinks the file, but makes it more difficult for humans to read (which is not recommended in any case)\&.
+-.RE
+-.PP
+-\fB\-\-compress\-pos=<no|yes> [default: yes] \fR
+-.RS 4
+-This option influences the output format of the profile data\&. It specifies whether numerical positions are always specified as absolute values or are allowed to be relative to previous numbers\&. This shrinks the file size\&.
+-.RE
+-.PP
+-\fB\-\-combine\-dumps=<no|yes> [default: no] \fR
+-.RS 4
+-When enabled, when multiple profile data parts are to be generated these parts are appended to the same output file\&. Not recommended\&.
+-.RE
+-.PP
+-\fB\-\-dump\-every\-bb=<count> [default: 0, never] \fR
+-.RS 4
+-Dump profile data every
+-\fBcount\fR
+-basic blocks\&. Whether a dump is needed is only checked when Valgrind\*(Aqs internal scheduler is run\&. Therefore, the minimum setting useful is about 100000\&. The count is a 64\-bit value to make long dump periods possible\&.
+-.RE
+-.PP
+-\fB\-\-dump\-before=<function> \fR
+-.RS 4
+-Dump when entering
+-\fBfunction\fR\&.
+-.RE
+-.PP
+-\fB\-\-zero\-before=<function> \fR
+-.RS 4
+-Zero all costs when entering
+-\fBfunction\fR\&.
+-.RE
+-.PP
+-\fB\-\-dump\-after=<function> \fR
+-.RS 4
+-Dump when leaving
+-\fBfunction\fR\&.
+-.RE
+-.PP
+-\fB\-\-instr\-atstart=<yes|no> [default: yes] \fR
+-.RS 4
+-Specify if you want Callgrind to start simulation and profiling from the beginning of the program\&. When set to
+-no, Callgrind will not be able to collect any information, including calls, but it will have at most a slowdown of around 4, which is the minimum Valgrind overhead\&. Instrumentation can be interactively enabled via
+-callgrind_control \-i on\&.
+-.sp
+-Note that the resulting call graph will most probably not contain
+-\fBmain\fR, but will contain all the functions executed after instrumentation was enabled\&. Instrumentation can also programatically enabled/disabled\&. See the Callgrind include file
+-callgrind\&.h
+-for the macro you have to use in your source code\&.
+-.sp
+-For cache simulation, results will be less accurate when switching on instrumentation later in the program run, as the simulator starts with an empty cache at that moment\&. Switch on event collection later to cope with this error\&.
+-.RE
+-.PP
+-\fB\-\-collect\-atstart=<yes|no> [default: yes] \fR
+-.RS 4
+-Specify whether event collection is enabled at beginning of the profile run\&.
+-.sp
+-To only look at parts of your program, you have two possibilities:
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 1.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  1." 4.2
+-.\}
+-Zero event counters before entering the program part you want to profile, and dump the event counters to a file after leaving that program part\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 2.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  2." 4.2
+-.\}
+-Switch on/off collection state as needed to only see event counters happening while inside of the program part you want to profile\&.
+-.RE
+-.sp
+-The second option can be used if the program part you want to profile is called many times\&. Option 1, i\&.e\&. creating a lot of dumps is not practical here\&.
+-.sp
+-Collection state can be toggled at entry and exit of a given function with the option
+-\fB--toggle-collect\fR\&. If you use this option, collection state should be disabled at the beginning\&. Note that the specification of
+-\fB\-\-toggle\-collect\fR
+-implicitly sets
+-\fB\-\-collect\-state=no\fR\&.
+-.sp
+-Collection state can be toggled also by inserting the client request
+-CALLGRIND_TOGGLE_COLLECT ;
+-at the needed code positions\&.
+-.RE
+-.PP
+-\fB\-\-toggle\-collect=<function> \fR
+-.RS 4
+-Toggle collection on entry/exit of
+-\fBfunction\fR\&.
+-.RE
+-.PP
+-\fB\-\-collect\-jumps=<no|yes> [default: no] \fR
+-.RS 4
+-This specifies whether information for (conditional) jumps should be collected\&. As above, callgrind_annotate currently is not able to show you the data\&. You have to use KCachegrind to get jump arrows in the annotated code\&.
+-.RE
+-.PP
+-\fB\-\-collect\-systime=<no|yes> [default: no] \fR
+-.RS 4
+-This specifies whether information for system call times should be collected\&.
+-.RE
+-.PP
+-\fB\-\-collect\-bus=<no|yes> [default: no] \fR
+-.RS 4
+-This specifies whether the number of global bus events executed should be collected\&. The event type "Ge" is used for these events\&.
+-.RE
+-.PP
+-\fB\-\-cache\-sim=<yes|no> [default: no] \fR
+-.RS 4
+-Specify if you want to do full cache simulation\&. By default, only instruction read accesses will be counted ("Ir")\&. With cache simulation, further event counters are enabled: Cache misses on instruction reads ("I1mr"/"ILmr"), data read accesses ("Dr") and related cache misses ("D1mr"/"DLmr"), data write accesses ("Dw") and related cache misses ("D1mw"/"DLmw")\&. For more information, see
+-???\&.
+-.RE
+-.PP
+-\fB\-\-branch\-sim=<yes|no> [default: no] \fR
+-.RS 4
+-Specify if you want to do branch prediction simulation\&. Further event counters are enabled: Number of executed conditional branches and related predictor misses ("Bc"/"Bcm"), executed indirect jumps and related misses of the jump address predictor ("Bi"/"Bim")\&.
+-.RE
+-.SH "HELGRIND OPTIONS"
+-.PP
+-\fB\-\-free\-is\-write=no|yes [default: no] \fR
+-.RS 4
+-When enabled (not the default), Helgrind treats freeing of heap memory as if the memory was written immediately before the free\&. This exposes races where memory is referenced by one thread, and freed by another, but there is no observable synchronisation event to ensure that the reference happens before the free\&.
+-.sp
+-This functionality is new in Valgrind 3\&.7\&.0, and is regarded as experimental\&. It is not enabled by default because its interaction with custom memory allocators is not well understood at present\&. User feedback is welcomed\&.
+-.RE
+-.PP
+-\fB\-\-track\-lockorders=no|yes [default: yes] \fR
+-.RS 4
+-When enabled (the default), Helgrind performs lock order consistency checking\&. For some buggy programs, the large number of lock order errors reported can become annoying, particularly if you\*(Aqre only interested in race errors\&. You may therefore find it helpful to disable lock order checking\&.
+-.RE
+-.PP
+-\fB\-\-history\-level=none|approx|full [default: full] \fR
+-.RS 4
+-\fB\-\-history\-level=full\fR
+-(the default) causes Helgrind collects enough information about "old" accesses that it can produce two stack traces in a race report \-\- both the stack trace for the current access, and the trace for the older, conflicting access\&. To limit memory usage, "old" accesses stack traces are limited to a maximum of 8 entries, even if
+-\fB\-\-num\-callers\fR
+-value is bigger\&.
+-.sp
+-Collecting such information is expensive in both speed and memory, particularly for programs that do many inter\-thread synchronisation events (locks, unlocks, etc)\&. Without such information, it is more difficult to track down the root causes of races\&. Nonetheless, you may not need it in situations where you just want to check for the presence or absence of races, for example, when doing regression testing of a previously race\-free program\&.
+-.sp
+-\fB\-\-history\-level=none\fR
+-is the opposite extreme\&. It causes Helgrind not to collect any information about previous accesses\&. This can be dramatically faster than
+-\fB\-\-history\-level=full\fR\&.
+-.sp
+-\fB\-\-history\-level=approx\fR
+-provides a compromise between these two extremes\&. It causes Helgrind to show a full trace for the later access, and approximate information regarding the earlier access\&. This approximate information consists of two stacks, and the earlier access is guaranteed to have occurred somewhere between program points denoted by the two stacks\&. This is not as useful as showing the exact stack for the previous access (as
+-\fB\-\-history\-level=full\fR
+-does), but it is better than nothing, and it is almost as fast as
+-\fB\-\-history\-level=none\fR\&.
+-.RE
+-.PP
+-\fB\-\-conflict\-cache\-size=N [default: 1000000] \fR
+-.RS 4
+-This flag only has any effect at
+-\fB\-\-history\-level=full\fR\&.
+-.sp
+-Information about "old" conflicting accesses is stored in a cache of limited size, with LRU\-style management\&. This is necessary because it isn\*(Aqt practical to store a stack trace for every single memory access made by the program\&. Historical information on not recently accessed locations is periodically discarded, to free up space in the cache\&.
+-.sp
+-This option controls the size of the cache, in terms of the number of different memory addresses for which conflicting access information is stored\&. If you find that Helgrind is showing race errors with only one stack instead of the expected two stacks, try increasing this value\&.
+-.sp
+-The minimum value is 10,000 and the maximum is 30,000,000 (thirty times the default value)\&. Increasing the value by 1 increases Helgrind\*(Aqs memory requirement by very roughly 100 bytes, so the maximum value will easily eat up three extra gigabytes or so of memory\&.
+-.RE
+-.PP
+-\fB\-\-check\-stack\-refs=no|yes [default: yes] \fR
+-.RS 4
+-By default Helgrind checks all data memory accesses made by your program\&. This flag enables you to skip checking for accesses to thread stacks (local variables)\&. This can improve performance, but comes at the cost of missing races on stack\-allocated data\&.
+-.RE
+-.SH "DRD OPTIONS"
+-.PP
+-\fB\-\-check\-stack\-var=<yes|no> [default: no]\fR
+-.RS 4
+-Controls whether DRD detects data races on stack variables\&. Verifying stack variables is disabled by default because most programs do not share stack variables over threads\&.
+-.RE
+-.PP
+-\fB\-\-exclusive\-threshold=<n> [default: off]\fR
+-.RS 4
+-Print an error message if any mutex or writer lock has been held longer than the time specified in milliseconds\&. This option enables the detection of lock contention\&.
+-.RE
+-.PP
+-\fB\-\-join\-list\-vol=<n> [default: 10]\fR
+-.RS 4
+-Data races that occur between a statement at the end of one thread and another thread can be missed if memory access information is discarded immediately after a thread has been joined\&. This option allows to specify for how many joined threads memory access information should be retained\&.
+-.RE
+-.PP
+-\fB \-\-first\-race\-only=<yes|no> [default: no] \fR
+-.RS 4
+-Whether to report only the first data race that has been detected on a memory location or all data races that have been detected on a memory location\&.
+-.RE
+-.PP
+-\fB \-\-free\-is\-write=<yes|no> [default: no] \fR
+-.RS 4
+-Whether to report races between accessing memory and freeing memory\&. Enabling this option may cause DRD to run slightly slower\&. Notes:
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-Don\*(Aqt enable this option when using custom memory allocators that use the
+-VG_USERREQ__MALLOCLIKE_BLOCK
+-and
+-VG_USERREQ__FREELIKE_BLOCK
+-because that would result in false positives\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04'\(bu\h'+03'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP \(bu 2.3
+-.\}
+-Don\*(Aqt enable this option when using reference\-counted objects because that will result in false positives, even when that code has been annotated properly with
+-ANNOTATE_HAPPENS_BEFORE
+-and
+-ANNOTATE_HAPPENS_AFTER\&. See e\&.g\&. the output of the following command for an example:
+-valgrind \-\-tool=drd \-\-free\-is\-write=yes drd/tests/annotate_smart_pointer\&.
+-.RE
+-.sp
+-.RE
+-.PP
+-\fB \-\-report\-signal\-unlocked=<yes|no> [default: yes] \fR
+-.RS 4
+-Whether to report calls to
+-\fBpthread_cond_signal\fR
+-and
+-\fBpthread_cond_broadcast\fR
+-where the mutex associated with the signal through
+-\fBpthread_cond_wait\fR
+-or
+-\fBpthread_cond_timed_wait\fRis not locked at the time the signal is sent\&. Sending a signal without holding a lock on the associated mutex is a common programming error which can cause subtle race conditions and unpredictable behavior\&. There exist some uncommon synchronization patterns however where it is safe to send a signal without holding a lock on the associated mutex\&.
+-.RE
+-.PP
+-\fB\-\-segment\-merging=<yes|no> [default: yes]\fR
+-.RS 4
+-Controls segment merging\&. Segment merging is an algorithm to limit memory usage of the data race detection algorithm\&. Disabling segment merging may improve the accuracy of the so\-called \*(Aqother segments\*(Aq displayed in race reports but can also trigger an out of memory error\&.
+-.RE
+-.PP
+-\fB\-\-segment\-merging\-interval=<n> [default: 10]\fR
+-.RS 4
+-Perform segment merging only after the specified number of new segments have been created\&. This is an advanced configuration option that allows to choose whether to minimize DRD\*(Aqs memory usage by choosing a low value or to let DRD run faster by choosing a slightly higher value\&. The optimal value for this parameter depends on the program being analyzed\&. The default value works well for most programs\&.
+-.RE
+-.PP
+-\fB\-\-shared\-threshold=<n> [default: off]\fR
+-.RS 4
+-Print an error message if a reader lock has been held longer than the specified time (in milliseconds)\&. This option enables the detection of lock contention\&.
+-.RE
+-.PP
+-\fB\-\-show\-confl\-seg=<yes|no> [default: yes]\fR
+-.RS 4
+-Show conflicting segments in race reports\&. Since this information can help to find the cause of a data race, this option is enabled by default\&. Disabling this option makes the output of DRD more compact\&.
+-.RE
+-.PP
+-\fB\-\-show\-stack\-usage=<yes|no> [default: no]\fR
+-.RS 4
+-Print stack usage at thread exit time\&. When a program creates a large number of threads it becomes important to limit the amount of virtual memory allocated for thread stacks\&. This option makes it possible to observe how much stack memory has been used by each thread of the the client program\&. Note: the DRD tool itself allocates some temporary data on the client thread stack\&. The space necessary for this temporary data must be allocated by the client program when it allocates stack memory, but is not included in stack usage reported by DRD\&.
+-.RE
+-.PP
+-\fB\-\-trace\-addr=<address> [default: none]\fR
+-.RS 4
+-Trace all load and store activity for the specified address\&. This option may be specified more than once\&.
+-.RE
+-.PP
+-\fB\-\-ptrace\-addr=<address> [default: none]\fR
+-.RS 4
+-Trace all load and store activity for the specified address and keep doing that even after the memory at that address has been freed and reallocated\&.
+-.RE
+-.PP
+-\fB\-\-trace\-alloc=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all memory allocations and deallocations\&. May produce a huge amount of output\&.
+-.RE
+-.PP
+-\fB\-\-trace\-barrier=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all barrier activity\&.
+-.RE
+-.PP
+-\fB\-\-trace\-cond=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all condition variable activity\&.
+-.RE
+-.PP
+-\fB\-\-trace\-fork\-join=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all thread creation and all thread termination events\&.
+-.RE
+-.PP
+-\fB\-\-trace\-hb=<yes|no> [default: no]\fR
+-.RS 4
+-Trace execution of the
+-ANNOTATE_HAPPENS_BEFORE(),
+-ANNOTATE_HAPPENS_AFTER()
+-and
+-ANNOTATE_HAPPENS_DONE()
+-client requests\&.
+-.RE
+-.PP
+-\fB\-\-trace\-mutex=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all mutex activity\&.
+-.RE
+-.PP
+-\fB\-\-trace\-rwlock=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all reader\-writer lock activity\&.
+-.RE
+-.PP
+-\fB\-\-trace\-semaphore=<yes|no> [default: no]\fR
+-.RS 4
+-Trace all semaphore activity\&.
+-.RE
+-.SH "MASSIF OPTIONS"
+-.PP
+-\fB\-\-heap=<yes|no> [default: yes] \fR
+-.RS 4
+-Specifies whether heap profiling should be done\&.
+-.RE
+-.PP
+-\fB\-\-heap\-admin=<size> [default: 8] \fR
+-.RS 4
+-If heap profiling is enabled, gives the number of administrative bytes per block to use\&. This should be an estimate of the average, since it may vary\&. For example, the allocator used by glibc on Linux requires somewhere between 4 to 15 bytes per block, depending on various factors\&. That allocator also requires admin space for freed blocks, but Massif cannot account for this\&.
+-.RE
+-.PP
+-\fB\-\-stacks=<yes|no> [default: no] \fR
+-.RS 4
+-Specifies whether stack profiling should be done\&. This option slows Massif down greatly, and so is off by default\&. Note that Massif assumes that the main stack has size zero at start\-up\&. This is not true, but doing otherwise accurately is difficult\&. Furthermore, starting at zero better indicates the size of the part of the main stack that a user program actually has control over\&.
+-.RE
+-.PP
+-\fB\-\-pages\-as\-heap=<yes|no> [default: no] \fR
+-.RS 4
+-Tells Massif to profile memory at the page level rather than at the malloc\*(Aqd block level\&. See above for details\&.
+-.RE
+-.PP
+-\fB\-\-depth=<number> [default: 30] \fR
+-.RS 4
+-Maximum depth of the allocation trees recorded for detailed snapshots\&. Increasing it will make Massif run somewhat more slowly, use more memory, and produce bigger output files\&.
+-.RE
+-.PP
+-\fB\-\-alloc\-fn=<name> \fR
+-.RS 4
+-Functions specified with this option will be treated as though they were a heap allocation function such as
+-\fBmalloc\fR\&. This is useful for functions that are wrappers to
+-\fBmalloc\fR
+-or
+-\fBnew\fR, which can fill up the allocation trees with uninteresting information\&. This option can be specified multiple times on the command line, to name multiple functions\&.
+-.sp
+-Note that the named function will only be treated this way if it is the top entry in a stack trace, or just below another function treated this way\&. For example, if you have a function
+-\fBmalloc1\fR
+-that wraps
+-\fBmalloc\fR, and
+-\fBmalloc2\fR
+-that wraps
+-\fBmalloc1\fR, just specifying
+-\fB\-\-alloc\-fn=malloc2\fR
+-will have no effect\&. You need to specify
+-\fB\-\-alloc\-fn=malloc1\fR
+-as well\&. This is a little inconvenient, but the reason is that checking for allocation functions is slow, and it saves a lot of time if Massif can stop looking through the stack trace entries as soon as it finds one that doesn\*(Aqt match rather than having to continue through all the entries\&.
+-.sp
+-Note that C++ names are demangled\&. Note also that overloaded C++ names must be written in full\&. Single quotes may be necessary to prevent the shell from breaking them up\&. For example:
+-.sp
+-.if n \{\
+-.RS 4
+-.\}
+-.nf
+-\-\-alloc\-fn=\*(Aqoperator new(unsigned, std::nothrow_t const&)\*(Aq
+-.fi
+-.if n \{\
+-.RE
+-.\}
+-.sp
+-.RE
+-.PP
+-\fB\-\-ignore\-fn=<name> \fR
+-.RS 4
+-Any direct heap allocation (i\&.e\&. a call to
+-\fBmalloc\fR,
+-\fBnew\fR, etc, or a call to a function named by an
+-\fB\-\-alloc\-fn\fR
+-option) that occurs in a function specified by this option will be ignored\&. This is mostly useful for testing purposes\&. This option can be specified multiple times on the command line, to name multiple functions\&.
+-.sp
+-Any
+-\fBrealloc\fR
+-of an ignored block will also be ignored, even if the
+-\fBrealloc\fR
+-call does not occur in an ignored function\&. This avoids the possibility of negative heap sizes if ignored blocks are shrunk with
+-\fBrealloc\fR\&.
+-.sp
+-The rules for writing C++ function names are the same as for
+-\fB\-\-alloc\-fn\fR
+-above\&.
+-.RE
+-.PP
+-\fB\-\-threshold=<m\&.n> [default: 1\&.0] \fR
+-.RS 4
+-The significance threshold for heap allocations, as a percentage of total memory size\&. Allocation tree entries that account for less than this will be aggregated\&. Note that this should be specified in tandem with ms_print\*(Aqs option of the same name\&.
+-.RE
+-.PP
+-\fB\-\-peak\-inaccuracy=<m\&.n> [default: 1\&.0] \fR
+-.RS 4
+-Massif does not necessarily record the actual global memory allocation peak; by default it records a peak only when the global memory allocation size exceeds the previous peak by at least 1\&.0%\&. This is because there can be many local allocation peaks along the way, and doing a detailed snapshot for every one would be expensive and wasteful, as all but one of them will be later discarded\&. This inaccuracy can be changed (even to 0\&.0%) via this option, but Massif will run drastically slower as the number approaches zero\&.
+-.RE
+-.PP
+-\fB\-\-time\-unit=<i|ms|B> [default: i] \fR
+-.RS 4
+-The time unit used for the profiling\&. There are three possibilities: instructions executed (i), which is good for most cases; real (wallclock) time (ms, i\&.e\&. milliseconds), which is sometimes useful; and bytes allocated/deallocated on the heap and/or stack (B), which is useful for very short\-run programs, and for testing purposes, because it is the most reproducible across different machines\&.
+-.RE
+-.PP
+-\fB\-\-detailed\-freq=<n> [default: 10] \fR
+-.RS 4
+-Frequency of detailed snapshots\&. With
+-\fB\-\-detailed\-freq=1\fR, every snapshot is detailed\&.
+-.RE
+-.PP
+-\fB\-\-max\-snapshots=<n> [default: 100] \fR
+-.RS 4
+-The maximum number of snapshots recorded\&. If set to N, for all programs except very short\-running ones, the final number of snapshots will be between N/2 and N\&.
+-.RE
+-.PP
+-\fB\-\-massif\-out\-file=<file> [default: massif\&.out\&.%p] \fR
+-.RS 4
+-Write the profile data to
+-file
+-rather than to the default output file,
+-massif\&.out\&.<pid>\&. The
+-\fB%p\fR
+-and
+-\fB%q\fR
+-format specifiers can be used to embed the process ID and/or the contents of an environment variable in the name, as is the case for the core option
+-\fB--log-file\fR\&.
+-.RE
+-.SH "SGCHECK OPTIONS"
+-<xi:include></xi:include>.SH "BBV OPTIONS"
+-.PP
+-\fB\-\-bb\-out\-file=<name> [default: bb\&.out\&.%p] \fR
+-.RS 4
+-This option selects the name of the basic block vector file\&. The
+-\fB%p\fR
+-and
+-\fB%q\fR
+-format specifiers can be used to embed the process ID and/or the contents of an environment variable in the name, as is the case for the core option
+-\fB--log-file\fR\&.
+-.RE
+-.PP
+-\fB\-\-pc\-out\-file=<name> [default: pc\&.out\&.%p] \fR
+-.RS 4
+-This option selects the name of the PC file\&. This file holds program counter addresses and function name info for the various basic blocks\&. This can be used in conjunction with the basic block vector file to fast\-forward via function names instead of just instruction counts\&. The
+-\fB%p\fR
+-and
+-\fB%q\fR
+-format specifiers can be used to embed the process ID and/or the contents of an environment variable in the name, as is the case for the core option
+-\fB--log-file\fR\&.
+-.RE
+-.PP
+-\fB\-\-interval\-size=<number> [default: 100000000] \fR
+-.RS 4
+-This option selects the size of the interval to use\&. The default is 100 million instructions, which is a commonly used value\&. Other sizes can be used; smaller intervals can help programs with finer\-grained phases\&. However smaller interval size can lead to accuracy issues due to warm\-up effects (When fast\-forwarding the various architectural features will be un\-initialized, and it will take some number of instructions before they "warm up" to the state a full simulation would be at without the fast\-forwarding\&. Large interval sizes tend to mitigate this\&.)
+-.RE
+-.PP
+-\fB\-\-instr\-count\-only [default: no] \fR
+-.RS 4
+-This option tells the tool to only display instruction count totals, and to not generate the actual basic block vector file\&. This is useful for debugging, and for gathering instruction count info without generating the large basic block vector files\&.
+-.RE
+-.SH "LACKEY OPTIONS"
+-.PP
+-\fB\-\-basic\-counts=<no|yes> [default: yes] \fR
+-.RS 4
+-When enabled, Lackey prints the following statistics and information about the execution of the client program:
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 1.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  1." 4.2
+-.\}
+-The number of calls to the function specified by the
+-\fB\-\-fnname\fR
+-option (the default is
+-main)\&. If the program has had its symbols stripped, the count will always be zero\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 2.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  2." 4.2
+-.\}
+-The number of conditional branches encountered and the number and proportion of those taken\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 3.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  3." 4.2
+-.\}
+-The number of superblocks entered and completed by the program\&. Note that due to optimisations done by the JIT, this is not at all an accurate value\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 4.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  4." 4.2
+-.\}
+-The number of guest (x86, amd64, ppc, etc\&.) instructions and IR statements executed\&. IR is Valgrind\*(Aqs RISC\-like intermediate representation via which all instrumentation is done\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 5.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  5." 4.2
+-.\}
+-Ratios between some of these counts\&.
+-.RE
+-.sp
+-.RS 4
+-.ie n \{\
+-\h'-04' 6.\h'+01'\c
+-.\}
+-.el \{\
+-.sp -1
+-.IP "  6." 4.2
+-.\}
+-The exit code of the client program\&.
+-.RE
+-.RE
+-.PP
+-\fB\-\-detailed\-counts=<no|yes> [default: no] \fR
+-.RS 4
+-When enabled, Lackey prints a table containing counts of loads, stores and ALU operations, differentiated by their IR types\&. The IR types are identified by their IR name ("I1", "I8", \&.\&.\&. "I128", "F32", "F64", and "V128")\&.
+-.RE
+-.PP
+-\fB\-\-trace\-mem=<no|yes> [default: no] \fR
+-.RS 4
+-When enabled, Lackey prints the size and address of almost every memory access made by the program\&. See the comments at the top of the file
+-lackey/lk_main\&.c
+-for details about the output format, how it works, and inaccuracies in the address trace\&. Note that this option produces immense amounts of output\&.
+-.RE
+-.PP
+-\fB\-\-trace\-superblocks=<no|yes> [default: no] \fR
+-.RS 4
+-When enabled, Lackey prints out the address of every superblock (a single entry, multiple exit, linear chunk of code) executed by the program\&. This is primarily of interest to Valgrind developers\&. See the comments at the top of the file
+-lackey/lk_main\&.c
+-for details about the output format\&. Note that this option produces large amounts of output\&.
+-.RE
+-.PP
+-\fB\-\-fnname=<name> [default: main] \fR
+-.RS 4
+-Changes the function for which calls are counted when
+-\fB\-\-basic\-counts=yes\fR
+-is specified\&.
+-.RE
+-.SH "SEE ALSO"
+-.PP
+-cg_annotate(1), callgrind_annotate(1), callgrind_control(1), ms_print(1),
+-$INSTALL/share/doc/valgrind/html/index\&.html
+-or
+-http://www\&.valgrind\&.org/docs/manual/index\&.html\&.
+-.SH "AUTHOR"
+-.PP
+-The Valgrind developers\&.
+-.PP
+-This manpage was written by Andres Roldan <aroldan at debian\&.org> and the Valgrind developers\&.
+diff --git a/none/tests/linux/utils/Makefile.am b/none/tests/linux/utils/Makefile.am
+deleted file mode 100644
+index e6a4749..0000000
+--- a/none/tests/linux/utils/Makefile.am
++++ /dev/null
+@@ -1,12 +0,0 @@
+-
+-include $(top_srcdir)/Makefile.tool-tests.am
+-
+-dist_noinst_SCRIPTS = filter_stderr
+-
+-EXTRA_DIST = $(noinst_SCRIPTS) \
+-	wc.stderr.exp wc.stdout.exp wc.vgtest \
+-	grep.stderr.exp grep.stdout.exp grep.vgtest \
+-	ls.stderr.exp ls.stdout.exp ls.vgtest \
+-	head.stderr.exp head.stdout.exp head.vgtest \
+-	gcc.stderr.exp gcc.vgtest \
+-	hello-world.stderr.exp hello-world.stdout.exp hello-world.vgtest
+diff --git a/none/tests/linux/utils/README.txt b/none/tests/linux/utils/README.txt
+deleted file mode 100644
+index efb2336..0000000
+--- a/none/tests/linux/utils/README.txt
++++ /dev/null
+@@ -1,8 +0,0 @@
+-
+- For now, create all the tests *without* using --leak-check=full
+- or any other memcheck option; all we want to ensure is that the
+- typical UNIX utilities can function under valgrind. Later, when
+- you have access to the sources of all the tools that you are
+- testing (in yocto); add fancier valgrind/memcheck options and
+- *FIX* the tools based on valgrind's findings.
+- 
+diff --git a/none/tests/linux/utils/filter_stderr b/none/tests/linux/utils/filter_stderr
+deleted file mode 100755
+index 3d7c07b..0000000
+--- a/none/tests/linux/utils/filter_stderr
++++ /dev/null
+@@ -1,3 +0,0 @@
+-#! /bin/sh
+-
+-../../filter_stderr "$@"
+diff --git a/none/tests/linux/utils/gcc-test-input.c b/none/tests/linux/utils/gcc-test-input.c
+deleted file mode 100644
+index 4568db9..0000000
+--- a/none/tests/linux/utils/gcc-test-input.c
++++ /dev/null
+@@ -1,7 +0,0 @@
+-#include <stdio.h>
+-
+-int main(void)
+-{
+-  printf("hello, world!\n");
+-  return 0;
+-}
+diff --git a/none/tests/linux/utils/gcc.stderr.exp b/none/tests/linux/utils/gcc.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/gcc.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/gcc.vgtest b/none/tests/linux/utils/gcc.vgtest
+deleted file mode 100644
+index 3624396..0000000
+--- a/none/tests/linux/utils/gcc.vgtest
++++ /dev/null
+@@ -1,3 +0,0 @@
+-prog: /usr/bin/gcc
+-args: ./gcc-test-input.c -o hello-world
+-vgopts: --tool=none
+diff --git a/none/tests/linux/utils/grep-test-input.txt b/none/tests/linux/utils/grep-test-input.txt
+deleted file mode 100644
+index 37c308e..0000000
+--- a/none/tests/linux/utils/grep-test-input.txt
++++ /dev/null
+@@ -1,5 +0,0 @@
+-
+- Mary had a little lamb,
+- it's fleece was white as snow.
+- ...and every where that Mary went,
+- the lamb was sure to go!
+diff --git a/none/tests/linux/utils/grep.stderr.exp b/none/tests/linux/utils/grep.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/grep.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/grep.stdout.exp b/none/tests/linux/utils/grep.stdout.exp
+deleted file mode 100644
+index 05fc51d..0000000
+--- a/none/tests/linux/utils/grep.stdout.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+- Mary had a little lamb,
+- ...and every where that Mary went,
+diff --git a/none/tests/linux/utils/grep.vgtest b/none/tests/linux/utils/grep.vgtest
+deleted file mode 100644
+index cbb3521..0000000
+--- a/none/tests/linux/utils/grep.vgtest
++++ /dev/null
+@@ -1,3 +0,0 @@
+-prog: /bin/grep
+-args: -E "M([a-z])+y" ./grep-test-input.txt
+-vgopts: --tool=none
+diff --git a/none/tests/linux/utils/head-test-input.txt b/none/tests/linux/utils/head-test-input.txt
+deleted file mode 100644
+index 2b694fa..0000000
+--- a/none/tests/linux/utils/head-test-input.txt
++++ /dev/null
+@@ -1,64 +0,0 @@
+-0
+-1
+-2
+-3
+-4
+-5
+-6
+-7
+-8
+-9
+-10
+-11
+-12
+-13
+-14
+-15
+-16
+-17
+-18
+-19
+-20
+-21
+-22
+-23
+-24
+-25
+-26
+-27
+-28
+-29
+-30
+-31
+-32
+-33
+-34
+-35
+-36
+-37
+-38
+-39
+-40
+-41
+-42
+-43
+-44
+-45
+-46
+-47
+-48
+-49
+-50
+-51
+-52
+-53
+-54
+-55
+-56
+-57
+-58
+-59
+-60
+-61
+-62
+-63
+diff --git a/none/tests/linux/utils/head.stderr.exp b/none/tests/linux/utils/head.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/head.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/head.stdout.exp b/none/tests/linux/utils/head.stdout.exp
+deleted file mode 100644
+index f168b45..0000000
+--- a/none/tests/linux/utils/head.stdout.exp
++++ /dev/null
+@@ -1,43 +0,0 @@
+-0
+-1
+-2
+-3
+-4
+-5
+-6
+-7
+-8
+-9
+-10
+-11
+-12
+-13
+-14
+-15
+-16
+-17
+-18
+-19
+-20
+-21
+-22
+-23
+-24
+-25
+-26
+-27
+-28
+-29
+-30
+-31
+-32
+-33
+-34
+-35
+-36
+-37
+-38
+-39
+-40
+-41
+-42
+diff --git a/none/tests/linux/utils/head.vgtest b/none/tests/linux/utils/head.vgtest
+deleted file mode 100644
+index 63a9eed..0000000
+--- a/none/tests/linux/utils/head.vgtest
++++ /dev/null
+@@ -1,3 +0,0 @@
+-prog: /usr/bin/head
+-args: --lines=43 ./head-test-input.txt
+-vgopts: --tool=none
+diff --git a/none/tests/linux/utils/hello-world.stderr.exp b/none/tests/linux/utils/hello-world.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/hello-world.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/hello-world.stdout.exp b/none/tests/linux/utils/hello-world.stdout.exp
+deleted file mode 100644
+index 270c611..0000000
+--- a/none/tests/linux/utils/hello-world.stdout.exp
++++ /dev/null
+@@ -1 +0,0 @@
+-hello, world!
+diff --git a/none/tests/linux/utils/hello-world.vgtest b/none/tests/linux/utils/hello-world.vgtest
+deleted file mode 100644
+index 138a2c5..0000000
+--- a/none/tests/linux/utils/hello-world.vgtest
++++ /dev/null
+@@ -1,5 +0,0 @@
+-prog: hello-world
+-args:
+-vgopts: --tool=none
+-prereq: ./hello-world
+-cleanup: rm -f ./hello-world
+diff --git a/none/tests/linux/utils/ls-test-input.txt b/none/tests/linux/utils/ls-test-input.txt
+deleted file mode 100644
+index 1b7c0cb..0000000
+--- a/none/tests/linux/utils/ls-test-input.txt
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+- Test file for ls test.
+diff --git a/none/tests/linux/utils/ls.stderr.exp b/none/tests/linux/utils/ls.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/ls.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/ls.stdout.exp b/none/tests/linux/utils/ls.stdout.exp
+deleted file mode 100644
+index f6f606e..0000000
+--- a/none/tests/linux/utils/ls.stdout.exp
++++ /dev/null
+@@ -1 +0,0 @@
+-./ls-test-input.txt
+diff --git a/none/tests/linux/utils/ls.vgtest b/none/tests/linux/utils/ls.vgtest
+deleted file mode 100644
+index f737dfc..0000000
+--- a/none/tests/linux/utils/ls.vgtest
++++ /dev/null
+@@ -1,3 +0,0 @@
+-prog: /bin/ls
+-args: ./ls-test-input.txt
+-vgopts: --tool=none
+diff --git a/none/tests/linux/utils/wc-test-input.txt b/none/tests/linux/utils/wc-test-input.txt
+deleted file mode 100644
+index d0efb70..0000000
+--- a/none/tests/linux/utils/wc-test-input.txt
++++ /dev/null
+@@ -1,4 +0,0 @@
+-Mary had a little lamb,
+-It's fleece was white as snow.
+-...and everywhere that Mary went,
+-the lamb was sure to go!
+diff --git a/none/tests/linux/utils/wc.stderr.exp b/none/tests/linux/utils/wc.stderr.exp
+deleted file mode 100644
+index 139597f..0000000
+--- a/none/tests/linux/utils/wc.stderr.exp
++++ /dev/null
+@@ -1,2 +0,0 @@
+-
+-
+diff --git a/none/tests/linux/utils/wc.stdout.exp b/none/tests/linux/utils/wc.stdout.exp
+deleted file mode 100644
+index 87e0b15..0000000
+--- a/none/tests/linux/utils/wc.stdout.exp
++++ /dev/null
+@@ -1 +0,0 @@
+-  4  22 114 ./wc-test-input.txt
+diff --git a/none/tests/linux/utils/wc.vgtest b/none/tests/linux/utils/wc.vgtest
+deleted file mode 100644
+index 7fb33e8..0000000
+--- a/none/tests/linux/utils/wc.vgtest
++++ /dev/null
+@@ -1,3 +0,0 @@
+-prog: /usr/bin/wc
+-args: ./wc-test-input.txt
+-vgopts: --tool=none
+diff --git a/regtest-power7-64.default-build.log b/regtest-power7-64.default-build.log
+deleted file mode 100644
+index 485463e..0000000
+--- a/regtest-power7-64.default-build.log
++++ /dev/null
+@@ -1,2585 +0,0 @@
+-make  check-recursive
+-make[1]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-Making check in include
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
+-Making check in VEX
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make  check-am
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make[3]: Nothing to be done for `check-am'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-Making check in coregrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-make  check-am
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-mkdir -p ../.in_place; \
+-for f in vgpreload_core-ppc64-linux.so vgpreload_core-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../coregrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../coregrind/$f.dSYM ../.in_place; \
+-done
+-mkdir -p ../.in_place; \
+-for f in m_gdbserver/32bit-core-valgrind-s1.xml m_gdbserver/32bit-core-valgrind-s2.xml m_gdbserver/32bit-core.xml m_gdbserver/32bit-linux-valgrind-s1.xml m_gdbserver/32bit-linux-valgrind-s2.xml m_gdbserver/32bit-linux.xml m_gdbserver/32bit-sse-valgrind-s1.xml m_gdbserver/32bit-sse-valgrind-s2.xml m_gdbserver/32bit-sse.xml m_gdbserver/64bit-avx-valgrind-s2.xml m_gdbserver/64bit-avx-valgrind-s1.xml m_gdbserver/64bit-avx.xml m_gdbserver/64bit-core-valgrind-s1.xml m_gdbserver/64bit-core-valgrind-s2.xml m_gdbserver/64bit-core.xml m_gdbserver/64bit-linux-valgrind-s1.xml m_gdbserver/64bit-linux-valgrind-s2.xml m_gdbserver/64bit-linux.xml m_gdbserver/64bit-sse-valgrind-s1.xml m_gdbserver/64bit-sse-valgrind-s2.xml m_gdbserver/64bit-sse.xml m_gdbserver/amd64-avx-coresse-valgrind.xml m_gdbserver/amd64-avx-coresse.xml m_gdbserver/amd64-avx-linux-valgrind.xml m_gdbserver/amd64-avx-linux.xml m_gdbserver/amd64-coresse-valgrind.xml m_gdbserver/amd64-linux-valgrind.xml m_gdbserver/arm-core-valgrind-s1.xml m_gdbserver/arm-core-valgrind-s2.xml m_gdbserver/arm-core.xml m_gdbserver/arm-vfpv3-valgrind-s1.xml m_gdbserver/arm-vfpv3-valgrind-s2.xml m_gdbserver/arm-vfpv3.xml m_gdbserver/arm-with-vfpv3-valgrind.xml m_gdbserver/arm-with-vfpv3.xml m_gdbserver/i386-coresse-valgrind.xml m_gdbserver/i386-linux-valgrind.xml m_gdbserver/power64-core-valgrind-s1.xml m_gdbserver/power64-core-valgrind-s2.xml m_gdbserver/power64-core.xml m_gdbserver/power64-linux-valgrind-s1.xml m_gdbserver/power64-linux-valgrind-s2.xml m_gdbserver/power64-linux.xml m_gdbserver/power-altivec-valgrind-s1.xml m_gdbserver/power-altivec-valgrind-s2.xml m_gdbserver/power-altivec.xml m_gdbserver/power-core-valgrind-s1.xml m_gdbserver/power-core-valgrind-s2.xml m_gdbserver/power-core.xml m_gdbserver/power-fpu-valgrind-s1.xml m_gdbserver/power-fpu-valgrind-s2.xml m_gdbserver/power-fpu.xml m_gdbserver/power-linux-valgrind-s1.xml m_gdbserver/power-linux-valgrind-s2.xml m_gdbserver/power-linux.xml m_gdbserver/powerpc-altivec32l-valgrind.xml m_gdbserver/powerpc-altive!
 c32l.xml m_gdbserver/powerpc-altivec64l-valgrind.xml m_gdbserver/powerpc-altivec64l.xml m_gdbserver/s390-acr-valgrind-s1.xml m_gdbserver/s390-acr-valgrind-s2.xml m_gdbserver/s390-acr.xml m_gdbserver/s390-fpr-valgrind-s1.xml m_gdbserver/s390-fpr-valgrind-s2.xml m_gdbserver/s390-fpr.xml m_gdbserver/s390x-core64-valgrind-s1.xml m_gdbserver/s390x-core64-valgrind-s2.xml m_gdbserver/s390x-core64.xml m_gdbserver/s390x-generic-valgrind.xml m_gdbserver/s390x-generic.xml m_gdbserver/s390x-linux64-valgrind-s1.xml m_gdbserver/s390x-linux64-valgrind-s2.xml m_gdbserver/s390x-linux64.xml m_gdbserver/mips-cp0-valgrind-s1.xml m_gdbserver/mips-cp0-valgrind-s2.xml m_gdbserver/mips-cp0.xml m_gdbserver/mips-cpu-valgrind-s1.xml m_gdbserver/mips-cpu-valgrind-s2.xml m_gdbserver/mips-cpu.xml m_gdbserver/mips-linux.xml m_gdbserver/mips-linux-valgrind.xml m_gdbserver/mips-fpu-valgrind-s1.xml m_gdbserver/mips-fpu-valgrind-s2.xml m_gdbserver/mips-fpu.xml; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../coregrind/$f ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-Making check in .
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-mkdir -p ./.in_place
+-rm -f ./.in_place/default.supp
+-ln -s ../default.supp ./.in_place
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-Making check in memcheck
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-mkdir -p ../.in_place; \
+-for f in memcheck-ppc64-linux memcheck-ppc32-linux vgpreload_memcheck-ppc64-linux.so vgpreload_memcheck-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../memcheck/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../memcheck/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make  accounting addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw big_blocks_freed_list brk2 buflen_check bug287260 calloc-overflow clientperm clireq_nofill clo_redzone custom_alloc custom-overlap deep-backtrace deep_templates describe-block doublefree error_counts errs1 exitprog execve1 execve2 erringfds err_disable1 err_disable2 err_disable3 err_disable4 file_locking fprw fwrite inits inline holey_buffer_too_small leak-0 leak-cases leak-cycle leak-delta leak-pool leak-tree long_namespace_xml long-supps mallinfo malloc_free_fill malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 match-overrun memalign_test memalign2 memcmptest mempool mempool2 mmaptest mismatches new_override metadata nanoleak_supp nanoleak2 new_nothrow noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 sbfragment sh-mem sh-mem-random sigaltstack signal2 sigprocmask static_malloc sigkill strchr str_tester supp_unknown supp1 supp2 suppfree test-plo trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_fbench vcpu_fnfns xml1 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev1 dw4
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT accounting.o -MD -MP -MF .deps/accounting.Tpo -c -o accounting.o accounting.c
+-mv -f .deps/accounting.Tpo .deps/accounting.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o accounting accounting.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT addressable.o -MD -MP -MF .deps/addressable.Tpo -c -o addressable.o addressable.c
+-mv -f .deps/addressable.Tpo .deps/addressable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o addressable addressable.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_incs-atomic_incs.o -MD -MP -MF .deps/atomic_incs-atomic_incs.Tpo -c -o atomic_incs-atomic_incs.o `test -f 'atomic_incs.c' || echo './'`atomic_incs.c
+-mv -f .deps/atomic_incs-atomic_incs.Tpo .deps/atomic_incs-atomic_incs.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_incs atomic_incs-atomic_incs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badaddrvalue.o -MD -MP -MF .deps/badaddrvalue.Tpo -c -o badaddrvalue.o badaddrvalue.c
+-mv -f .deps/badaddrvalue.Tpo .deps/badaddrvalue.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badaddrvalue badaddrvalue.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badfree.o -MD -MP -MF .deps/badfree.Tpo -c -o badfree.o badfree.c
+-mv -f .deps/badfree.Tpo .deps/badfree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badfree badfree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump.o -MD -MP -MF .deps/badjump.Tpo -c -o badjump.o badjump.c
+-mv -f .deps/badjump.Tpo .deps/badjump.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump badjump.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump2.o -MD -MP -MF .deps/badjump2.Tpo -c -o badjump2.o badjump2.c
+-mv -f .deps/badjump2.Tpo .deps/badjump2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump2 badjump2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badloop.o -MD -MP -MF .deps/badloop.Tpo -c -o badloop.o badloop.c
+-mv -f .deps/badloop.Tpo .deps/badloop.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badloop badloop.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badpoll.o -MD -MP -MF .deps/badpoll.Tpo -c -o badpoll.o badpoll.c
+-mv -f .deps/badpoll.Tpo .deps/badpoll.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badpoll badpoll.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badrw.o -MD -MP -MF .deps/badrw.Tpo -c -o badrw.o badrw.c
+-mv -f .deps/badrw.Tpo .deps/badrw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badrw badrw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big_blocks_freed_list.o -MD -MP -MF .deps/big_blocks_freed_list.Tpo -c -o big_blocks_freed_list.o big_blocks_freed_list.c
+-mv -f .deps/big_blocks_freed_list.Tpo .deps/big_blocks_freed_list.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big_blocks_freed_list big_blocks_freed_list.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk2.o -MD -MP -MF .deps/brk2.Tpo -c -o brk2.o brk2.c
+-mv -f .deps/brk2.Tpo .deps/brk2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk2 brk2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT buflen_check.o -MD -MP -MF .deps/buflen_check.Tpo -c -o buflen_check.o buflen_check.c
+-mv -f .deps/buflen_check.Tpo .deps/buflen_check.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o buflen_check buflen_check.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug287260.o -MD -MP -MF .deps/bug287260.Tpo -c -o bug287260.o bug287260.c
+-mv -f .deps/bug287260.Tpo .deps/bug287260.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug287260 bug287260.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT calloc-overflow.o -MD -MP -MF .deps/calloc-overflow.Tpo -c -o calloc-overflow.o calloc-overflow.c
+-mv -f .deps/calloc-overflow.Tpo .deps/calloc-overflow.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o calloc-overflow calloc-overflow.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clientperm.o -MD -MP -MF .deps/clientperm.Tpo -c -o clientperm.o clientperm.c
+-mv -f .deps/clientperm.Tpo .deps/clientperm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clientperm clientperm.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clireq_nofill.o -MD -MP -MF .deps/clireq_nofill.Tpo -c -o clireq_nofill.o clireq_nofill.c
+-mv -f .deps/clireq_nofill.Tpo .deps/clireq_nofill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clireq_nofill clireq_nofill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clo_redzone.o -MD -MP -MF .deps/clo_redzone.Tpo -c -o clo_redzone.o clo_redzone.c
+-mv -f .deps/clo_redzone.Tpo .deps/clo_redzone.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clo_redzone clo_redzone.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom-overlap.o -MD -MP -MF .deps/custom-overlap.Tpo -c -o custom-overlap.o custom-overlap.c
+-mv -f .deps/custom-overlap.Tpo .deps/custom-overlap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom-overlap custom-overlap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep-backtrace.o -MD -MP -MF .deps/deep-backtrace.Tpo -c -o deep-backtrace.o deep-backtrace.c
+-mv -f .deps/deep-backtrace.Tpo .deps/deep-backtrace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep-backtrace deep-backtrace.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep_templates-deep_templates.o -MD -MP -MF .deps/deep_templates-deep_templates.Tpo -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/deep_templates-deep_templates.Tpo .deps/deep_templates-deep_templates.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep_templates deep_templates-deep_templates.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT describe-block.o -MD -MP -MF .deps/describe-block.Tpo -c -o describe-block.o describe-block.c
+-mv -f .deps/describe-block.Tpo .deps/describe-block.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o describe-block describe-block.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT doublefree.o -MD -MP -MF .deps/doublefree.Tpo -c -o doublefree.o doublefree.c
+-mv -f .deps/doublefree.Tpo .deps/doublefree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o doublefree doublefree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT error_counts-error_counts.o -MD -MP -MF .deps/error_counts-error_counts.Tpo -c -o error_counts-error_counts.o `test -f 'error_counts.c' || echo './'`error_counts.c
+-mv -f .deps/error_counts-error_counts.Tpo .deps/error_counts-error_counts.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o error_counts error_counts-error_counts.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT errs1.o -MD -MP -MF .deps/errs1.Tpo -c -o errs1.o errs1.c
+-mv -f .deps/errs1.Tpo .deps/errs1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o errs1 errs1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exitprog.o -MD -MP -MF .deps/exitprog.Tpo -c -o exitprog.o exitprog.c
+-mv -f .deps/exitprog.Tpo .deps/exitprog.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exitprog exitprog.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve1-execve1.o -MD -MP -MF .deps/execve1-execve1.Tpo -c -o execve1-execve1.o `test -f 'execve1.c' || echo './'`execve1.c
+-mv -f .deps/execve1-execve1.Tpo .deps/execve1-execve1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve1 execve1-execve1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve2-execve2.o -MD -MP -MF .deps/execve2-execve2.Tpo -c -o execve2-execve2.o `test -f 'execve2.c' || echo './'`execve2.c
+-mv -f .deps/execve2-execve2.Tpo .deps/execve2-execve2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve2 execve2-execve2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT erringfds.o -MD -MP -MF .deps/erringfds.Tpo -c -o erringfds.o erringfds.c
+-mv -f .deps/erringfds.Tpo .deps/erringfds.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o erringfds erringfds.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable1.o -MD -MP -MF .deps/err_disable1.Tpo -c -o err_disable1.o err_disable1.c
+-mv -f .deps/err_disable1.Tpo .deps/err_disable1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable1 err_disable1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable2.o -MD -MP -MF .deps/err_disable2.Tpo -c -o err_disable2.o err_disable2.c
+-mv -f .deps/err_disable2.Tpo .deps/err_disable2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable2 err_disable2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable3.o -MD -MP -MF .deps/err_disable3.Tpo -c -o err_disable3.o err_disable3.c
+-mv -f .deps/err_disable3.Tpo .deps/err_disable3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable3 err_disable3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable4.o -MD -MP -MF .deps/err_disable4.Tpo -c -o err_disable4.o err_disable4.c
+-mv -f .deps/err_disable4.Tpo .deps/err_disable4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable4 err_disable4.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT file_locking.o -MD -MP -MF .deps/file_locking.Tpo -c -o file_locking.o file_locking.c
+-mv -f .deps/file_locking.Tpo .deps/file_locking.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o file_locking file_locking.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fprw.o -MD -MP -MF .deps/fprw.Tpo -c -o fprw.o fprw.c
+-mv -f .deps/fprw.Tpo .deps/fprw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fprw fprw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fwrite.o -MD -MP -MF .deps/fwrite.Tpo -c -o fwrite.o fwrite.c
+-mv -f .deps/fwrite.Tpo .deps/fwrite.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fwrite fwrite.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inits-inits.o -MD -MP -MF .deps/inits-inits.Tpo -c -o inits-inits.o `test -f 'inits.c' || echo './'`inits.c
+-mv -f .deps/inits-inits.Tpo .deps/inits-inits.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inits inits-inits.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inline.o -MD -MP -MF .deps/inline.Tpo -c -o inline.o inline.c
+-mv -f .deps/inline.Tpo .deps/inline.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inline inline.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT holey_buffer_too_small.o -MD -MP -MF .deps/holey_buffer_too_small.Tpo -c -o holey_buffer_too_small.o holey_buffer_too_small.c
+-mv -f .deps/holey_buffer_too_small.Tpo .deps/holey_buffer_too_small.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o holey_buffer_too_small holey_buffer_too_small.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-0.o -MD -MP -MF .deps/leak-0.Tpo -c -o leak-0.o leak-0.c
+-mv -f .deps/leak-0.Tpo .deps/leak-0.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-0 leak-0.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cases.o -MD -MP -MF .deps/leak-cases.Tpo -c -o leak-cases.o leak-cases.c
+-mv -f .deps/leak-cases.Tpo .deps/leak-cases.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cases leak-cases.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cycle.o -MD -MP -MF .deps/leak-cycle.Tpo -c -o leak-cycle.o leak-cycle.c
+-mv -f .deps/leak-cycle.Tpo .deps/leak-cycle.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cycle leak-cycle.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-delta.o -MD -MP -MF .deps/leak-delta.Tpo -c -o leak-delta.o leak-delta.c
+-mv -f .deps/leak-delta.Tpo .deps/leak-delta.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-delta leak-delta.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-pool.o -MD -MP -MF .deps/leak-pool.Tpo -c -o leak-pool.o leak-pool.c
+-mv -f .deps/leak-pool.Tpo .deps/leak-pool.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-pool leak-pool.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-tree.o -MD -MP -MF .deps/leak-tree.Tpo -c -o leak-tree.o leak-tree.c
+-mv -f .deps/leak-tree.Tpo .deps/leak-tree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-tree leak-tree.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long_namespace_xml.o -MD -MP -MF .deps/long_namespace_xml.Tpo -c -o long_namespace_xml.o long_namespace_xml.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/long_namespace_xml.Tpo .deps/long_namespace_xml.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long_namespace_xml long_namespace_xml.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-supps.o -MD -MP -MF .deps/long-supps.Tpo -c -o long-supps.o long-supps.c
+-mv -f .deps/long-supps.Tpo .deps/long-supps.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-supps long-supps.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mallinfo.o -MD -MP -MF .deps/mallinfo.Tpo -c -o mallinfo.o mallinfo.c
+-mv -f .deps/mallinfo.Tpo .deps/mallinfo.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mallinfo mallinfo.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_free_fill.o -MD -MP -MF .deps/malloc_free_fill.Tpo -c -o malloc_free_fill.o malloc_free_fill.c
+-mv -f .deps/malloc_free_fill.Tpo .deps/malloc_free_fill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_free_fill malloc_free_fill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
+-mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc1.o -MD -MP -MF .deps/malloc1.Tpo -c -o malloc1.o malloc1.c
+-mv -f .deps/malloc1.Tpo .deps/malloc1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc1 malloc1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc2.o -MD -MP -MF .deps/malloc2.Tpo -c -o malloc2.o malloc2.c
+-mv -f .deps/malloc2.Tpo .deps/malloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc2 malloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc3.o -MD -MP -MF .deps/malloc3.Tpo -c -o malloc3.o malloc3.c
+-mv -f .deps/malloc3.Tpo .deps/malloc3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc3 malloc3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel1-manuel1.o -MD -MP -MF .deps/manuel1-manuel1.Tpo -c -o manuel1-manuel1.o `test -f 'manuel1.c' || echo './'`manuel1.c
+-mv -f .deps/manuel1-manuel1.Tpo .deps/manuel1-manuel1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel1 manuel1-manuel1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel2.o -MD -MP -MF .deps/manuel2.Tpo -c -o manuel2.o manuel2.c
+-mv -f .deps/manuel2.Tpo .deps/manuel2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel2 manuel2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel3.o -MD -MP -MF .deps/manuel3.Tpo -c -o manuel3.o manuel3.c
+-mv -f .deps/manuel3.Tpo .deps/manuel3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel3 manuel3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT match-overrun.o -MD -MP -MF .deps/match-overrun.Tpo -c -o match-overrun.o match-overrun.c
+-mv -f .deps/match-overrun.Tpo .deps/match-overrun.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o match-overrun match-overrun.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign_test.o -MD -MP -MF .deps/memalign_test.Tpo -c -o memalign_test.o memalign_test.c
+-mv -f .deps/memalign_test.Tpo .deps/memalign_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign_test memalign_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign2.o -MD -MP -MF .deps/memalign2.Tpo -c -o memalign2.o memalign2.c
+-mv -f .deps/memalign2.Tpo .deps/memalign2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign2 memalign2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memcmptest-memcmptest.o -MD -MP -MF .deps/memcmptest-memcmptest.Tpo -c -o memcmptest-memcmptest.o `test -f 'memcmptest.c' || echo './'`memcmptest.c
+-mv -f .deps/memcmptest-memcmptest.Tpo .deps/memcmptest-memcmptest.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memcmptest memcmptest-memcmptest.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool.o -MD -MP -MF .deps/mempool.Tpo -c -o mempool.o mempool.c
+-mv -f .deps/mempool.Tpo .deps/mempool.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool mempool.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool2.o -MD -MP -MF .deps/mempool2.Tpo -c -o mempool2.o mempool2.c
+-mv -f .deps/mempool2.Tpo .deps/mempool2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool2 mempool2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmaptest.o -MD -MP -MF .deps/mmaptest.Tpo -c -o mmaptest.o mmaptest.c
+-mv -f .deps/mmaptest.Tpo .deps/mmaptest.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmaptest mmaptest.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mismatches.o -MD -MP -MF .deps/mismatches.Tpo -c -o mismatches.o mismatches.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/mismatches.Tpo .deps/mismatches.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mismatches mismatches.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_override.o -MD -MP -MF .deps/new_override.Tpo -c -o new_override.o new_override.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_override.Tpo .deps/new_override.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_override new_override.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT metadata.o -MD -MP -MF .deps/metadata.Tpo -c -o metadata.o metadata.c
+-mv -f .deps/metadata.Tpo .deps/metadata.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o metadata metadata.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak_supp.o -MD -MP -MF .deps/nanoleak_supp.Tpo -c -o nanoleak_supp.o nanoleak_supp.c
+-mv -f .deps/nanoleak_supp.Tpo .deps/nanoleak_supp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak_supp nanoleak_supp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak2.o -MD -MP -MF .deps/nanoleak2.Tpo -c -o nanoleak2.o nanoleak2.c
+-mv -f .deps/nanoleak2.Tpo .deps/nanoleak2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak2 nanoleak2.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_nothrow.o -MD -MP -MF .deps/new_nothrow.Tpo -c -o new_nothrow.o new_nothrow.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_nothrow.Tpo .deps/new_nothrow.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_nothrow new_nothrow.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT noisy_child.o -MD -MP -MF .deps/noisy_child.Tpo -c -o noisy_child.o noisy_child.c
+-mv -f .deps/noisy_child.Tpo .deps/noisy_child.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o noisy_child noisy_child.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null_socket.o -MD -MP -MF .deps/null_socket.Tpo -c -o null_socket.o null_socket.c
+-mv -f .deps/null_socket.Tpo .deps/null_socket.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null_socket null_socket.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin1-yes.o -MD -MP -MF .deps/origin1-yes.Tpo -c -o origin1-yes.o origin1-yes.c
+-mv -f .deps/origin1-yes.Tpo .deps/origin1-yes.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin1-yes origin1-yes.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin2_not_quite-origin2-not-quite.o -MD -MP -MF .deps/origin2_not_quite-origin2-not-quite.Tpo -c -o origin2_not_quite-origin2-not-quite.o `test -f 'origin2-not-quite.c' || echo './'`origin2-not-quite.c
+-mv -f .deps/origin2_not_quite-origin2-not-quite.Tpo .deps/origin2_not_quite-origin2-not-quite.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin2-not-quite origin2_not_quite-origin2-not-quite.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin3_no-origin3-no.o -MD -MP -MF .deps/origin3_no-origin3-no.Tpo -c -o origin3_no-origin3-no.o `test -f 'origin3-no.c' || echo './'`origin3-no.c
+-mv -f .deps/origin3_no-origin3-no.Tpo .deps/origin3_no-origin3-no.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin3-no origin3_no-origin3-no.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin4_many-origin4-many.o -MD -MP -MF .deps/origin4_many-origin4-many.Tpo -c -o origin4_many-origin4-many.o `test -f 'origin4-many.c' || echo './'`origin4-many.c
+-mv -f .deps/origin4_many-origin4-many.Tpo .deps/origin4_many-origin4-many.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin4-many origin4_many-origin4-many.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin5_bz2-origin5-bz2.o -MD -MP -MF .deps/origin5_bz2-origin5-bz2.Tpo -c -o origin5_bz2-origin5-bz2.o `test -f 'origin5-bz2.c' || echo './'`origin5-bz2.c
+-mv -f .deps/origin5_bz2-origin5-bz2.Tpo .deps/origin5_bz2-origin5-bz2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin5-bz2 origin5_bz2-origin5-bz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin6_fp-origin6-fp.o -MD -MP -MF .deps/origin6_fp-origin6-fp.Tpo -c -o origin6_fp-origin6-fp.o `test -f 'origin6-fp.c' || echo './'`origin6-fp.c
+-mv -f .deps/origin6_fp-origin6-fp.Tpo .deps/origin6_fp-origin6-fp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin6-fp origin6_fp-origin6-fp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overlap-overlap.o -MD -MP -MF .deps/overlap-overlap.Tpo -c -o overlap-overlap.o `test -f 'overlap.c' || echo './'`overlap.c
+-mv -f .deps/overlap-overlap.Tpo .deps/overlap-overlap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overlap overlap-overlap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partiallydefinedeq.o -MD -MP -MF .deps/partiallydefinedeq.Tpo -c -o partiallydefinedeq.o partiallydefinedeq.c
+-mv -f .deps/partiallydefinedeq.Tpo .deps/partiallydefinedeq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partiallydefinedeq partiallydefinedeq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partial_load.o -MD -MP -MF .deps/partial_load.Tpo -c -o partial_load.o partial_load.c
+-mv -f .deps/partial_load.Tpo .deps/partial_load.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partial_load partial_load.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc.o -MD -MP -MF .deps/pdb-realloc.Tpo -c -o pdb-realloc.o pdb-realloc.c
+-mv -f .deps/pdb-realloc.Tpo .deps/pdb-realloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc pdb-realloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc2.o -MD -MP -MF .deps/pdb-realloc2.Tpo -c -o pdb-realloc2.o pdb-realloc2.c
+-mv -f .deps/pdb-realloc2.Tpo .deps/pdb-realloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc2 pdb-realloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pipe.o -MD -MP -MF .deps/pipe.Tpo -c -o pipe.o pipe.c
+-mv -f .deps/pipe.Tpo .deps/pipe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pipe pipe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pointer-trace.o -MD -MP -MF .deps/pointer-trace.Tpo -c -o pointer-trace.o pointer-trace.c
+-mv -f .deps/pointer-trace.Tpo .deps/pointer-trace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pointer-trace pointer-trace.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT post-syscall.o -MD -MP -MF .deps/post-syscall.Tpo -c -o post-syscall.o post-syscall.c
+-mv -f .deps/post-syscall.Tpo .deps/post-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o post-syscall post-syscall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc1.o -MD -MP -MF .deps/realloc1.Tpo -c -o realloc1.o realloc1.c
+-mv -f .deps/realloc1.Tpo .deps/realloc1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc1 realloc1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc2.o -MD -MP -MF .deps/realloc2.Tpo -c -o realloc2.o realloc2.c
+-mv -f .deps/realloc2.Tpo .deps/realloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc2 realloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc3.o -MD -MP -MF .deps/realloc3.Tpo -c -o realloc3.o realloc3.c
+-mv -f .deps/realloc3.Tpo .deps/realloc3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc3 realloc3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sbfragment.o -MD -MP -MF .deps/sbfragment.Tpo -c -o sbfragment.o sbfragment.c
+-mv -f .deps/sbfragment.Tpo .deps/sbfragment.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sbfragment sbfragment.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem.o -MD -MP -MF .deps/sh-mem.Tpo -c -o sh-mem.o sh-mem.c
+-mv -f .deps/sh-mem.Tpo .deps/sh-mem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem sh-mem.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem-random.o -MD -MP -MF .deps/sh-mem-random.Tpo -c -o sh-mem-random.o sh-mem-random.c
+-mv -f .deps/sh-mem-random.Tpo .deps/sh-mem-random.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem-random sh-mem-random.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigaltstack.o -MD -MP -MF .deps/sigaltstack.Tpo -c -o sigaltstack.o sigaltstack.c
+-mv -f .deps/sigaltstack.Tpo .deps/sigaltstack.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigaltstack sigaltstack.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT signal2.o -MD -MP -MF .deps/signal2.Tpo -c -o signal2.o signal2.c
+-mv -f .deps/signal2.Tpo .deps/signal2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o signal2 signal2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigprocmask.o -MD -MP -MF .deps/sigprocmask.Tpo -c -o sigprocmask.o sigprocmask.c
+-mv -f .deps/sigprocmask.Tpo .deps/sigprocmask.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigprocmask sigprocmask.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT static_malloc.o -MD -MP -MF .deps/static_malloc.Tpo -c -o static_malloc.o static_malloc.c
+-mv -f .deps/static_malloc.Tpo .deps/static_malloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o static_malloc static_malloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigkill.o -MD -MP -MF .deps/sigkill.Tpo -c -o sigkill.o sigkill.c
+-mv -f .deps/sigkill.Tpo .deps/sigkill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigkill sigkill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT strchr.o -MD -MP -MF .deps/strchr.Tpo -c -o strchr.o strchr.c
+-mv -f .deps/strchr.Tpo .deps/strchr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o strchr strchr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT str_tester-str_tester.o -MD -MP -MF .deps/str_tester-str_tester.Tpo -c -o str_tester-str_tester.o `test -f 'str_tester.c' || echo './'`str_tester.c
+-mv -f .deps/str_tester-str_tester.Tpo .deps/str_tester-str_tester.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o str_tester str_tester-str_tester.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp_unknown badjump.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT supp.o -MD -MP -MF .deps/supp.Tpo -c -o supp.o supp.c
+-mv -f .deps/supp.Tpo .deps/supp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp1 supp.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp2 supp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT suppfree.o -MD -MP -MF .deps/suppfree.Tpo -c -o suppfree.o suppfree.c
+-mv -f .deps/suppfree.Tpo .deps/suppfree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o suppfree suppfree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test-plo.o -MD -MP -MF .deps/test-plo.Tpo -c -o test-plo.o test-plo.c
+-mv -f .deps/test-plo.Tpo .deps/test-plo.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test-plo test-plo.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trivialleak.o -MD -MP -MF .deps/trivialleak.Tpo -c -o trivialleak.o trivialleak.c
+-mv -f .deps/trivialleak.Tpo .deps/trivialleak.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trivialleak trivialleak.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_libcbase.o -MD -MP -MF .deps/unit_libcbase.Tpo -c -o unit_libcbase.o unit_libcbase.c
+-mv -f .deps/unit_libcbase.Tpo .deps/unit_libcbase.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_libcbase unit_libcbase.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_oset.o -MD -MP -MF .deps/unit_oset.Tpo -c -o unit_oset.o unit_oset.c
+-mv -f .deps/unit_oset.Tpo .deps/unit_oset.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_oset unit_oset.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo1-varinfo1.o -MD -MP -MF .deps/varinfo1-varinfo1.Tpo -c -o varinfo1-varinfo1.o `test -f 'varinfo1.c' || echo './'`varinfo1.c
+-mv -f .deps/varinfo1-varinfo1.Tpo .deps/varinfo1-varinfo1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo1 varinfo1-varinfo1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo2-varinfo2.o -MD -MP -MF .deps/varinfo2-varinfo2.Tpo -c -o varinfo2-varinfo2.o `test -f 'varinfo2.c' || echo './'`varinfo2.c
+-mv -f .deps/varinfo2-varinfo2.Tpo .deps/varinfo2-varinfo2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo2 varinfo2-varinfo2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo3-varinfo3.o -MD -MP -MF .deps/varinfo3-varinfo3.Tpo -c -o varinfo3-varinfo3.o `test -f 'varinfo3.c' || echo './'`varinfo3.c
+-mv -f .deps/varinfo3-varinfo3.Tpo .deps/varinfo3-varinfo3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo3 varinfo3-varinfo3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo4-varinfo4.o -MD -MP -MF .deps/varinfo4-varinfo4.Tpo -c -o varinfo4-varinfo4.o `test -f 'varinfo4.c' || echo './'`varinfo4.c
+-mv -f .deps/varinfo4-varinfo4.Tpo .deps/varinfo4-varinfo4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo4 varinfo4-varinfo4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5-varinfo5.o -MD -MP -MF .deps/varinfo5-varinfo5.Tpo -c -o varinfo5-varinfo5.o `test -f 'varinfo5.c' || echo './'`varinfo5.c
+-mv -f .deps/varinfo5-varinfo5.Tpo .deps/varinfo5-varinfo5.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5so_so-varinfo5so.o -MD -MP -MF .deps/varinfo5so_so-varinfo5so.Tpo -c -o varinfo5so_so-varinfo5so.o `test -f 'varinfo5so.c' || echo './'`varinfo5so.c
+-mv -f .deps/varinfo5so_so-varinfo5so.Tpo .deps/varinfo5so_so-varinfo5so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,varinfo5so.so  -o varinfo5so.so varinfo5so_so-varinfo5so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o varinfo5 varinfo5-varinfo5.o varinfo5so.so 
+-make[5]: `varinfo5so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo6-varinfo6.o -MD -MP -MF .deps/varinfo6-varinfo6.Tpo -c -o varinfo6-varinfo6.o `test -f 'varinfo6.c' || echo './'`varinfo6.c
+-mv -f .deps/varinfo6-varinfo6.Tpo .deps/varinfo6-varinfo6.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo6 varinfo6-varinfo6.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fbench-vcpu_fbench.o -MD -MP -MF .deps/vcpu_fbench-vcpu_fbench.Tpo -c -o vcpu_fbench-vcpu_fbench.o `test -f 'vcpu_fbench.c' || echo './'`vcpu_fbench.c
+-mv -f .deps/vcpu_fbench-vcpu_fbench.Tpo .deps/vcpu_fbench-vcpu_fbench.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fbench vcpu_fbench-vcpu_fbench.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fnfns-vcpu_fnfns.o -MD -MP -MF .deps/vcpu_fnfns-vcpu_fnfns.Tpo -c -o vcpu_fnfns-vcpu_fnfns.o `test -f 'vcpu_fnfns.c' || echo './'`vcpu_fnfns.c
+-mv -f .deps/vcpu_fnfns-vcpu_fnfns.Tpo .deps/vcpu_fnfns-vcpu_fnfns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fnfns vcpu_fnfns-vcpu_fnfns.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xml1.o -MD -MP -MF .deps/xml1.Tpo -c -o xml1.o xml1.c
+-mv -f .deps/xml1.Tpo .deps/xml1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xml1 xml1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap1.o -MD -MP -MF .deps/wrap1.Tpo -c -o wrap1.o wrap1.c
+-mv -f .deps/wrap1.Tpo .deps/wrap1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap1 wrap1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap2.o -MD -MP -MF .deps/wrap2.Tpo -c -o wrap2.o wrap2.c
+-mv -f .deps/wrap2.Tpo .deps/wrap2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap2 wrap2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap3.o -MD -MP -MF .deps/wrap3.Tpo -c -o wrap3.o wrap3.c
+-mv -f .deps/wrap3.Tpo .deps/wrap3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap3 wrap3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap4.o -MD -MP -MF .deps/wrap4.Tpo -c -o wrap4.o wrap4.c
+-mv -f .deps/wrap4.Tpo .deps/wrap4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap4 wrap4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap5.o -MD -MP -MF .deps/wrap5.Tpo -c -o wrap5.o wrap5.c
+-mv -f .deps/wrap5.Tpo .deps/wrap5.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap5 wrap5.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap6-wrap6.o -MD -MP -MF .deps/wrap6-wrap6.Tpo -c -o wrap6-wrap6.o `test -f 'wrap6.c' || echo './'`wrap6.c
+-mv -f .deps/wrap6-wrap6.Tpo .deps/wrap6-wrap6.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap6 wrap6-wrap6.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7.o -MD -MP -MF .deps/wrap7.Tpo -c -o wrap7.o wrap7.c
+-mv -f .deps/wrap7.Tpo .deps/wrap7.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7so_so-wrap7so.o -MD -MP -MF .deps/wrap7so_so-wrap7so.Tpo -c -o wrap7so_so-wrap7so.o `test -f 'wrap7so.c' || echo './'`wrap7so.c
+-mv -f .deps/wrap7so_so-wrap7so.Tpo .deps/wrap7so_so-wrap7so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,wrap7so.so  -o wrap7so.so wrap7so_so-wrap7so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o wrap7 wrap7.o wrap7so.so 
+-make[5]: `wrap7so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap8.o -MD -MP -MF .deps/wrap8.Tpo -c -o wrap8.o wrap8.c
+-mv -f .deps/wrap8.Tpo .deps/wrap8.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap8 wrap8.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT writev1.o -MD -MP -MF .deps/writev1.Tpo -c -o writev1.o writev1.c
+-mv -f .deps/writev1.Tpo .deps/writev1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o writev1 writev1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dw4-dw4.o -MD -MP -MF .deps/dw4-dw4.Tpo -c -o dw4-dw4.o `test -f 'dw4.c' || echo './'`dw4.c
+-mv -f .deps/dw4-dw4.Tpo .deps/dw4-dw4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dw4 dw4-dw4.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 86 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-Making check in ppc32
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make  power_ISA2_05 test_spe
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
+-mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
+-gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
+-mv -f .deps/test_spe.Tpo .deps/test_spe.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_spe test_spe.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-Making check in ppc64
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make  power_ISA2_05
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
+-mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
+-gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-Making check in linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make  brk capget lsframe1 lsframe2 sigqueue stack_changes stack_switch syscalls-2007 syslog-syscall timerfd-syscall
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk.o -MD -MP -MF .deps/brk.Tpo -c -o brk.o brk.c
+-mv -f .deps/brk.Tpo .deps/brk.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk brk.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT capget.o -MD -MP -MF .deps/capget.Tpo -c -o capget.o capget.c
+-mv -f .deps/capget.Tpo .deps/capget.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o capget capget.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe1.o -MD -MP -MF .deps/lsframe1.Tpo -c -o lsframe1.o lsframe1.c
+-mv -f .deps/lsframe1.Tpo .deps/lsframe1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe1 lsframe1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe2.o -MD -MP -MF .deps/lsframe2.Tpo -c -o lsframe2.o lsframe2.c
+-mv -f .deps/lsframe2.Tpo .deps/lsframe2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe2 lsframe2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigqueue.o -MD -MP -MF .deps/sigqueue.Tpo -c -o sigqueue.o sigqueue.c
+-mv -f .deps/sigqueue.Tpo .deps/sigqueue.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigqueue sigqueue.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_changes.o -MD -MP -MF .deps/stack_changes.Tpo -c -o stack_changes.o stack_changes.c
+-mv -f .deps/stack_changes.Tpo .deps/stack_changes.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_changes stack_changes.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_switch.o -MD -MP -MF .deps/stack_switch.Tpo -c -o stack_switch.o stack_switch.c
+-mv -f .deps/stack_switch.Tpo .deps/stack_switch.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_switch stack_switch.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscalls-2007.o -MD -MP -MF .deps/syscalls-2007.Tpo -c -o syscalls-2007.o syscalls-2007.c
+-mv -f .deps/syscalls-2007.Tpo .deps/syscalls-2007.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscalls-2007 syscalls-2007.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog-syscall.o -MD -MP -MF .deps/syslog-syscall.Tpo -c -o syslog-syscall.o syslog-syscall.c
+-mv -f .deps/syslog-syscall.Tpo .deps/syslog-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog-syscall syslog-syscall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timerfd-syscall.o -MD -MP -MF .deps/timerfd-syscall.Tpo -c -o timerfd-syscall.o timerfd-syscall.c
+-mv -f .deps/timerfd-syscall.Tpo .deps/timerfd-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timerfd-syscall timerfd-syscall.o -lrt 
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in cachegrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-mkdir -p ../.in_place; \
+-for f in cachegrind-ppc64-linux cachegrind-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../cachegrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../cachegrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make  chdir clreq dlclose myprint.so
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT chdir.o -MD -MP -MF .deps/chdir.Tpo -c -o chdir.o chdir.c
+-mv -f .deps/chdir.Tpo .deps/chdir.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o chdir chdir.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
+-mv -f .deps/clreq.Tpo .deps/clreq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dlclose.o -MD -MP -MF .deps/dlclose.Tpo -c -o dlclose.o dlclose.c
+-mv -f .deps/dlclose.Tpo .deps/dlclose.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dlclose dlclose.o -ldl 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT myprint_so-myprint.o -MD -MP -MF .deps/myprint_so-myprint.Tpo -c -o myprint_so-myprint.o `test -f 'myprint.c' || echo './'`myprint.c
+-mv -f .deps/myprint_so-myprint.Tpo .deps/myprint_so-myprint.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Winline -Wall -Wshadow -g -m64 -shared -fPIC  -o myprint.so myprint_so-myprint.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in callgrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-mkdir -p ../.in_place; \
+-for f in callgrind-ppc64-linux callgrind-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../callgrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../callgrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make  clreq simwork threads
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
+-mv -f .deps/clreq.Tpo .deps/clreq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT simwork.o -MD -MP -MF .deps/simwork.Tpo -c -o simwork.o simwork.c
+-mv -f .deps/simwork.Tpo .deps/simwork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o simwork simwork.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threads.o -MD -MP -MF .deps/threads.Tpo -c -o threads.o threads.c
+-mv -f .deps/threads.Tpo .deps/threads.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threads threads.o -lpthread 
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in massif
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-mkdir -p ../.in_place; \
+-for f in massif-ppc64-linux massif-ppc32-linux vgpreload_massif-ppc64-linux.so vgpreload_massif-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../massif/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../massif/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make  alloc-fns basic big-alloc culling1 culling2 custom_alloc deep ignored ignoring insig long-names long-time malloc_usable new-cpp null one overloaded-new pages_as_heap peak realloc thresholds zero
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT alloc-fns.o -MD -MP -MF .deps/alloc-fns.Tpo -c -o alloc-fns.o alloc-fns.c
+-mv -f .deps/alloc-fns.Tpo .deps/alloc-fns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o alloc-fns alloc-fns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT basic.o -MD -MP -MF .deps/basic.Tpo -c -o basic.o basic.c
+-mv -f .deps/basic.Tpo .deps/basic.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o basic basic.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big-alloc.o -MD -MP -MF .deps/big-alloc.Tpo -c -o big-alloc.o big-alloc.c
+-mv -f .deps/big-alloc.Tpo .deps/big-alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big-alloc big-alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling1.o -MD -MP -MF .deps/culling1.Tpo -c -o culling1.o culling1.c
+-mv -f .deps/culling1.Tpo .deps/culling1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling1 culling1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling2.o -MD -MP -MF .deps/culling2.Tpo -c -o culling2.o culling2.c
+-mv -f .deps/culling2.Tpo .deps/culling2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling2 culling2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep.o -MD -MP -MF .deps/deep.Tpo -c -o deep.o deep.c
+-mv -f .deps/deep.Tpo .deps/deep.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep deep.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignored.o -MD -MP -MF .deps/ignored.Tpo -c -o ignored.o ignored.c
+-mv -f .deps/ignored.Tpo .deps/ignored.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignored ignored.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignoring.o -MD -MP -MF .deps/ignoring.Tpo -c -o ignoring.o ignoring.c
+-mv -f .deps/ignoring.Tpo .deps/ignoring.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignoring ignoring.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT insig.o -MD -MP -MF .deps/insig.Tpo -c -o insig.o insig.c
+-mv -f .deps/insig.Tpo .deps/insig.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o insig insig.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-names.o -MD -MP -MF .deps/long-names.Tpo -c -o long-names.o long-names.c
+-mv -f .deps/long-names.Tpo .deps/long-names.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-names long-names.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-time.o -MD -MP -MF .deps/long-time.Tpo -c -o long-time.o long-time.c
+-mv -f .deps/long-time.Tpo .deps/long-time.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-time long-time.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
+-mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new-cpp.o -MD -MP -MF .deps/new-cpp.Tpo -c -o new-cpp.o new-cpp.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new-cpp.Tpo .deps/new-cpp.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new-cpp new-cpp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null.o -MD -MP -MF .deps/null.Tpo -c -o null.o null.c
+-mv -f .deps/null.Tpo .deps/null.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null null.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT one.o -MD -MP -MF .deps/one.Tpo -c -o one.o one.c
+-mv -f .deps/one.Tpo .deps/one.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o one one.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overloaded-new.o -MD -MP -MF .deps/overloaded-new.Tpo -c -o overloaded-new.o overloaded-new.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/overloaded-new.Tpo .deps/overloaded-new.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overloaded-new overloaded-new.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pages_as_heap.o -MD -MP -MF .deps/pages_as_heap.Tpo -c -o pages_as_heap.o pages_as_heap.c
+-mv -f .deps/pages_as_heap.Tpo .deps/pages_as_heap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pages_as_heap pages_as_heap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT peak.o -MD -MP -MF .deps/peak.Tpo -c -o peak.o peak.c
+-mv -f .deps/peak.Tpo .deps/peak.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o peak peak.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc.o -MD -MP -MF .deps/realloc.Tpo -c -o realloc.o realloc.c
+-mv -f .deps/realloc.Tpo .deps/realloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc realloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thresholds.o -MD -MP -MF .deps/thresholds.Tpo -c -o thresholds.o thresholds.c
+-mv -f .deps/thresholds.Tpo .deps/thresholds.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thresholds thresholds.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT zero.o -MD -MP -MF .deps/zero.Tpo -c -o zero.o zero.c
+-mv -f .deps/zero.Tpo .deps/zero.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o zero zero.o  
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in lackey
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-mkdir -p ../.in_place; \
+-for f in lackey-ppc64-linux lackey-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../lackey/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../lackey/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
+-make[3]: Nothing to be done for `check'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in none
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-mkdir -p ../.in_place; \
+-for f in none-ppc64-linux none-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../none/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../none/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make  ansi args async-sigs bitfield1 bug129866 closeall coolo_strlen discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip mmap_fcntl_bug munmap_exe map_unaligned map_unmap mq nestedfns pending procfs-cmdline-exe pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_stackalign rcrl readline1 require-text-symbol res_search resolv rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts stackgrowth sigstackgrowth syscall-restart1 syscall-restart2 syslog system threaded-fork threadederrno timestamp tls tls.so tls2.so valgrind_cpp_test vgprintf coolo_sigaction gxx304 process_vm_readv_writev manythreads thread-exits rlimit64_nofile 
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ansi-ansi.o -MD -MP -MF .deps/ansi-ansi.Tpo -c -o ansi-ansi.o `test -f 'ansi.c' || echo './'`ansi.c
+-mv -f .deps/ansi-ansi.Tpo .deps/ansi-ansi.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ansi ansi-ansi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT args.o -MD -MP -MF .deps/args.Tpo -c -o args.o args.c
+-mv -f .deps/args.Tpo .deps/args.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o args args.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT async-sigs.o -MD -MP -MF .deps/async-sigs.Tpo -c -o async-sigs.o async-sigs.c
+-mv -f .deps/async-sigs.Tpo .deps/async-sigs.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o async-sigs async-sigs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bitfield1.o -MD -MP -MF .deps/bitfield1.Tpo -c -o bitfield1.o bitfield1.c
+-mv -f .deps/bitfield1.Tpo .deps/bitfield1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bitfield1 bitfield1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129866.o -MD -MP -MF .deps/bug129866.Tpo -c -o bug129866.o bug129866.c
+-mv -f .deps/bug129866.Tpo .deps/bug129866.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129866 bug129866.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT closeall.o -MD -MP -MF .deps/closeall.Tpo -c -o closeall.o closeall.c
+-mv -f .deps/closeall.Tpo .deps/closeall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o closeall closeall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_strlen.o -MD -MP -MF .deps/coolo_strlen.Tpo -c -o coolo_strlen.o coolo_strlen.c
+-mv -f .deps/coolo_strlen.Tpo .deps/coolo_strlen.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_strlen coolo_strlen.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT discard.o -MD -MP -MF .deps/discard.Tpo -c -o discard.o discard.c
+-mv -f .deps/discard.Tpo .deps/discard.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o discard discard.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exec-sigmask.o -MD -MP -MF .deps/exec-sigmask.Tpo -c -o exec-sigmask.o exec-sigmask.c
+-mv -f .deps/exec-sigmask.Tpo .deps/exec-sigmask.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exec-sigmask exec-sigmask.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve-execve.o -MD -MP -MF .deps/execve-execve.Tpo -c -o execve-execve.o `test -f 'execve.c' || echo './'`execve.c
+-mv -f .deps/execve-execve.Tpo .deps/execve-execve.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve execve-execve.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT faultstatus.o -MD -MP -MF .deps/faultstatus.Tpo -c -o faultstatus.o faultstatus.c
+-mv -f .deps/faultstatus.Tpo .deps/faultstatus.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o faultstatus faultstatus.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fcntl_setown.o -MD -MP -MF .deps/fcntl_setown.Tpo -c -o fcntl_setown.o fcntl_setown.c
+-mv -f .deps/fcntl_setown.Tpo .deps/fcntl_setown.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fcntl_setown fcntl_setown.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_cmsg.o -MD -MP -MF .deps/fdleak_cmsg.Tpo -c -o fdleak_cmsg.o fdleak_cmsg.c
+-mv -f .deps/fdleak_cmsg.Tpo .deps/fdleak_cmsg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_cmsg fdleak_cmsg.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_creat.o -MD -MP -MF .deps/fdleak_creat.Tpo -c -o fdleak_creat.o fdleak_creat.c
+-mv -f .deps/fdleak_creat.Tpo .deps/fdleak_creat.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_creat fdleak_creat.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup.o -MD -MP -MF .deps/fdleak_dup.Tpo -c -o fdleak_dup.o fdleak_dup.c
+-mv -f .deps/fdleak_dup.Tpo .deps/fdleak_dup.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup fdleak_dup.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup2.o -MD -MP -MF .deps/fdleak_dup2.Tpo -c -o fdleak_dup2.o fdleak_dup2.c
+-mv -f .deps/fdleak_dup2.Tpo .deps/fdleak_dup2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup2 fdleak_dup2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_fcntl.o -MD -MP -MF .deps/fdleak_fcntl.Tpo -c -o fdleak_fcntl.o fdleak_fcntl.c
+-mv -f .deps/fdleak_fcntl.Tpo .deps/fdleak_fcntl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_fcntl fdleak_fcntl.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_ipv4.o -MD -MP -MF .deps/fdleak_ipv4.Tpo -c -o fdleak_ipv4.o fdleak_ipv4.c
+-mv -f .deps/fdleak_ipv4.Tpo .deps/fdleak_ipv4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_ipv4 fdleak_ipv4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_open.o -MD -MP -MF .deps/fdleak_open.Tpo -c -o fdleak_open.o fdleak_open.c
+-mv -f .deps/fdleak_open.Tpo .deps/fdleak_open.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_open fdleak_open.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_pipe.o -MD -MP -MF .deps/fdleak_pipe.Tpo -c -o fdleak_pipe.o fdleak_pipe.c
+-mv -f .deps/fdleak_pipe.Tpo .deps/fdleak_pipe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_pipe fdleak_pipe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_socketpair.o -MD -MP -MF .deps/fdleak_socketpair.Tpo -c -o fdleak_socketpair.o fdleak_socketpair.c
+-mv -f .deps/fdleak_socketpair.Tpo .deps/fdleak_socketpair.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_socketpair fdleak_socketpair.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT floored.o -MD -MP -MF .deps/floored.Tpo -c -o floored.o floored.c
+-mv -f .deps/floored.Tpo .deps/floored.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o floored floored.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork.o -MD -MP -MF .deps/fork.Tpo -c -o fork.o fork.c
+-mv -f .deps/fork.Tpo .deps/fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork fork.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fucomip.o -MD -MP -MF .deps/fucomip.Tpo -c -o fucomip.o fucomip.c
+-mv -f .deps/fucomip.Tpo .deps/fucomip.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fucomip fucomip.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmap_fcntl_bug.o -MD -MP -MF .deps/mmap_fcntl_bug.Tpo -c -o mmap_fcntl_bug.o mmap_fcntl_bug.c
+-mv -f .deps/mmap_fcntl_bug.Tpo .deps/mmap_fcntl_bug.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmap_fcntl_bug mmap_fcntl_bug.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT munmap_exe.o -MD -MP -MF .deps/munmap_exe.Tpo -c -o munmap_exe.o munmap_exe.c
+-mv -f .deps/munmap_exe.Tpo .deps/munmap_exe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o munmap_exe munmap_exe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unaligned.o -MD -MP -MF .deps/map_unaligned.Tpo -c -o map_unaligned.o map_unaligned.c
+-mv -f .deps/map_unaligned.Tpo .deps/map_unaligned.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unaligned map_unaligned.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unmap.o -MD -MP -MF .deps/map_unmap.Tpo -c -o map_unmap.o map_unmap.c
+-mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unmap map_unmap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c
+-mv -f .deps/mq.Tpo .deps/mq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mq mq.o -lrt 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c
+-mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nestedfns nestedfns-nestedfns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c
+-mv -f .deps/pending.Tpo .deps/pending.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pending pending.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c
+-mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o procfs-cmdline-exe procfs-cmdline-exe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c
+-mv -f .deps/pth_atfork1.Tpo .deps/pth_atfork1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_atfork1 pth_atfork1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_blockedsig.o -MD -MP -MF .deps/pth_blockedsig.Tpo -c -o pth_blockedsig.o pth_blockedsig.c
+-mv -f .deps/pth_blockedsig.Tpo .deps/pth_blockedsig.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_blockedsig pth_blockedsig.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel1-pth_cancel1.o -MD -MP -MF .deps/pth_cancel1-pth_cancel1.Tpo -c -o pth_cancel1-pth_cancel1.o `test -f 'pth_cancel1.c' || echo './'`pth_cancel1.c
+-mv -f .deps/pth_cancel1-pth_cancel1.Tpo .deps/pth_cancel1-pth_cancel1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel1 pth_cancel1-pth_cancel1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel2.o -MD -MP -MF .deps/pth_cancel2.Tpo -c -o pth_cancel2.o pth_cancel2.c
+-mv -f .deps/pth_cancel2.Tpo .deps/pth_cancel2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel2 pth_cancel2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cvsimple.o -MD -MP -MF .deps/pth_cvsimple.Tpo -c -o pth_cvsimple.o pth_cvsimple.c
+-mv -f .deps/pth_cvsimple.Tpo .deps/pth_cvsimple.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cvsimple pth_cvsimple.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_empty.o -MD -MP -MF .deps/pth_empty.Tpo -c -o pth_empty.o pth_empty.c
+-mv -f .deps/pth_empty.Tpo .deps/pth_empty.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_empty pth_empty.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit.o -MD -MP -MF .deps/pth_exit.Tpo -c -o pth_exit.o pth_exit.c
+-mv -f .deps/pth_exit.Tpo .deps/pth_exit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit pth_exit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit2.o -MD -MP -MF .deps/pth_exit2.Tpo -c -o pth_exit2.o pth_exit2.c
+-mv -f .deps/pth_exit2.Tpo .deps/pth_exit2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit2 pth_exit2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutexspeed.o -MD -MP -MF .deps/pth_mutexspeed.Tpo -c -o pth_mutexspeed.o pth_mutexspeed.c
+-mv -f .deps/pth_mutexspeed.Tpo .deps/pth_mutexspeed.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutexspeed pth_mutexspeed.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_once.o -MD -MP -MF .deps/pth_once.Tpo -c -o pth_once.o pth_once.c
+-mv -f .deps/pth_once.Tpo .deps/pth_once.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_once pth_once.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_rwlock.o -MD -MP -MF .deps/pth_rwlock.Tpo -c -o pth_rwlock.o pth_rwlock.c
+-mv -f .deps/pth_rwlock.Tpo .deps/pth_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_rwlock pth_rwlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_stackalign.o -MD -MP -MF .deps/pth_stackalign.Tpo -c -o pth_stackalign.o pth_stackalign.c
+-mv -f .deps/pth_stackalign.Tpo .deps/pth_stackalign.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_stackalign pth_stackalign.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rcrl.o -MD -MP -MF .deps/rcrl.Tpo -c -o rcrl.o rcrl.c
+-mv -f .deps/rcrl.Tpo .deps/rcrl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rcrl rcrl.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT readline1.o -MD -MP -MF .deps/readline1.Tpo -c -o readline1.o readline1.c
+-mv -f .deps/readline1.Tpo .deps/readline1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o readline1 readline1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT require-text-symbol.o -MD -MP -MF .deps/require-text-symbol.Tpo -c -o require-text-symbol.o require-text-symbol.c
+-mv -f .deps/require-text-symbol.Tpo .deps/require-text-symbol.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o require-text-symbol require-text-symbol.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT res_search.o -MD -MP -MF .deps/res_search.Tpo -c -o res_search.o res_search.c
+-mv -f .deps/res_search.Tpo .deps/res_search.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o res_search res_search.o -lresolv -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT resolv.o -MD -MP -MF .deps/resolv.Tpo -c -o resolv.o resolv.c
+-mv -f .deps/resolv.Tpo .deps/resolv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o resolv resolv.o -lresolv -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c
+-mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit_nofile rlimit_nofile.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c
+-mv -f .deps/selfrun.Tpo .deps/selfrun.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o selfrun selfrun.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c
+-mv -f .deps/sem.Tpo .deps/sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem sem.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c
+-mv -f .deps/semlimit.Tpo .deps/semlimit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o semlimit semlimit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c
+-mv -f .deps/sha1_test.Tpo .deps/sha1_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sha1_test sha1_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shortpush.o -MD -MP -MF .deps/shortpush.Tpo -c -o shortpush.o shortpush.c
+-mv -f .deps/shortpush.Tpo .deps/shortpush.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shortpush shortpush.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shorts.o -MD -MP -MF .deps/shorts.Tpo -c -o shorts.o shorts.c
+-mv -f .deps/shorts.Tpo .deps/shorts.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shorts shorts.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackgrowth.o -MD -MP -MF .deps/stackgrowth.Tpo -c -o stackgrowth.o stackgrowth.c
+-mv -f .deps/stackgrowth.Tpo .deps/stackgrowth.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackgrowth stackgrowth.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigstackgrowth.o -MD -MP -MF .deps/sigstackgrowth.Tpo -c -o sigstackgrowth.o sigstackgrowth.c
+-mv -f .deps/sigstackgrowth.Tpo .deps/sigstackgrowth.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigstackgrowth sigstackgrowth.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart1.o -MD -MP -MF .deps/syscall-restart1.Tpo -c -o syscall-restart1.o syscall-restart1.c
+-mv -f .deps/syscall-restart1.Tpo .deps/syscall-restart1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart1 syscall-restart1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart2.o -MD -MP -MF .deps/syscall-restart2.Tpo -c -o syscall-restart2.o syscall-restart2.c
+-mv -f .deps/syscall-restart2.Tpo .deps/syscall-restart2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart2 syscall-restart2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog.o -MD -MP -MF .deps/syslog.Tpo -c -o syslog.o syslog.c
+-mv -f .deps/syslog.Tpo .deps/syslog.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog syslog.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT system.o -MD -MP -MF .deps/system.Tpo -c -o system.o system.c
+-mv -f .deps/system.Tpo .deps/system.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o system system.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
+-mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threadederrno.o -MD -MP -MF .deps/threadederrno.Tpo -c -o threadederrno.o threadederrno.c
+-mv -f .deps/threadederrno.Tpo .deps/threadederrno.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threadederrno threadederrno.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timestamp.o -MD -MP -MF .deps/timestamp.Tpo -c -o timestamp.o timestamp.c
+-mv -f .deps/timestamp.Tpo .deps/timestamp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timestamp timestamp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls.o -MD -MP -MF .deps/tls.Tpo -c -o tls.o tls.c
+-mv -f .deps/tls.Tpo .deps/tls.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2.o -MD -MP -MF .deps/tls2.Tpo -c -o tls2.o tls2.c
+-mv -f .deps/tls2.Tpo .deps/tls2.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls_so-tls_so.o -MD -MP -MF .deps/tls_so-tls_so.Tpo -c -o tls_so-tls_so.o `test -f 'tls_so.c' || echo './'`tls_so.c
+-mv -f .deps/tls_so-tls_so.Tpo .deps/tls_so-tls_so.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2_so.o -MD -MP -MF .deps/tls2_so.Tpo -c -o tls2_so.o tls2_so.c
+-mv -f .deps/tls2_so.Tpo .deps/tls2_so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -shared  -o tls2.so tls2_so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests -shared -fPIC  -o tls.so tls_so-tls_so.o tls2.so 
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests  -o tls tls.o tls2.o tls.so tls2.so -lpthread 
+-make[5]: `tls.so' is up to date.
+-make[5]: `tls2.so' is up to date.
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT valgrind_cpp_test.o -MD -MP -MF .deps/valgrind_cpp_test.Tpo -c -o valgrind_cpp_test.o valgrind_cpp_test.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/valgrind_cpp_test.Tpo .deps/valgrind_cpp_test.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o valgrind_cpp_test valgrind_cpp_test.o -lstdc++ 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vgprintf.o -MD -MP -MF .deps/vgprintf.Tpo -c -o vgprintf.o vgprintf.c
+-mv -f .deps/vgprintf.Tpo .deps/vgprintf.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vgprintf vgprintf.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_sigaction.o -MD -MP -MF .deps/coolo_sigaction.Tpo -c -o coolo_sigaction.o coolo_sigaction.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/coolo_sigaction.Tpo .deps/coolo_sigaction.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_sigaction coolo_sigaction.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT gxx304.o -MD -MP -MF .deps/gxx304.Tpo -c -o gxx304.o gxx304.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/gxx304.Tpo .deps/gxx304.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o gxx304 gxx304.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT process_vm_readv_writev.o -MD -MP -MF .deps/process_vm_readv_writev.Tpo -c -o process_vm_readv_writev.o process_vm_readv_writev.c
+-mv -f .deps/process_vm_readv_writev.Tpo .deps/process_vm_readv_writev.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o process_vm_readv_writev process_vm_readv_writev.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manythreads.o -MD -MP -MF .deps/manythreads.Tpo -c -o manythreads.o manythreads.c
+-mv -f .deps/manythreads.Tpo .deps/manythreads.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manythreads manythreads.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread-exits.o -MD -MP -MF .deps/thread-exits.Tpo -c -o thread-exits.o thread-exits.c
+-mv -f .deps/thread-exits.Tpo .deps/thread-exits.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread-exits thread-exits.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit64_nofile.o -MD -MP -MF .deps/rlimit64_nofile.Tpo -c -o rlimit64_nofile.o rlimit64_nofile.c
+-mv -f .deps/rlimit64_nofile.Tpo .deps/rlimit64_nofile.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit64_nofile rlimit64_nofile.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 89 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-Making check in ppc32
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make  allexec bug129390-ppc32 bug139050-ppc32 ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
+-mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129390-ppc32.o -MD -MP -MF .deps/bug129390-ppc32.Tpo -c -o bug129390-ppc32.o bug129390-ppc32.c
+-mv -f .deps/bug129390-ppc32.Tpo .deps/bug129390-ppc32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129390-ppc32 bug129390-ppc32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug139050-ppc32.o -MD -MP -MF .deps/bug139050-ppc32.Tpo -c -o bug139050-ppc32.o bug139050-ppc32.c
+-mv -f .deps/bug139050-ppc32.Tpo .deps/bug139050-ppc32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug139050-ppc32 bug139050-ppc32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ldstrev.o -MD -MP -MF .deps/ldstrev.Tpo -c -o ldstrev.o ldstrev.c
+-mv -f .deps/ldstrev.Tpo .deps/ldstrev.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ldstrev ldstrev.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
+-mv -f .deps/lsw.Tpo .deps/lsw.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
+-mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mftocrf.o -MD -MP -MF .deps/mftocrf.Tpo -c -o mftocrf.o mftocrf.c
+-mv -f .deps/mftocrf.Tpo .deps/mftocrf.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mftocrf mftocrf.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mcrfs.o -MD -MP -MF .deps/mcrfs.Tpo -c -o mcrfs.o mcrfs.c
+-mv -f .deps/mcrfs.Tpo .deps/mcrfs.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mcrfs mcrfs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
+-mv -f .deps/round.Tpo .deps/round.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_fx.o -MD -MP -MF .deps/test_fx.Tpo -c -o test_fx.o test_fx.c
+-mv -f .deps/test_fx.Tpo .deps/test_fx.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_fx test_fx.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_gx.o -MD -MP -MF .deps/test_gx.Tpo -c -o test_gx.o test_gx.c
+-mv -f .deps/test_gx.Tpo .deps/test_gx.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_gx test_gx.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT testVMX-testVMX.o -MD -MP -MF .deps/testVMX-testVMX.Tpo -c -o testVMX-testVMX.o `test -f 'testVMX.c' || echo './'`testVMX.c
+-mv -f .deps/testVMX-testVMX.Tpo .deps/testVMX-testVMX.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o testVMX testVMX-testVMX.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi.o -MD -MP -MF .deps/twi.Tpo -c -o twi.o twi.c
+-mv -f .deps/twi.Tpo .deps/twi.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi twi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw.o -MD -MP -MF .deps/tw.Tpo -c -o tw.o tw.c
+-mv -f .deps/tw.Tpo .deps/tw.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw tw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xlc_dbl_u32.o -MD -MP -MF .deps/xlc_dbl_u32.Tpo -c -o xlc_dbl_u32.o xlc_dbl_u32.c
+-mv -f .deps/xlc_dbl_u32.Tpo .deps/xlc_dbl_u32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xlc_dbl_u32 xlc_dbl_u32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power5+_round.o -MD -MP -MF .deps/power5+_round.Tpo -c -o power5+_round.o power5+_round.c
+-mv -f .deps/power5+_round.Tpo .deps/power5+_round.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power5+_round power5+_round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
+-mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
+-mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
+-mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
+-mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
+-mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
+-mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
+-mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
+-mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
+-mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 88 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-Making check in ppc64
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make  allexec jm-insns lsw round std_reg_imm twi_tdi tw_td power6_bcmp power6_mf_gpr test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
+-mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
+-mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
+-mv -f .deps/lsw.Tpo .deps/lsw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
+-mv -f .deps/round.Tpo .deps/round.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_reg_imm.o -MD -MP -MF .deps/std_reg_imm.Tpo -c -o std_reg_imm.o std_reg_imm.c
+-mv -f .deps/std_reg_imm.Tpo .deps/std_reg_imm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_reg_imm std_reg_imm.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi_tdi.o -MD -MP -MF .deps/twi_tdi.Tpo -c -o twi_tdi.o twi_tdi.c
+-mv -f .deps/twi_tdi.Tpo .deps/twi_tdi.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi_tdi twi_tdi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw_td.o -MD -MP -MF .deps/tw_td.Tpo -c -o tw_td.o tw_td.c
+-mv -f .deps/tw_td.Tpo .deps/tw_td.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw_td tw_td.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
+-mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_mf_gpr.o -MD -MP -MF .deps/power6_mf_gpr.Tpo -c -o power6_mf_gpr.o power6_mf_gpr.c
+-mv -f .deps/power6_mf_gpr.Tpo .deps/power6_mf_gpr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_mf_gpr power6_mf_gpr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
+-mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
+-mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
+-mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
+-mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
+-mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
+-mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
+-mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
+-mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 88 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-Making check in linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make  blockfault mremap mremap2 mremap3
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT blockfault.o -MD -MP -MF .deps/blockfault.Tpo -c -o blockfault.o blockfault.c
+-mv -f .deps/blockfault.Tpo .deps/blockfault.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o blockfault blockfault.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap.o -MD -MP -MF .deps/mremap.Tpo -c -o mremap.o mremap.c
+-mv -f .deps/mremap.Tpo .deps/mremap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap mremap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap2.o -MD -MP -MF .deps/mremap2.Tpo -c -o mremap2.o mremap2.c
+-mv -f .deps/mremap2.Tpo .deps/mremap2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap2 mremap2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap3.o -MD -MP -MF .deps/mremap3.Tpo -c -o mremap3.o mremap3.c
+-mv -f .deps/mremap3.Tpo .deps/mremap3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap3 mremap3.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in helgrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-mkdir -p ../.in_place; \
+-for f in helgrind-ppc64-linux helgrind-ppc32-linux vgpreload_helgrind-ppc64-linux.so vgpreload_helgrind-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../helgrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../helgrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make  annotate_hbefore cond_timedwait_invalid free_is_write hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared locked_vs_unlocked1 locked_vs_unlocked2 locked_vs_unlocked3 pth_destroy_cond t2t tc01_simple_race tc02_simple_tls tc03_re_excl tc04_free_lock tc05_simple_race tc06_two_races tc07_hbl1 tc08_hbl2 tc09_bad_unlock tc10_rec_lock tc11_XCHG tc12_rwl_trivial tc13_laog1 tc14_laog_dinphils tc15_laog_lockdel tc16_byterace tc17_sembar tc18_semabuse tc19_shadowmem tc21_pthonce tc23_bogus_condwait tc24_nonzero_sem tc22_exit_w_lock bar_bad bar_trivial tc20_verifywrap annotate_rwlock
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hbefore-annotate_hbefore.o -MD -MP -MF .deps/annotate_hbefore-annotate_hbefore.Tpo -c -o annotate_hbefore-annotate_hbefore.o `test -f 'annotate_hbefore.c' || echo './'`annotate_hbefore.c
+-mv -f .deps/annotate_hbefore-annotate_hbefore.Tpo .deps/annotate_hbefore-annotate_hbefore.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hbefore annotate_hbefore-annotate_hbefore.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT cond_timedwait_invalid.o -MD -MP -MF .deps/cond_timedwait_invalid.Tpo -c -o cond_timedwait_invalid.o cond_timedwait_invalid.c
+-mv -f .deps/cond_timedwait_invalid.Tpo .deps/cond_timedwait_invalid.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o cond_timedwait_invalid cond_timedwait_invalid.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
+-mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg01_all_ok.o -MD -MP -MF .deps/hg01_all_ok.Tpo -c -o hg01_all_ok.o hg01_all_ok.c
+-mv -f .deps/hg01_all_ok.Tpo .deps/hg01_all_ok.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg01_all_ok hg01_all_ok.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg02_deadlock.o -MD -MP -MF .deps/hg02_deadlock.Tpo -c -o hg02_deadlock.o hg02_deadlock.c
+-mv -f .deps/hg02_deadlock.Tpo .deps/hg02_deadlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg02_deadlock hg02_deadlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg03_inherit.o -MD -MP -MF .deps/hg03_inherit.Tpo -c -o hg03_inherit.o hg03_inherit.c
+-mv -f .deps/hg03_inherit.Tpo .deps/hg03_inherit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg03_inherit hg03_inherit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg04_race.o -MD -MP -MF .deps/hg04_race.Tpo -c -o hg04_race.o hg04_race.c
+-mv -f .deps/hg04_race.Tpo .deps/hg04_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg04_race hg04_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg05_race2.o -MD -MP -MF .deps/hg05_race2.Tpo -c -o hg05_race2.o hg05_race2.c
+-mv -f .deps/hg05_race2.Tpo .deps/hg05_race2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg05_race2 hg05_race2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg06_readshared.o -MD -MP -MF .deps/hg06_readshared.Tpo -c -o hg06_readshared.o hg06_readshared.c
+-mv -f .deps/hg06_readshared.Tpo .deps/hg06_readshared.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg06_readshared hg06_readshared.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked1.o -MD -MP -MF .deps/locked_vs_unlocked1.Tpo -c -o locked_vs_unlocked1.o locked_vs_unlocked1.c
+-mv -f .deps/locked_vs_unlocked1.Tpo .deps/locked_vs_unlocked1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked1 locked_vs_unlocked1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked2.o -MD -MP -MF .deps/locked_vs_unlocked2.Tpo -c -o locked_vs_unlocked2.o locked_vs_unlocked2.c
+-mv -f .deps/locked_vs_unlocked2.Tpo .deps/locked_vs_unlocked2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked2 locked_vs_unlocked2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked3.o -MD -MP -MF .deps/locked_vs_unlocked3.Tpo -c -o locked_vs_unlocked3.o locked_vs_unlocked3.c
+-mv -f .deps/locked_vs_unlocked3.Tpo .deps/locked_vs_unlocked3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked3 locked_vs_unlocked3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_destroy_cond.o -MD -MP -MF .deps/pth_destroy_cond.Tpo -c -o pth_destroy_cond.o pth_destroy_cond.c
+-mv -f .deps/pth_destroy_cond.Tpo .deps/pth_destroy_cond.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_destroy_cond pth_destroy_cond.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t2t.o -MD -MP -MF .deps/t2t.Tpo -c -o t2t.o t2t.c
+-mv -f .deps/t2t.Tpo .deps/t2t.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t2t t2t.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc01_simple_race.o -MD -MP -MF .deps/tc01_simple_race.Tpo -c -o tc01_simple_race.o tc01_simple_race.c
+-mv -f .deps/tc01_simple_race.Tpo .deps/tc01_simple_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc01_simple_race tc01_simple_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc02_simple_tls.o -MD -MP -MF .deps/tc02_simple_tls.Tpo -c -o tc02_simple_tls.o tc02_simple_tls.c
+-mv -f .deps/tc02_simple_tls.Tpo .deps/tc02_simple_tls.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc02_simple_tls tc02_simple_tls.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc03_re_excl.o -MD -MP -MF .deps/tc03_re_excl.Tpo -c -o tc03_re_excl.o tc03_re_excl.c
+-mv -f .deps/tc03_re_excl.Tpo .deps/tc03_re_excl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc03_re_excl tc03_re_excl.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc04_free_lock.o -MD -MP -MF .deps/tc04_free_lock.Tpo -c -o tc04_free_lock.o tc04_free_lock.c
+-mv -f .deps/tc04_free_lock.Tpo .deps/tc04_free_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc04_free_lock tc04_free_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc05_simple_race.o -MD -MP -MF .deps/tc05_simple_race.Tpo -c -o tc05_simple_race.o tc05_simple_race.c
+-mv -f .deps/tc05_simple_race.Tpo .deps/tc05_simple_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc05_simple_race tc05_simple_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc06_two_races.o -MD -MP -MF .deps/tc06_two_races.Tpo -c -o tc06_two_races.o tc06_two_races.c
+-mv -f .deps/tc06_two_races.Tpo .deps/tc06_two_races.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc06_two_races tc06_two_races.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc07_hbl1-tc07_hbl1.o -MD -MP -MF .deps/tc07_hbl1-tc07_hbl1.Tpo -c -o tc07_hbl1-tc07_hbl1.o `test -f 'tc07_hbl1.c' || echo './'`tc07_hbl1.c
+-mv -f .deps/tc07_hbl1-tc07_hbl1.Tpo .deps/tc07_hbl1-tc07_hbl1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc07_hbl1 tc07_hbl1-tc07_hbl1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc08_hbl2-tc08_hbl2.o -MD -MP -MF .deps/tc08_hbl2-tc08_hbl2.Tpo -c -o tc08_hbl2-tc08_hbl2.o `test -f 'tc08_hbl2.c' || echo './'`tc08_hbl2.c
+-mv -f .deps/tc08_hbl2-tc08_hbl2.Tpo .deps/tc08_hbl2-tc08_hbl2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc08_hbl2 tc08_hbl2-tc08_hbl2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc09_bad_unlock.o -MD -MP -MF .deps/tc09_bad_unlock.Tpo -c -o tc09_bad_unlock.o tc09_bad_unlock.c
+-mv -f .deps/tc09_bad_unlock.Tpo .deps/tc09_bad_unlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc09_bad_unlock tc09_bad_unlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc10_rec_lock.o -MD -MP -MF .deps/tc10_rec_lock.Tpo -c -o tc10_rec_lock.o tc10_rec_lock.c
+-mv -f .deps/tc10_rec_lock.Tpo .deps/tc10_rec_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc10_rec_lock tc10_rec_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc11_XCHG.o -MD -MP -MF .deps/tc11_XCHG.Tpo -c -o tc11_XCHG.o tc11_XCHG.c
+-mv -f .deps/tc11_XCHG.Tpo .deps/tc11_XCHG.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc11_XCHG tc11_XCHG.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc12_rwl_trivial.o -MD -MP -MF .deps/tc12_rwl_trivial.Tpo -c -o tc12_rwl_trivial.o tc12_rwl_trivial.c
+-mv -f .deps/tc12_rwl_trivial.Tpo .deps/tc12_rwl_trivial.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc12_rwl_trivial tc12_rwl_trivial.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc13_laog1.o -MD -MP -MF .deps/tc13_laog1.Tpo -c -o tc13_laog1.o tc13_laog1.c
+-mv -f .deps/tc13_laog1.Tpo .deps/tc13_laog1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc13_laog1 tc13_laog1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc14_laog_dinphils.o -MD -MP -MF .deps/tc14_laog_dinphils.Tpo -c -o tc14_laog_dinphils.o tc14_laog_dinphils.c
+-mv -f .deps/tc14_laog_dinphils.Tpo .deps/tc14_laog_dinphils.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc14_laog_dinphils tc14_laog_dinphils.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc15_laog_lockdel.o -MD -MP -MF .deps/tc15_laog_lockdel.Tpo -c -o tc15_laog_lockdel.o tc15_laog_lockdel.c
+-mv -f .deps/tc15_laog_lockdel.Tpo .deps/tc15_laog_lockdel.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc15_laog_lockdel tc15_laog_lockdel.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc16_byterace.o -MD -MP -MF .deps/tc16_byterace.Tpo -c -o tc16_byterace.o tc16_byterace.c
+-mv -f .deps/tc16_byterace.Tpo .deps/tc16_byterace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc16_byterace tc16_byterace.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc17_sembar.o -MD -MP -MF .deps/tc17_sembar.Tpo -c -o tc17_sembar.o tc17_sembar.c
+-mv -f .deps/tc17_sembar.Tpo .deps/tc17_sembar.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc17_sembar tc17_sembar.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc18_semabuse.o -MD -MP -MF .deps/tc18_semabuse.Tpo -c -o tc18_semabuse.o tc18_semabuse.c
+-mv -f .deps/tc18_semabuse.Tpo .deps/tc18_semabuse.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc18_semabuse tc18_semabuse.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc19_shadowmem.o -MD -MP -MF .deps/tc19_shadowmem.Tpo -c -o tc19_shadowmem.o tc19_shadowmem.c
+-mv -f .deps/tc19_shadowmem.Tpo .deps/tc19_shadowmem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc19_shadowmem tc19_shadowmem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc21_pthonce.o -MD -MP -MF .deps/tc21_pthonce.Tpo -c -o tc21_pthonce.o tc21_pthonce.c
+-mv -f .deps/tc21_pthonce.Tpo .deps/tc21_pthonce.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc21_pthonce tc21_pthonce.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc23_bogus_condwait.o -MD -MP -MF .deps/tc23_bogus_condwait.Tpo -c -o tc23_bogus_condwait.o tc23_bogus_condwait.c
+-mv -f .deps/tc23_bogus_condwait.Tpo .deps/tc23_bogus_condwait.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc23_bogus_condwait tc23_bogus_condwait.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc24_nonzero_sem.o -MD -MP -MF .deps/tc24_nonzero_sem.Tpo -c -o tc24_nonzero_sem.o tc24_nonzero_sem.c
+-mv -f .deps/tc24_nonzero_sem.Tpo .deps/tc24_nonzero_sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc24_nonzero_sem tc24_nonzero_sem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc22_exit_w_lock.o -MD -MP -MF .deps/tc22_exit_w_lock.Tpo -c -o tc22_exit_w_lock.o tc22_exit_w_lock.c
+-mv -f .deps/tc22_exit_w_lock.Tpo .deps/tc22_exit_w_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc22_exit_w_lock tc22_exit_w_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_bad.o -MD -MP -MF .deps/bar_bad.Tpo -c -o bar_bad.o bar_bad.c
+-mv -f .deps/bar_bad.Tpo .deps/bar_bad.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_bad bar_bad.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_trivial.o -MD -MP -MF .deps/bar_trivial.Tpo -c -o bar_trivial.o bar_trivial.c
+-mv -f .deps/bar_trivial.Tpo .deps/bar_trivial.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_trivial bar_trivial.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc20_verifywrap.o -MD -MP -MF .deps/tc20_verifywrap.Tpo -c -o tc20_verifywrap.o tc20_verifywrap.c
+-mv -f .deps/tc20_verifywrap.Tpo .deps/tc20_verifywrap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc20_verifywrap tc20_verifywrap.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
+-mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 90 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in drd
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-mkdir -p ../.in_place; \
+-for f in drd-ppc64-linux drd-ppc32-linux vgpreload_drd-ppc64-linux.so vgpreload_drd-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../drd/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../drd/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make  annotate_hb_err annotate_hb_race annotate_ignore_rw annotate_ignore_write annotate_publish_hg annotate_static bug-235681 custom_alloc fp_race free_is_write hold_lock linuxthreads_det memory_allocation monitor_example new_delete pth_broadcast pth_cancel_locked pth_cleanup_handler pth_cond_race pth_create_chain pth_detached pth_detached_sem pth_detached3 pth_inconsistent_cond_wait pth_mutex_reinit pth_process_shared_mutex pth_uninitialized_cond recursive_mutex rwlock_race rwlock_test rwlock_type_checking sem_as_mutex sem_open sigalrm thread_name threaded-fork trylock unit_bitmap unit_vc  annotate_barrier annotate_rwlock atomic_var circular_buffer  annotate_smart_pointer tsan_unittest std_thread omp_matinv omp_prime omp_printf matinv pth_barrier pth_barrier_race pth_barrier_reinit pth_barrier_thr_cr  pth_spinlock
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_err.o -MD -MP -MF .deps/annotate_hb_err.Tpo -c -o annotate_hb_err.o annotate_hb_err.c
+-mv -f .deps/annotate_hb_err.Tpo .deps/annotate_hb_err.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_err annotate_hb_err.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_race.o -MD -MP -MF .deps/annotate_hb_race.Tpo -c -o annotate_hb_race.o annotate_hb_race.c
+-mv -f .deps/annotate_hb_race.Tpo .deps/annotate_hb_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_race annotate_hb_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_rw.o -MD -MP -MF .deps/annotate_ignore_rw.Tpo -c -o annotate_ignore_rw.o annotate_ignore_rw.c
+-mv -f .deps/annotate_ignore_rw.Tpo .deps/annotate_ignore_rw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_rw annotate_ignore_rw.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_write.o -MD -MP -MF .deps/annotate_ignore_write.Tpo -c -o annotate_ignore_write.o annotate_ignore_write.c
+-mv -f .deps/annotate_ignore_write.Tpo .deps/annotate_ignore_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_write annotate_ignore_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_publish_hg.o -MD -MP -MF .deps/annotate_publish_hg.Tpo -c -o annotate_publish_hg.o annotate_publish_hg.c
+-mv -f .deps/annotate_publish_hg.Tpo .deps/annotate_publish_hg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_publish_hg annotate_publish_hg.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_static.o -MD -MP -MF .deps/annotate_static.Tpo -c -o annotate_static.o annotate_static.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/annotate_static.Tpo .deps/annotate_static.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_static annotate_static.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug-235681.o -MD -MP -MF .deps/bug-235681.Tpo -c -o bug-235681.o bug-235681.c
+-mv -f .deps/bug-235681.Tpo .deps/bug-235681.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug-235681 bug-235681.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fp_race.o -MD -MP -MF .deps/fp_race.Tpo -c -o fp_race.o fp_race.c
+-mv -f .deps/fp_race.Tpo .deps/fp_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fp_race fp_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
+-mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hold_lock.o -MD -MP -MF .deps/hold_lock.Tpo -c -o hold_lock.o hold_lock.c
+-mv -f .deps/hold_lock.Tpo .deps/hold_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hold_lock hold_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT linuxthreads_det.o -MD -MP -MF .deps/linuxthreads_det.Tpo -c -o linuxthreads_det.o linuxthreads_det.c
+-mv -f .deps/linuxthreads_det.Tpo .deps/linuxthreads_det.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o linuxthreads_det linuxthreads_det.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memory_allocation.o -MD -MP -MF .deps/memory_allocation.Tpo -c -o memory_allocation.o memory_allocation.c
+-mv -f .deps/memory_allocation.Tpo .deps/memory_allocation.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memory_allocation memory_allocation.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT monitor_example.o -MD -MP -MF .deps/monitor_example.Tpo -c -o monitor_example.o monitor_example.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/monitor_example.Tpo .deps/monitor_example.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o monitor_example monitor_example.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_delete.o -MD -MP -MF .deps/new_delete.Tpo -c -o new_delete.o new_delete.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_delete.Tpo .deps/new_delete.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_delete new_delete.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_broadcast.o -MD -MP -MF .deps/pth_broadcast.Tpo -c -o pth_broadcast.o pth_broadcast.c
+-mv -f .deps/pth_broadcast.Tpo .deps/pth_broadcast.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_broadcast pth_broadcast.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel_locked.o -MD -MP -MF .deps/pth_cancel_locked.Tpo -c -o pth_cancel_locked.o pth_cancel_locked.c
+-mv -f .deps/pth_cancel_locked.Tpo .deps/pth_cancel_locked.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel_locked pth_cancel_locked.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cleanup_handler-pth_cleanup_handler.o -MD -MP -MF .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo -c -o pth_cleanup_handler-pth_cleanup_handler.o `test -f 'pth_cleanup_handler.c' || echo './'`pth_cleanup_handler.c
+-mv -f .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo .deps/pth_cleanup_handler-pth_cleanup_handler.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cleanup_handler pth_cleanup_handler-pth_cleanup_handler.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cond_race.o -MD -MP -MF .deps/pth_cond_race.Tpo -c -o pth_cond_race.o pth_cond_race.c
+-mv -f .deps/pth_cond_race.Tpo .deps/pth_cond_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cond_race pth_cond_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_create_chain.o -MD -MP -MF .deps/pth_create_chain.Tpo -c -o pth_create_chain.o pth_create_chain.c
+-mv -f .deps/pth_create_chain.Tpo .deps/pth_create_chain.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_create_chain pth_create_chain.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached.o -MD -MP -MF .deps/pth_detached.Tpo -c -o pth_detached.o pth_detached.c
+-mv -f .deps/pth_detached.Tpo .deps/pth_detached.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached pth_detached.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached_sem.o -MD -MP -MF .deps/pth_detached_sem.Tpo -c -o pth_detached_sem.o pth_detached_sem.c
+-mv -f .deps/pth_detached_sem.Tpo .deps/pth_detached_sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached_sem pth_detached_sem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached3.o -MD -MP -MF .deps/pth_detached3.Tpo -c -o pth_detached3.o pth_detached3.c
+-mv -f .deps/pth_detached3.Tpo .deps/pth_detached3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached3 pth_detached3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_inconsistent_cond_wait.o -MD -MP -MF .deps/pth_inconsistent_cond_wait.Tpo -c -o pth_inconsistent_cond_wait.o pth_inconsistent_cond_wait.c
+-mv -f .deps/pth_inconsistent_cond_wait.Tpo .deps/pth_inconsistent_cond_wait.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_inconsistent_cond_wait pth_inconsistent_cond_wait.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutex_reinit.o -MD -MP -MF .deps/pth_mutex_reinit.Tpo -c -o pth_mutex_reinit.o pth_mutex_reinit.c
+-mv -f .deps/pth_mutex_reinit.Tpo .deps/pth_mutex_reinit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutex_reinit pth_mutex_reinit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_process_shared_mutex.o -MD -MP -MF .deps/pth_process_shared_mutex.Tpo -c -o pth_process_shared_mutex.o pth_process_shared_mutex.c
+-mv -f .deps/pth_process_shared_mutex.Tpo .deps/pth_process_shared_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_process_shared_mutex pth_process_shared_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_uninitialized_cond.o -MD -MP -MF .deps/pth_uninitialized_cond.Tpo -c -o pth_uninitialized_cond.o pth_uninitialized_cond.c
+-mv -f .deps/pth_uninitialized_cond.Tpo .deps/pth_uninitialized_cond.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_uninitialized_cond pth_uninitialized_cond.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT recursive_mutex.o -MD -MP -MF .deps/recursive_mutex.Tpo -c -o recursive_mutex.o recursive_mutex.c
+-mv -f .deps/recursive_mutex.Tpo .deps/recursive_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o recursive_mutex recursive_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_race.o -MD -MP -MF .deps/rwlock_race.Tpo -c -o rwlock_race.o rwlock_race.c
+-mv -f .deps/rwlock_race.Tpo .deps/rwlock_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_race rwlock_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_test.o -MD -MP -MF .deps/rwlock_test.Tpo -c -o rwlock_test.o rwlock_test.c
+-mv -f .deps/rwlock_test.Tpo .deps/rwlock_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_test rwlock_test.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_type_checking.o -MD -MP -MF .deps/rwlock_type_checking.Tpo -c -o rwlock_type_checking.o rwlock_type_checking.c
+-mv -f .deps/rwlock_type_checking.Tpo .deps/rwlock_type_checking.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_type_checking rwlock_type_checking.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_as_mutex.o -MD -MP -MF .deps/sem_as_mutex.Tpo -c -o sem_as_mutex.o sem_as_mutex.c
+-mv -f .deps/sem_as_mutex.Tpo .deps/sem_as_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_as_mutex sem_as_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_open.o -MD -MP -MF .deps/sem_open.Tpo -c -o sem_open.o sem_open.c
+-mv -f .deps/sem_open.Tpo .deps/sem_open.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_open sem_open.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigalrm.o -MD -MP -MF .deps/sigalrm.Tpo -c -o sigalrm.o sigalrm.c
+-mv -f .deps/sigalrm.Tpo .deps/sigalrm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigalrm sigalrm.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread_name.o -MD -MP -MF .deps/thread_name.Tpo -c -o thread_name.o thread_name.c
+-mv -f .deps/thread_name.Tpo .deps/thread_name.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread_name thread_name.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
+-mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trylock.o -MD -MP -MF .deps/trylock.Tpo -c -o trylock.o trylock.c
+-mv -f .deps/trylock.Tpo .deps/trylock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trylock trylock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_bitmap-unit_bitmap.o -MD -MP -MF .deps/unit_bitmap-unit_bitmap.Tpo -c -o unit_bitmap-unit_bitmap.o `test -f 'unit_bitmap.c' || echo './'`unit_bitmap.c
+-mv -f .deps/unit_bitmap-unit_bitmap.Tpo .deps/unit_bitmap-unit_bitmap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_bitmap unit_bitmap-unit_bitmap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_vc-unit_vc.o -MD -MP -MF .deps/unit_vc-unit_vc.Tpo -c -o unit_vc-unit_vc.o `test -f 'unit_vc.c' || echo './'`unit_vc.c
+-mv -f .deps/unit_vc-unit_vc.Tpo .deps/unit_vc-unit_vc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_vc unit_vc-unit_vc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_barrier.o -MD -MP -MF .deps/annotate_barrier.Tpo -c -o annotate_barrier.o annotate_barrier.c
+-mv -f .deps/annotate_barrier.Tpo .deps/annotate_barrier.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_barrier annotate_barrier.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
+-mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c
+-mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_var atomic_var.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c
+-mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o circular_buffer circular_buffer.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_smart_pointer.o -MD -MP -MF .deps/annotate_smart_pointer.Tpo -c -o annotate_smart_pointer.o annotate_smart_pointer.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/annotate_smart_pointer.Tpo .deps/annotate_smart_pointer.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_smart_pointer annotate_smart_pointer.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/tsan_unittest-tsan_unittest.Tpo .deps/tsan_unittest-tsan_unittest.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tsan_unittest tsan_unittest-tsan_unittest.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_thread-std_thread.o -MD -MP -MF .deps/std_thread-std_thread.Tpo -c -o std_thread-std_thread.o `test -f 'std_thread.cpp' || echo './'`std_thread.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/std_thread-std_thread.Tpo .deps/std_thread-std_thread.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_thread std_thread-std_thread.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_matinv-omp_matinv.o -MD -MP -MF .deps/omp_matinv-omp_matinv.Tpo -c -o omp_matinv-omp_matinv.o `test -f 'omp_matinv.c' || echo './'`omp_matinv.c
+-mv -f .deps/omp_matinv-omp_matinv.Tpo .deps/omp_matinv-omp_matinv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_matinv omp_matinv-omp_matinv.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_prime-omp_prime.o -MD -MP -MF .deps/omp_prime-omp_prime.Tpo -c -o omp_prime-omp_prime.o `test -f 'omp_prime.c' || echo './'`omp_prime.c
+-mv -f .deps/omp_prime-omp_prime.Tpo .deps/omp_prime-omp_prime.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_prime omp_prime-omp_prime.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_printf-omp_printf.o -MD -MP -MF .deps/omp_printf-omp_printf.Tpo -c -o omp_printf-omp_printf.o `test -f 'omp_printf.c' || echo './'`omp_printf.c
+-mv -f .deps/omp_printf-omp_printf.Tpo .deps/omp_printf-omp_printf.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_printf omp_printf-omp_printf.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT matinv.o -MD -MP -MF .deps/matinv.Tpo -c -o matinv.o matinv.c
+-mv -f .deps/matinv.Tpo .deps/matinv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o matinv matinv.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier.o -MD -MP -MF .deps/pth_barrier.Tpo -c -o pth_barrier.o pth_barrier.c
+-mv -f .deps/pth_barrier.Tpo .deps/pth_barrier.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier pth_barrier.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_race.o -MD -MP -MF .deps/pth_barrier_race.Tpo -c -o pth_barrier_race.o pth_barrier_race.c
+-mv -f .deps/pth_barrier_race.Tpo .deps/pth_barrier_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_race pth_barrier_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_reinit.o -MD -MP -MF .deps/pth_barrier_reinit.Tpo -c -o pth_barrier_reinit.o pth_barrier_reinit.c
+-mv -f .deps/pth_barrier_reinit.Tpo .deps/pth_barrier_reinit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_reinit pth_barrier_reinit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_thr_cr.o -MD -MP -MF .deps/pth_barrier_thr_cr.Tpo -c -o pth_barrier_thr_cr.o pth_barrier_thr_cr.c
+-mv -f .deps/pth_barrier_thr_cr.Tpo .deps/pth_barrier_thr_cr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_thr_cr pth_barrier_thr_cr.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_spinlock.o -MD -MP -MF .deps/pth_spinlock.Tpo -c -o pth_spinlock.o pth_spinlock.c
+-mv -f .deps/pth_spinlock.Tpo .deps/pth_spinlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_spinlock pth_spinlock.o -lpthread 
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 85 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in exp-sgcheck
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-mkdir -p ../.in_place; \
+-for f in exp-sgcheck-ppc64-linux exp-sgcheck-ppc32-linux vgpreload_exp-sgcheck-ppc64-linux.so vgpreload_exp-sgcheck-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-sgcheck/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-sgcheck/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make  bad_percentify globalerr hackedbz2 hsg preen_invars preen_invars_so.so stackerr
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bad_percentify.o -MD -MP -MF .deps/bad_percentify.Tpo -c -o bad_percentify.o bad_percentify.c
+-mv -f .deps/bad_percentify.Tpo .deps/bad_percentify.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bad_percentify bad_percentify.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT globalerr.o -MD -MP -MF .deps/globalerr.Tpo -c -o globalerr.o globalerr.c
+-mv -f .deps/globalerr.Tpo .deps/globalerr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o globalerr globalerr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hackedbz2-hackedbz2.o -MD -MP -MF .deps/hackedbz2-hackedbz2.Tpo -c -o hackedbz2-hackedbz2.o `test -f 'hackedbz2.c' || echo './'`hackedbz2.c
+-mv -f .deps/hackedbz2-hackedbz2.Tpo .deps/hackedbz2-hackedbz2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hackedbz2 hackedbz2-hackedbz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hsg.o -MD -MP -MF .deps/hsg.Tpo -c -o hsg.o hsg.c
+-mv -f .deps/hsg.Tpo .deps/hsg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hsg hsg.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars.o -MD -MP -MF .deps/preen_invars.Tpo -c -o preen_invars.o preen_invars.c
+-mv -f .deps/preen_invars.Tpo .deps/preen_invars.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars_so_so-preen_invars_so.o -MD -MP -MF .deps/preen_invars_so_so-preen_invars_so.Tpo -c -o preen_invars_so_so-preen_invars_so.o `test -f 'preen_invars_so.c' || echo './'`preen_invars_so.c
+-mv -f .deps/preen_invars_so_so-preen_invars_so.Tpo .deps/preen_invars_so_so-preen_invars_so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,preen_invars_so.so  -o preen_invars_so.so preen_invars_so_so-preen_invars_so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o preen_invars preen_invars.o -ldl 
+-make[4]: `preen_invars_so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackerr.o -MD -MP -MF .deps/stackerr.Tpo -c -o stackerr.o stackerr.c
+-mv -f .deps/stackerr.Tpo .deps/stackerr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackerr stackerr.o  
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in exp-bbv
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-mkdir -p ../.in_place; \
+-for f in exp-bbv-ppc64-linux exp-bbv-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-bbv/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-bbv/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make  
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making all in .
+-make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[6]: Nothing to be done for `all-am'.
+-make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making all in ppc32-linux
+-make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[6]: Nothing to be done for `all'.
+-make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making check in ppc32-linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make  million ll
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT million.o -MD -MP -MF .deps/million.Tpo -c -o million.o million.S
+-mv -f .deps/million.Tpo .deps/million.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o million million.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT ll.o -MD -MP -MF .deps/ll.Tpo -c -o ll.o ll.S
+-mv -f .deps/ll.Tpo .deps/ll.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o ll ll.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in exp-dhat
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-make[2]: Warning: File `.deps/exp_dhat_ppc32_linux-dh_main.Po' has modification time 0.3 s in the future
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-make[3]: Warning: File `.deps/exp_dhat_ppc32_linux-dh_main.Po' has modification time 0.28 s in the future
+-mkdir -p ../.in_place; \
+-for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-dhat/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+-make[3]: Nothing to be done for `check'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+-make[2]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-Making check in tests
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make  arch_test os_test true x86_amd64_features s390x_features
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT arch_test.o -MD -MP -MF .deps/arch_test.Tpo -c -o arch_test.o arch_test.c
+-mv -f .deps/arch_test.Tpo .deps/arch_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o arch_test arch_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT os_test.o -MD -MP -MF .deps/os_test.Tpo -c -o os_test.o os_test.c
+-mv -f .deps/os_test.Tpo .deps/os_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o os_test os_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT true.o -MD -MP -MF .deps/true.Tpo -c -o true.o true.c
+-mv -f .deps/true.Tpo .deps/true.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o true true.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT x86_amd64_features-x86_amd64_features.o -MD -MP -MF .deps/x86_amd64_features-x86_amd64_features.Tpo -c -o x86_amd64_features-x86_amd64_features.o `test -f 'x86_amd64_features.c' || echo './'`x86_amd64_features.c
+-mv -f .deps/x86_amd64_features-x86_amd64_features.Tpo .deps/x86_amd64_features-x86_amd64_features.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o x86_amd64_features x86_amd64_features-x86_amd64_features.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT s390x_features.o -MD -MP -MF .deps/s390x_features.Tpo -c -o s390x_features.o s390x_features.c
+-mv -f .deps/s390x_features.Tpo .deps/s390x_features.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o s390x_features s390x_features.o  
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-Making check in perf
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make  bigcode bz2 fbench ffbench heap many-loss-records many-xpts sarp tinycc
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bigcode.o -MD -MP -MF .deps/bigcode.Tpo -c -o bigcode.o bigcode.c
+-mv -f .deps/bigcode.Tpo .deps/bigcode.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bigcode bigcode.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bz2-bz2.o -MD -MP -MF .deps/bz2-bz2.Tpo -c -o bz2-bz2.o `test -f 'bz2.c' || echo './'`bz2.c
+-mv -f .deps/bz2-bz2.Tpo .deps/bz2-bz2.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bz2 bz2-bz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fbench-fbench.o -MD -MP -MF .deps/fbench-fbench.Tpo -c -o fbench-fbench.o `test -f 'fbench.c' || echo './'`fbench.c
+-mv -f .deps/fbench-fbench.Tpo .deps/fbench-fbench.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fbench fbench-fbench.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ffbench.o -MD -MP -MF .deps/ffbench.Tpo -c -o ffbench.o ffbench.c
+-mv -f .deps/ffbench.Tpo .deps/ffbench.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ffbench ffbench.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT heap.o -MD -MP -MF .deps/heap.Tpo -c -o heap.o heap.c
+-mv -f .deps/heap.Tpo .deps/heap.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o heap heap.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-loss-records.o -MD -MP -MF .deps/many-loss-records.Tpo -c -o many-loss-records.o many-loss-records.c
+-mv -f .deps/many-loss-records.Tpo .deps/many-loss-records.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-loss-records many-loss-records.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-xpts.o -MD -MP -MF .deps/many-xpts.Tpo -c -o many-xpts.o many-xpts.c
+-mv -f .deps/many-xpts.Tpo .deps/many-xpts.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-xpts many-xpts.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sarp.o -MD -MP -MF .deps/sarp.Tpo -c -o sarp.o sarp.c
+-mv -f .deps/sarp.Tpo .deps/sarp.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sarp sarp.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tinycc-tinycc.o -MD -MP -MF .deps/tinycc-tinycc.Tpo -c -o tinycc-tinycc.o `test -f 'tinycc.c' || echo './'`tinycc.c
+-mv -f .deps/tinycc-tinycc.Tpo .deps/tinycc-tinycc.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tinycc tinycc-tinycc.o  
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 90 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-Making check in gdbserver_tests
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make  clean_after_fork fork_chain passsigalrm sleepers main_pic t watchpoints
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clean_after_fork.o -MD -MP -MF .deps/clean_after_fork.Tpo -c -o clean_after_fork.o clean_after_fork.c
+-mv -f .deps/clean_after_fork.Tpo .deps/clean_after_fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clean_after_fork clean_after_fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork_chain.o -MD -MP -MF .deps/fork_chain.Tpo -c -o fork_chain.o fork_chain.c
+-mv -f .deps/fork_chain.Tpo .deps/fork_chain.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork_chain fork_chain.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT passsigalrm.o -MD -MP -MF .deps/passsigalrm.Tpo -c -o passsigalrm.o passsigalrm.c
+-mv -f .deps/passsigalrm.Tpo .deps/passsigalrm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o passsigalrm passsigalrm.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sleepers.o -MD -MP -MF .deps/sleepers.Tpo -c -o sleepers.o sleepers.c
+-mv -f .deps/sleepers.Tpo .deps/sleepers.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sleepers sleepers.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT main_pic-main_pic.o -MD -MP -MF .deps/main_pic-main_pic.Tpo -c -o main_pic-main_pic.o `test -f 'main_pic.c' || echo './'`main_pic.c
+-mv -f .deps/main_pic-main_pic.Tpo .deps/main_pic-main_pic.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -pie  -o main_pic main_pic-main_pic.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t.o -MD -MP -MF .deps/t.Tpo -c -o t.o t.c
+-mv -f .deps/t.Tpo .deps/t.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t t.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT watchpoints.o -MD -MP -MF .deps/watchpoints.Tpo -c -o watchpoints.o watchpoints.c
+-mv -f .deps/watchpoints.Tpo .deps/watchpoints.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o watchpoints watchpoints.o -lpthread 
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-Making check in auxprogs
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
+-Making check in mpi
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
+-mkdir -p ../.in_place; \
+-for f in   ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../mpi/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../mpi/$f.dSYM ../.in_place; \
+-done
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
+-Making check in docs
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
+-make[1]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-gdbserver_tests/make_local_links /usr/bin/gdb
+-if /usr/bin/perl tests/vg_regtest gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat ; then \
+-   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
+-else \
+-   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
+-   false; \
+-fi
+--- Running  tests in gdbserver_tests -----------------------------------
+-mcblocklistsearch: valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcblocklistsearch -q  ./../memcheck/tests/leak-tree  (progB: ./gdb --quiet -l 60 --nx 1>&2 ../memcheck/tests/leak-tree)
+-mcbreak:         valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcbreak ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-mcclean_after_fork: valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcclean_after_fork ./clean_after_fork  (progB: ./gdb --quiet -l 60 --nx ./clean_after_fork)
+-mchelp:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mchelp ./t  (progB: ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mchelp -c help -c help debug -c v.kill)
+-mcinfcallRU:     valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+-mcinfcallWSRU:   valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers)
+-mcinvokeRU:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0)
+-mcinvokeWS:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0)
+-mcleak:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta  (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta)
+-mcmain_pic:      valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic  (progB: ./gdb --quiet -l 60 --nx ./main_pic)
+-*** mcmain_pic failed (stdout) ***
+-*** mcmain_pic failed (stderr) ***
+-*** mcmain_pic failed (stdoutB) ***
+-*** mcmain_pic failed (stderrB) ***
+-mcsignopass:     valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
+-mcsigpass:       valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
+-mcvabits:        valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-mcwatchpoints:   valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints  (progB: ./gdb --quiet -l 60 --nx ./watchpoints)
+-mssnapshot:      valgrind   --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-nlcontrolc:      valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+-nlfork_chain:    valgrind   --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain 
+-nlpasssigalrm:   valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm  (progB: ./gdb --quiet -l 60 --nx ./passsigalrm)
+-nlsigvgdb:       valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlsigvgdb ./sleepers 1 10000000 0 -S-S-S-S (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+--- Finished tests in gdbserver_tests -----------------------------------
+--- Running  tests in memcheck/tests ------------------------------------
+-accounting:      valgrind   ./accounting 
+-addressable:     valgrind   ./addressable 
+-atomic_incs:     valgrind   -q --track-origins=yes ./atomic_incs 
+-badaddrvalue:    valgrind   -q ./badaddrvalue 
+-badfree-2trace:  valgrind   --num-callers=2 -q ./badfree 
+-badfree:         valgrind   -q ./badfree 
+-badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+-badjump:         valgrind   ./badjump 
+-sh: line 1:  1622 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+-badjump2:        valgrind   -q ./badjump2 
+-badloop:         valgrind   -q ./badloop 
+-badpoll:         valgrind   -q ./badpoll 
+-badrw:           valgrind   -q ./badrw 
+-big_blocks_freed_list: valgrind   --freelist-vol=1000000 --freelist-big-blocks=50000 ./big_blocks_freed_list 
+-brk2:            valgrind   ./brk2 
+-buflen_check:    valgrind   -q ./buflen_check 
+-bug287260:       valgrind   ./bug287260 
+-calloc-overflow: valgrind   -q ./calloc-overflow 
+-clientperm:      valgrind   -q ./clientperm 
+-clireq_nofill:   valgrind   -q --undef-value-errors=no --malloc-fill=0xaf --free-fill=0xdb ./clireq_nofill 
+-clo_redzone_128: valgrind   --leak-check=no -q --redzone-size=128 ./clo_redzone 
+-clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone 
+-custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+-custom_alloc:    valgrind   -q ./custom_alloc 
+-deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  2208 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+-deep_templates:  valgrind   -q ./deep_templates 
+-describe-block:  valgrind   ./describe-block 
+-doublefree:      valgrind   -q ./doublefree 
+-dw4:             valgrind   --read-var-info=yes -q ./dw4 
+-err_disable1:    valgrind   -q ./err_disable1 
+-err_disable2:    valgrind   -q ./err_disable2 
+-err_disable3:    valgrind   -q ./err_disable3 
+-err_disable4:    valgrind   -q --num-callers=3 ./err_disable4 
+-erringfds:       valgrind   ./erringfds 
+-error_counts:    valgrind   --log-fd=-1 ./error_counts 
+-errs1:           valgrind   -q ./errs1 
+-execve1:         valgrind   -q ./execve1 
+-execve2:         valgrind   -q --trace-children=yes ./execve2 
+-exitprog:        valgrind   -q ./exitprog 
+-file_locking:    valgrind   -q --trace-children=yes ./file_locking 
+-fprw:            valgrind   -q ./fprw 
+-fwrite:          valgrind   -q ./fwrite 
+-holey_buffer_too_small: valgrind   -q --track-origins=yes ./holey_buffer_too_small 
+-inits:           valgrind   -q ./inits 
+-inline:          valgrind   -q ./inline 
+-leak-0:          valgrind   -q ./leak-0 
+-leak-cases-full: valgrind   -q --leak-check=full --leak-resolution=high ./leak-cases 
+-leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases 
+-leak-cases-summary: valgrind   -q --leak-check=summary --leak-resolution=high ./leak-cases 
+-leak-cycle:      valgrind   -q --leak-check=yes --leak-resolution=high ./leak-cycle 
+-leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta 
+-leak-pool-0:     valgrind   ./leak-pool 0
+-leak-pool-1:     valgrind   ./leak-pool 1
+-leak-pool-2:     valgrind   ./leak-pool 2
+-leak-pool-3:     valgrind   ./leak-pool 3
+-leak-pool-4:     valgrind   ./leak-pool 4
+-leak-pool-5:     valgrind   ./leak-pool 5
+-leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
+--- Running  tests in memcheck/tests/linux ------------------------------
+-brk:             valgrind   ./brk 
+-capget:          valgrind   ./capget 
+-lsframe1:        valgrind   --main-stacksize=67200000 --max-stackframe=67200000 ./lsframe1 
+-lsframe2:        valgrind   --main-stacksize=68500000 ./lsframe2 
+-sigqueue:        valgrind   ./sigqueue -q
+-stack_changes:   valgrind   -q ./stack_changes 
+-stack_switch:    valgrind   -q ./stack_switch 
+-syscalls-2007:   valgrind   ./syscalls-2007 
+-syslog-syscall:  valgrind   ./syslog-syscall 
+-timerfd-syscall: valgrind   ./timerfd-syscall 
+-with-space:      valgrind   -q ./'with space' 
+--- Finished tests in memcheck/tests/linux ------------------------------
+-long-supps:      valgrind   --suppressions=long-supps.supp -q ./long-supps 
+-long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
+-mallinfo:        valgrind   ./mallinfo -q
+-malloc1:         valgrind   -q ./malloc1 
+-malloc2:         valgrind   -q ./malloc2 
+-malloc3:         valgrind   -q ./malloc3 
+-malloc_free_fill: valgrind   -q --malloc-fill=0x55 --free-fill=0x77 ./malloc_free_fill 
+-malloc_usable:   valgrind   -q ./malloc_usable 
+-manuel1:         valgrind   -q ./manuel1 
+-manuel2:         valgrind   -q ./manuel2 
+-manuel3:         valgrind   -q ./manuel3 
+-match-overrun:   valgrind   -q --suppressions=match-overrun.supp ./match-overrun 
+-memalign2:       valgrind   -q --freelist-vol=100000 --freelist-big-blocks=0 ./memalign2 
+-memalign_test:   valgrind   -q ./memalign_test 
+-memcmptest:      valgrind   -q ./memcmptest 
+-mempool:         valgrind   -q --leak-check=yes ./mempool 
+-mempool2:        valgrind   -q --leak-check=yes ./mempool2 
+-metadata:        valgrind   -q ./metadata 
+-mismatches:      valgrind   -q ./mismatches 
+-mmaptest:        valgrind   -q ./mmaptest 
+-nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2 
+-nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp 
+-new_nothrow:     valgrind   -q ./new_nothrow 
+-new_override:    valgrind   ./new_override 
+-noisy_child:     valgrind   --child-silent-after-fork=yes ./noisy_child 
+-null_socket:     valgrind   -q ./null_socket 
+-origin1-yes:     valgrind   -q --track-origins=yes ./origin1-yes 
+-origin2-not-quite: valgrind   -q --track-origins=yes ./origin2-not-quite 
+-origin3-no:      valgrind   -q --track-origins=yes ./origin3-no 
+-origin4-many:    valgrind   -q --track-origins=yes ./origin4-many 
+-origin5-bz2:     valgrind   -q --track-origins=yes ./origin5-bz2 x
+-origin6-fp:      valgrind   -q --track-origins=yes ./origin6-fp 
+-overlap:         valgrind   -q ./overlap 
+-partial_load_dflt: valgrind   ./partial_load 
+-partial_load_ok: valgrind   --partial-loads-ok=yes ./partial_load 
+-partiallydefinedeq: valgrind   ./partiallydefinedeq 
+-pdb-realloc:     valgrind   -q ./pdb-realloc 
+-pdb-realloc2:    valgrind   -q ./pdb-realloc2 
+-pipe:            valgrind   -q ./pipe 
+-pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace 
+-post-syscall:    valgrind   -q ./post-syscall 
+--- Running  tests in memcheck/tests/ppc32 ------------------------------
+-power_ISA2_05:   valgrind   ./power_ISA2_05 
+-./spe-check.c:5:2: error: #error "Not on a POWER/SPE system!"
+-test_spe:        (skipping, prereq failed: ./test_spe.prereq.sh)
+--- Finished tests in memcheck/tests/ppc32 ------------------------------
+--- Running  tests in memcheck/tests/ppc64 ------------------------------
+-power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+--- Finished tests in memcheck/tests/ppc64 ------------------------------
+-realloc1:        valgrind   -q ./realloc1 
+-realloc2:        valgrind   -q ./realloc2 
+-realloc3:        valgrind   -q ./realloc3 
+-sbfragment:      valgrind   ./sbfragment 
+-sh-mem-random:   valgrind   -q ./sh-mem-random 
+-sh-mem:          valgrind   -q ./sh-mem 
+-sigaltstack:     valgrind   -q ./sigaltstack 
+-sigkill:         valgrind   ./sigkill 
+-signal2:         valgrind   -q ./signal2 
+-sigprocmask:     valgrind   -q ./sigprocmask 
+-static_malloc:   valgrind   -q --leak-check=full --soname-synonyms=somalloc=NONE ./static_malloc 
+-str_tester:      valgrind   -q ./str_tester 
+-strchr:          valgrind   -q ./strchr 
+-supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true 
+-supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+-supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+-supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1:  8200 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+-*** supp_unknown failed (stderr) ***
+-suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+-test-plo-no:     valgrind   -q ./test-plo 
+-test-plo-yes:    (skipping, prereq failed: test ! `../../tests/arch_test ppc32` && ! `../../tests/arch_test ppc64` && ! `../../tests/arch_test s390x`)
+-trivialleak:     valgrind   --leak-check=yes -q ./trivialleak 
+-*** trivialleak failed (stderr) ***
+-unit_libcbase:   valgrind   -q ./unit_libcbase 
+-unit_oset:       valgrind   -q ./unit_oset 
+-varinfo1:        valgrind   --read-var-info=yes -q ./varinfo1 
+-varinfo2:        valgrind   --read-var-info=yes -q ./varinfo2 
+-varinfo3:        valgrind   --read-var-info=yes -q ./varinfo3 
+-varinfo4:        valgrind   --read-var-info=yes -q ./varinfo4 
+-varinfo5:        valgrind   --read-var-info=yes -q ./varinfo5 
+-varinfo6:        valgrind   --read-var-info=yes -q ./varinfo6 
+-*** varinfo6 failed (stderr) ***
+-vcpu_bz2:        valgrind   -q ./../../perf/bz2 x
+-vcpu_fbench:     valgrind   -q ./vcpu_fbench 
+-vcpu_fnfns:      valgrind   -q ./vcpu_fnfns 
+-wrap1:           valgrind   -q ./wrap1 
+-wrap2:           valgrind   -q ./wrap2 
+-wrap3:           valgrind   -q ./wrap3 
+-wrap4:           valgrind   -q ./wrap4 
+-wrap5:           valgrind   -q ./wrap5 
+-wrap6:           valgrind   -q ./wrap6 
+-wrap7:           valgrind   -q ./wrap7 
+-wrap8:           valgrind   -q ./wrap8 
+-*** wrap8 failed (stdout) ***
+-*** wrap8 failed (stderr) ***
+-writev1:         valgrind   -q ./writev1 
+-xml1:            valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./xml1 
+--- Finished tests in memcheck/tests ------------------------------------
+--- Running  tests in cachegrind/tests ----------------------------------
+-chdir:           valgrind   ./chdir 
+-clreq:           valgrind   -q ./clreq 
+-dlclose:         valgrind   ./dlclose 
+-notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
+-wrap5:           valgrind   ./../../memcheck/tests/wrap5 
+--- Finished tests in cachegrind/tests ----------------------------------
+--- Running  tests in callgrind/tests -----------------------------------
+-clreq:           valgrind    ./clreq 
+-notpower2-hwpref: valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-hwpref=yes ./../../tests/true 
+-notpower2-use:   valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --cacheuse=yes ./../../tests/true 
+-notpower2-wb:    valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-wb=yes ./../../tests/true 
+-notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
+-simwork-both:    valgrind   --cache-sim=yes --branch-sim=yes ./simwork 
+-simwork-branch:  valgrind   --branch-sim=yes ./simwork 
+-simwork-cache:   valgrind   --cache-sim=yes ./simwork 
+-simwork1:        valgrind   --simulate-hwpref=yes ./simwork 
+-simwork2:        valgrind   --simulate-wb=yes --simulate-hwpref=yes ./simwork 
+-simwork3:        valgrind   --cacheuse=yes ./simwork 
+-threads-use:     valgrind   --separate-threads=yes --cacheuse=yes --collect-bus=yes --collect-systime=yes ./threads 
+-threads:         valgrind   --separate-threads=yes --collect-bus=yes ./threads 
+--- Finished tests in callgrind/tests -----------------------------------
+--- Running  tests in massif/tests --------------------------------------
+-alloc-fns-A:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
+-alloc-fns-B:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b4 --alloc-fn=b3 --alloc-fn=c4 --alloc-fn=c3 --alloc-fn=c2 --alloc-fn=d4 --alloc-fn=d3 --alloc-fn=d2 --alloc-fn=d1 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
+-basic:           valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-basic2:          valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --detailed-freq=1 --max-snapshots=10 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-big-alloc:       valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./big-alloc 
+-*** big-alloc failed (post) ***
+-culling1:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling1 
+-culling2:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling2 
+-custom_alloc:    valgrind   --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./custom_alloc 
+-deep-A:          valgrind   --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-B:          valgrind   --stats=yes --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-C:          valgrind   --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --stats=yes --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-D:          valgrind   --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-*** deep-D failed (post) ***
+-ignored:         valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=ignore1 --ignore-fn=ignore2 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignored 
+-ignoring:        valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignoring 
+-insig:           valgrind   --stacks=no --time-unit=B --heap-admin=128 --massif-out-file=massif.out --threshold=0.99 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./insig 
+-long-names:      valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-names 
+-long-time:       valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-time 
+-malloc_usable:   valgrind   -q --massif-out-file=massif.out ./malloc_usable 
+-new-cpp:         valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./new-cpp 
+-no-stack-no-heap: valgrind   --stacks=no --heap=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-null:            valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./null 
+-one:             valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./one 
+-overloaded-new:  valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./overloaded-new 
+-pages_as_heap:   valgrind   --stacks=no --time-unit=B --heap-admin=0 --pages-as-heap=yes --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=mmap ./pages_as_heap 
+-peak:            valgrind   --stacks=no --time-unit=B --peak-inaccuracy=0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
+-peak2:           valgrind   --stacks=no --time-unit=B -v -v --stats=yes --peak-inaccuracy=10.0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
+-realloc:         valgrind   -v -v --stats=yes --stacks=no --heap-admin=0 --time-unit=B --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./realloc 
+-thresholds_0_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_0_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_10_0: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_10_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_5_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_5_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-zero1:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
+-zero2:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
+--- Finished tests in massif/tests --------------------------------------
+--- Running  tests in lackey/tests --------------------------------------
+-true:            valgrind   ./../../tests/true 
+--- Finished tests in lackey/tests --------------------------------------
+--- Running  tests in none/tests ----------------------------------------
+-allexec32:       valgrind   --trace-children=yes ./allexec32 exec
+-allexec64:       valgrind   --trace-children=yes ./allexec64 exec
+-ansi:            valgrind   ./ansi 
+-args:            valgrind   ./args a b "1 2 3"
+-async-sigs:      valgrind   -q ./async-sigs 
+-bitfield1:       valgrind   ./bitfield1 
+-bug129866:       valgrind   ./bug129866 
+-closeall:        valgrind   ./closeall 
+-cmd-with-special: valgrind   -q ./'a \<>b' 
+-cmdline0:        valgrind   --version  
+-cmdline1:        valgrind   --help --tool=none  
+-cmdline2:        valgrind   --help-debug --tool=none  
+-cmdline3:        valgrind    
+-cmdline4:        valgrind   --bad-bad-option ./../../tests/true 
+-cmdline5:        valgrind   ./no-such-program-my-friend 
+-cmdline6:        valgrind   ./cmdline6.vgtest 
+-coolo_sigaction: valgrind   ./coolo_sigaction 
+-coolo_strlen:    valgrind   ./coolo_strlen 
+-discard:         valgrind   ./discard 
+-empty-exe:       valgrind    ./empty-exe 
+-exec-sigmask:    valgrind   ./exec-sigmask 
+-execve:          valgrind   ./execve 
+-faultstatus:     valgrind   ./faultstatus 
+-fcntl_setown:    valgrind   ./fcntl_setown 
+-fdleak_cmsg:     valgrind   --track-fds=yes ./fdleak_cmsg < /dev/null
+-fdleak_creat:    valgrind   --track-fds=yes ./fdleak_creat < /dev/null
+-fdleak_dup:      valgrind   --track-fds=yes ./fdleak_dup < /dev/null
+-fdleak_dup2:     valgrind   --track-fds=yes ./fdleak_dup2 < /dev/null
+-fdleak_fcntl:    valgrind   --track-fds=yes ./fdleak_fcntl < /dev/null
+-fdleak_ipv4:     valgrind   --track-fds=yes ./fdleak_ipv4 < /dev/null
+-fdleak_open:     valgrind   --track-fds=yes ./fdleak_open < /dev/null
+-fdleak_pipe:     valgrind   --track-fds=yes ./fdleak_pipe < /dev/null
+-fdleak_socketpair: valgrind   --track-fds=yes ./fdleak_socketpair < /dev/null
+-floored:         valgrind   ./floored 
+-fork:            valgrind   -q ./fork 
+-fucomip:         valgrind   ./fucomip 
+-gxx304:          valgrind   ./gxx304 
+-ifunc:           (skipping, prereq failed: test -e ifunc)
+--- Running  tests in none/tests/linux ----------------------------------
+-blockfault:      valgrind   ./blockfault 
+-sh: line 1: 12673 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+-mremap:          valgrind   ./mremap 
+-mremap2:         valgrind   ./mremap2 
+-mremap3:         valgrind   ./mremap3 
+--- Running  tests in none/tests/linux/utils ----------------------------
+-gcc:             valgrind   --tool=none /usr/bin/gcc ./gcc-test-input.c -o hello-world
+-grep:            valgrind   --tool=none /bin/grep -E "M([a-z])+y" ./grep-test-input.txt
+-head:            valgrind   --tool=none /usr/bin/head --lines=43 ./head-test-input.txt
+-hello, world!
+-hello-world:     valgrind   --tool=none ./hello-world 
+-ls:              valgrind   --tool=none /bin/ls ./ls-test-input.txt
+-wc:              valgrind   --tool=none /usr/bin/wc ./wc-test-input.txt
+--- Finished tests in none/tests/linux/utils ----------------------------
+--- Finished tests in none/tests/linux ----------------------------------
+-manythreads:     valgrind   ./manythreads 
+-map_unaligned:   valgrind   ./map_unaligned 
+-map_unmap:       valgrind   --sanity-level=3 ./map_unmap 
+-mmap_fcntl_bug:  valgrind   -q ./mmap_fcntl_bug 
+-mq:              valgrind   ./mq 
+-munmap_exe:      valgrind   ./munmap_exe 
+-nestedfns:       valgrind   ./nestedfns 
+-nodir:           valgrind   ./nodir.vgtest/foobar 
+-pending:         valgrind   ./pending 
+--- Running  tests in none/tests/ppc32 ----------------------------------
+-bug129390-ppc32: valgrind   -q ./bug129390-ppc32 
+-bug139050-ppc32: valgrind   -q ./bug139050-ppc32 
+-jm-fp:           valgrind   ./jm-insns -f 
+-jm-int:          valgrind   ./jm-insns -i 
+-jm-vmx:          valgrind   ./jm-insns -a 
+-ldstrev:         valgrind   ./ldstrev 
+-lsw:             valgrind   ./lsw 
+-mcrfs:           valgrind   ./mcrfs 
+-mftocrf:         valgrind   ./mftocrf 
+-power5+_round:   valgrind   ./power5+_round 
+-power6_bcmp:     valgrind   ./power6_bcmp 
+-round:           valgrind   ./round 
+-test_dfp1:       valgrind   ./test_dfp1 
+-test_dfp2:       valgrind   ./test_dfp2 
+-test_dfp3:       valgrind   ./test_dfp3 
+-test_dfp4:       valgrind   ./test_dfp4 
+-test_dfp5:       valgrind   ./test_dfp5 
+-test_fx:         valgrind   ./test_fx 
+-test_gx:         valgrind   ./test_gx 
+-test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
+-test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
+-test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
+-testVMX:         valgrind   ./testVMX 
+-tw:              valgrind   ./tw 
+-twi:             valgrind   ./twi 
+-xlc_dbl_u32:     valgrind   ./xlc_dbl_u32 
+--- Finished tests in none/tests/ppc32 ----------------------------------
+--- Running  tests in none/tests/ppc64 ----------------------------------
+-jm-fp:           valgrind   ./jm-insns -f 
+-jm-int:          valgrind   ./jm-insns -i 
+-jm-vmx:          valgrind   ./jm-insns -a 
+-lsw:             valgrind   ./lsw 
+-power6_bcmp:     valgrind   ./power6_bcmp 
+-power6_mf_gpr:   valgrind   ./power6_mf_gpr 
+-round:           valgrind   ./round 
+-std_reg_imm:     valgrind   -q ./std_reg_imm 
+-test_dfp1:       valgrind   ./test_dfp1 
+-test_dfp2:       valgrind   ./test_dfp2 
+-test_dfp3:       valgrind   ./test_dfp3 
+-test_dfp4:       valgrind   ./test_dfp4 
+-test_dfp5:       valgrind   ./test_dfp5 
+-test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
+-test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
+-test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
+-tw_td:           valgrind   ./tw_td 
+-twi_tdi:         valgrind   ./twi_tdi 
+--- Finished tests in none/tests/ppc64 ----------------------------------
+-process_vm_readv_writev: valgrind   ./process_vm_readv_writev 
+-procfs-linux:    valgrind   ./procfs-cmdline-exe arg1 "arg 2" arg3
+-procfs-non-linux: (skipping, prereq failed: [ $(uname) != Linux ])
+-pth_atfork1:     valgrind   ./pth_atfork1 
+-pth_blockedsig:  valgrind   ./pth_blockedsig 
+-pth_cancel1:     valgrind   ./pth_cancel1 
+-pth_cancel2:     valgrind   ./pth_cancel2 
+-pth_cvsimple:    valgrind   ./pth_cvsimple 
+-pth_empty:       valgrind   ./pth_empty 
+-pth_exit:        valgrind   ./pth_exit 
+-pth_exit2:       valgrind   ./pth_exit2 
+-pth_mutexspeed:  valgrind   ./pth_mutexspeed 
+-pth_once:        valgrind   ./pth_once 
+-pth_rwlock:      valgrind   ./pth_rwlock 
+-pth_stackalign:  valgrind   ./pth_stackalign 
+-rcrl:            valgrind   ./rcrl 
+-readline1:       valgrind   ./readline1 
+-require-text-symbol-1: valgrind   -q "--require-text-symbol=:*libc.so*:strl?n" ./require-text-symbol 
+-require-text-symbol-2: valgrind   -q "--require-text-symbol=:*libc.so*:doesntexist" --vgdb-prefix=./vgdb-prefix-require-text-symbol-2 ./require-text-symbol 
+-res_search:      valgrind   -q ./res_search www.yahoo.com
+-resolv:          valgrind   ./resolv 
+-rlimit64_nofile: valgrind   ./rlimit64_nofile 
+-rlimit_nofile:   valgrind   ./rlimit_nofile 
+-selfrun:         (skipping, prereq failed: grep '^#define HAVE_PIE 1' ../../config.h > /dev/null)
+-sem:             valgrind   ./sem 
+-semlimit:        valgrind   ./semlimit 
+-sha1_test:       valgrind   ./sha1_test 
+-shell:           valgrind   -q ./shell 
+-shell_badinterp: valgrind   ./shell_badinterp 
+-shell_binaryfile: valgrind   ./shell_binaryfile 
+-shell_dir:       valgrind   ./x86/ 
+-*** shell_dir failed (stderr) ***
+-shell_nonexec:   valgrind   ./shell.vgtest 
+-shell_nosuchfile: valgrind   ./shell_nosuchfile 
+-shell_valid1:    valgrind   -q ./shell_valid1 
+-shell_valid2:    valgrind   -q ./shell_valid2 
+-shell_valid3:    valgrind   -q ./shell_valid3 
+-shell_zerolength: valgrind   -q ./shell_zerolength 
+-shortpush:       valgrind   ./shortpush 
+-shorts:          valgrind   ./shorts 
+-sigstackgrowth:  valgrind   --sanity-level=3 ./sigstackgrowth 
+-stackgrowth:     valgrind   --sanity-level=3 ./stackgrowth 
+-syscall-restart1: valgrind   ./syscall-restart1 
+-syscall-restart2: valgrind   ./syscall-restart2 
+-syslog:          valgrind   -q ./syslog 
+-system:          valgrind   ./system 
+-thread-exits:    valgrind   ./thread-exits 
+-threaded-fork:   valgrind   ./threaded-fork 
+-threadederrno:   valgrind   -q ./threadederrno 
+-timestamp:       valgrind   --time-stamp=yes ./timestamp 
+-tls:             valgrind   ./tls 
+-vgprintf:        valgrind   ./vgprintf 
+--- Finished tests in none/tests ----------------------------------------
+--- Running  tests in helgrind/tests ------------------------------------
+-annotate_hbefore: valgrind   -q --fair-sched=try ./annotate_hbefore 
+-annotate_rwlock: valgrind   -q ./annotate_rwlock 
+-annotate_smart_pointer: valgrind   ./../../drd/tests/annotate_smart_pointer 50 5
+-bar_bad:         valgrind   -q ./bar_bad 
+-bar_trivial:     valgrind   -q ./bar_trivial 
+-cond_timedwait_invalid: valgrind   ./cond_timedwait_invalid 
+-free_is_write:   valgrind   --free-is-write=yes ./free_is_write 
+-hg01_all_ok:     valgrind   ./hg01_all_ok 
+-hg02_deadlock:   valgrind   ./hg02_deadlock 
+-hg03_inherit:    valgrind   --read-var-info=yes ./hg03_inherit 
+-hg04_race:       valgrind   --read-var-info=yes ./hg04_race 
+-hg05_race2:      valgrind   --read-var-info=yes ./hg05_race2 
+-hg06_readshared: valgrind   ./hg06_readshared 
+-locked_vs_unlocked1_fwd: valgrind   -q ./locked_vs_unlocked1 
+-locked_vs_unlocked1_rev: valgrind   -q ./locked_vs_unlocked1 x
+-locked_vs_unlocked2: valgrind   -q ./locked_vs_unlocked2 
+-locked_vs_unlocked3: valgrind   -q ./locked_vs_unlocked3 
+-pth_barrier1:    valgrind   -q ./../../drd/tests/pth_barrier 2 1 1
+-pth_barrier2:    valgrind   -q --cmp-race-err-addrs=yes ./../../drd/tests/pth_barrier 2 32 1
+-pth_barrier3:    valgrind   -q ./../../drd/tests/pth_barrier 32 1 1
+-pth_destroy_cond: valgrind   -q ./pth_destroy_cond 
+-pth_spinlock:    (skipping, prereq failed: false)
+-rwlock_race:     valgrind   --read-var-info=yes ./../../drd/tests/rwlock_race 
+-rwlock_test:     valgrind   ./../../drd/tests/rwlock_test 
+-t2t_laog:        valgrind   ./t2t 30 10 4
+-tc01_simple_race: valgrind   --read-var-info=yes ./tc01_simple_race 
+-tc02_simple_tls: valgrind   ./tc02_simple_tls 
+-tc03_re_excl:    valgrind   ./tc03_re_excl 
+-tc04_free_lock:  valgrind   ./tc04_free_lock 
+-tc05_simple_race: valgrind   --read-var-info=yes ./tc05_simple_race 
+-tc06_two_races:  valgrind   --read-var-info=yes ./tc06_two_races 
+-tc06_two_races_xml: valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --log-file=/dev/null ./tc06_two_races 
+-tc07_hbl1:       valgrind   ./tc07_hbl1 
+-tc08_hbl2:       valgrind   ./tc08_hbl2 
+-tc09_bad_unlock: valgrind   ./tc09_bad_unlock 
+-tc10_rec_lock:   valgrind   ./tc10_rec_lock 
+-tc11_XCHG:       valgrind   ./tc11_XCHG 
+-tc12_rwl_trivial: valgrind   ./tc12_rwl_trivial 
+-tc13_laog1:      valgrind   ./tc13_laog1 
+-tc14_laog_dinphils: valgrind   ./tc14_laog_dinphils 
+-tc15_laog_lockdel: valgrind   ./tc15_laog_lockdel 
+-tc16_byterace:   valgrind   --read-var-info=yes ./tc16_byterace 
+-tc17_sembar:     valgrind   ./tc17_sembar 
+-tc18_semabuse:   valgrind   ./tc18_semabuse 
+-*** tc18_semabuse failed (stderr) ***
+-tc19_shadowmem:  valgrind   --cmp-race-err-addrs=yes --error-limit=no ./tc19_shadowmem 
+-tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap 
+-*** tc20_verifywrap failed (stderr) ***
+-tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+-tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 30265 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+-tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+-tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+--- Finished tests in helgrind/tests ------------------------------------
+--- Running  tests in drd/tests -----------------------------------------
+-annotate_barrier: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./annotate_barrier 2 1 1 
+-annotate_barrier_xml: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 --xml=yes --xml-fd=2 ./annotate_barrier 2 1 1 
+-annotate_hb_err: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_hb_err 
+-annotate_hb_race: valgrind   --check-stack-var=yes --show-confl-seg=no ./annotate_hb_race 
+-annotate_hbefore: valgrind   --fair-sched=try --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_hbefore 
+-annotate_ignore_read: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 69
+-annotate_ignore_rw: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw 
+-annotate_ignore_rw2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw -r
+-annotate_ignore_write: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write 
+-annotate_ignore_write2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write -r
+-annotate_order_1: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 3
+-annotate_order_2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 30
+-annotate_order_3: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 31
+-annotate_publish_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_publish_hg 
+-annotate_rwlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_rwlock 
+-annotate_rwlock_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_rwlock 
+-annotate_smart_pointer: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 50 5
+-annotate_smart_pointer2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 1 1 0
+-annotate_spinlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 27
+-annotate_static: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_static 
+-annotate_trace_memory: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
+-annotate_trace_memory_xml: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
+-atomic_var:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2 ./atomic_var 
+-bar_bad:         valgrind   ./../../helgrind/tests/bar_bad 
+-bar_bad_xml:     valgrind   --xml=yes --xml-fd=2 ./../../helgrind/tests/bar_bad 
+-bar_trivial:     valgrind   ./../../helgrind/tests/bar_trivial 
+-boost_thread:    (skipping, prereq failed: test -e boost_thread)
+-bug-235681:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./bug-235681 -q
+-circular_buffer: valgrind   ./circular_buffer -q
+-custom_alloc:    valgrind   ./custom_alloc 
+-custom_alloc_fiw: valgrind   --free-is-write=yes ./custom_alloc 
+-fp_race:         valgrind   --read-var-info=yes ./fp_race 
+-fp_race2:        valgrind   ./fp_race -m
+-fp_race_xml:     valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --trace-fork-join=yes ./fp_race 
+-free_is_write:   valgrind   --read-var-info=yes --free-is-write=yes --show-confl-seg=no ./free_is_write -q
+-free_is_write2:  valgrind   --read-var-info=yes --free-is-write=yes --check-stack-var=yes --show-confl-seg=no ./free_is_write -q
+-hg01_all_ok:     valgrind   ./../../helgrind/tests/hg01_all_ok 
+-hg02_deadlock:   valgrind   ./../../helgrind/tests/hg02_deadlock 
+-hg03_inherit:    valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg03_inherit 
+-hg04_race:       valgrind   --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg04_race 
+-hg05_race2:      valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=2 ./../../helgrind/tests/hg05_race2 
+-hg06_readshared: valgrind   ./../../helgrind/tests/hg06_readshared 
+-hold_lock_1:     valgrind   --exclusive-threshold=500 --shared-threshold=2000 ./hold_lock -i 1000
+-hold_lock_2:     valgrind   --exclusive-threshold=2000 --shared-threshold=500 ./hold_lock -i 1000
+-linuxthreads_det: valgrind   --read-var-info=yes ./linuxthreads_det 
+-matinv:          valgrind   ./matinv 30 -t 15 -q
+-memory_allocation: valgrind   ./memory_allocation 
+-monitor_example: valgrind   ./monitor_example 
+-new_delete:      valgrind   ./new_delete 
+-omp_matinv:      (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
+-omp_matinv_racy: (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
+-omp_prime_racy:  (skipping, prereq failed: ./run_openmp_test ./omp_prime)
+-omp_printf:      (skipping, prereq failed: ./run_openmp_test ./omp_printf)
+-pth_barrier:     valgrind   ./pth_barrier 2 1 1
+-pth_barrier2:    valgrind   ./pth_barrier 2 32 1
+-pth_barrier3:    valgrind   ./pth_barrier 32 1 1
+-pth_barrier_race: valgrind   --num-callers=3 ./pth_barrier_race 
+-pth_barrier_reinit: valgrind   ./pth_barrier_reinit 
+-pth_barrier_thr_cr: valgrind   --suppressions=pth_barrier_thr_cr.supp ./pth_barrier_thr_cr 50
+-pth_broadcast:   valgrind   ./pth_broadcast 
+-pth_cancel_locked: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cancel_locked 
+-pth_cleanup_handler: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cleanup_handler 
+-pth_cond_race:   valgrind   --num-callers=3 ./pth_cond_race 
+-pth_cond_race2:  valgrind   ./pth_cond_race -m
+-pth_cond_race3:  valgrind   --report-signal-unlocked=no ./pth_cond_race 
+-pth_create_chain: (skipping, prereq failed: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ])
+-pth_create_glibc_2_0: (skipping, prereq failed: test -e pth_create_glibc_2_0 && ./supported_libpthread)
+-pth_detached:    valgrind   ./pth_detached 1 1
+-pth_detached2:   valgrind   --read-var-info=yes ./pth_detached 10 10
+-pth_detached3:   valgrind   ./pth_detached3 
+-pth_detached_sem: valgrind   ./pth_detached_sem 10 10
+-pth_inconsistent_cond_wait: valgrind   --num-callers=3 ./pth_inconsistent_cond_wait -q
+-pth_mutex_reinit: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_mutex_reinit 
+-pth_once:        valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./tsan_unittest 106
+-pth_process_shared_mutex: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_process_shared_mutex 
+-pth_spinlock:    valgrind   --read-var-info=yes --check-stack-var=yes ./pth_spinlock 
+-pth_uninitialized_cond: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_uninitialized_cond 
+-read_and_free_race: valgrind   --free-is-write=yes --num-callers=3 --show-confl-seg=no ./../../helgrind/tests/free_is_write 
+-recursive_mutex: valgrind   --check-stack-var=yes --read-var-info=yes ./recursive_mutex 
+-rwlock_race:     valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./rwlock_race 
+-rwlock_test:     valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./rwlock_test 
+-rwlock_type_checking: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./rwlock_type_checking 
+-sem_as_mutex:    valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex 
+-sem_as_mutex2:   valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex -m
+-sem_as_mutex3:   valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_as_mutex 
+-sem_open:        valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open 
+-sem_open2:       valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open -m
+-sem_open3:       valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_open 
+-sem_open_traced: valgrind   --check-stack-var=yes --read-var-info=yes --trace-semaphore=yes ./sem_open -m
+-sigalrm:         valgrind   ./sigalrm 
+-sigaltstack:     valgrind   -q ./../../memcheck/tests/sigaltstack 
+-std_thread:      (skipping, prereq failed: false && test -e std_thread && ./supported_libpthread)
+-tc01_simple_race: valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc01_simple_race 
+-tc02_simple_tls: valgrind   ./../../helgrind/tests/tc02_simple_tls 
+-tc03_re_excl:    valgrind   ./../../helgrind/tests/tc03_re_excl 
+-tc04_free_lock:  valgrind   --check-stack-var=yes ./../../helgrind/tests/tc04_free_lock 
+-tc05_simple_race: valgrind   ./../../helgrind/tests/tc05_simple_race 
+-tc06_two_races:  valgrind   ./../../helgrind/tests/tc06_two_races 
+-tc07_hbl1:       valgrind   ./../../helgrind/tests/tc07_hbl1 
+-tc08_hbl2:       valgrind   ./../../helgrind/tests/tc08_hbl2 
+-tc09_bad_unlock: valgrind   --check-stack-var=yes --num-callers=3 ./../../helgrind/tests/tc09_bad_unlock 
+-tc10_rec_lock:   valgrind   ./../../helgrind/tests/tc10_rec_lock 
+-tc11_XCHG:       valgrind   ./../../helgrind/tests/tc11_XCHG 
+-tc12_rwl_trivial: valgrind   ./../../helgrind/tests/tc12_rwl_trivial 
+-tc13_laog1:      valgrind   ./../../helgrind/tests/tc13_laog1 
+-tc15_laog_lockdel: valgrind   ./../../helgrind/tests/tc15_laog_lockdel 
+-tc16_byterace:   valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc16_byterace 
+-tc17_sembar:     valgrind   ./../../helgrind/tests/tc17_sembar 
+-tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse 
+-tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+-tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+-tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  3336 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+-tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+-tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+-thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-thread_name_xml: valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 --xml=yes --xml-fd=2 ./thread_name 
+-threaded-fork:   valgrind   ./threaded-fork 
+-trylock:         valgrind   ./trylock 
+-unit_bitmap:     valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_bitmap -s 93 -t 97 -q
+-unit_vc:         valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_vc 
+--- Finished tests in drd/tests -----------------------------------------
+--- Running  tests in exp-sgcheck/tests ---------------------------------
+-bad_percentify:  (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-globalerr:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-hackedbz2:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-hsg:             (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-preen_invars:    (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-stackerr:        (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+--- Finished tests in exp-sgcheck/tests ---------------------------------
+--- Running  tests in exp-bbv/tests/ppc32-linux -------------------------
+-ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll 
+-million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+--- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+-
+-== 535 tests, 8 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+-gdbserver_tests/mcmain_pic               (stdout)
+-gdbserver_tests/mcmain_pic               (stderr)
+-gdbserver_tests/mcmain_pic               (stdoutB)
+-gdbserver_tests/mcmain_pic               (stderrB)
+-memcheck/tests/supp_unknown              (stderr)
+-memcheck/tests/trivialleak               (stderr)
+-memcheck/tests/varinfo6                  (stderr)
+-memcheck/tests/wrap8                     (stdout)
+-memcheck/tests/wrap8                     (stderr)
+-massif/tests/big-alloc                   (post)
+-massif/tests/deep-D                      (post)
+-none/tests/shell_dir                     (stderr)
+-helgrind/tests/tc18_semabuse             (stderr)
+-helgrind/tests/tc20_verifywrap           (stderr)
+-
+-make: *** [regtest] Error 1
+diff --git a/regtest-power7-64.log b/regtest-power7-64.log
+deleted file mode 100644
+index 847d71d..0000000
+--- a/regtest-power7-64.log
++++ /dev/null
+@@ -1,2585 +0,0 @@
+-make  check-recursive
+-make[1]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-Making check in include
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/include'
+-Making check in VEX
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make  check-am
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make[3]: Nothing to be done for `check-am'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/VEX'
+-Making check in coregrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-make  check-am
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-mkdir -p ../.in_place; \
+-for f in vgpreload_core-ppc64-linux.so vgpreload_core-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../coregrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../coregrind/$f.dSYM ../.in_place; \
+-done
+-mkdir -p ../.in_place; \
+-for f in m_gdbserver/32bit-core-valgrind-s1.xml m_gdbserver/32bit-core-valgrind-s2.xml m_gdbserver/32bit-core.xml m_gdbserver/32bit-linux-valgrind-s1.xml m_gdbserver/32bit-linux-valgrind-s2.xml m_gdbserver/32bit-linux.xml m_gdbserver/32bit-sse-valgrind-s1.xml m_gdbserver/32bit-sse-valgrind-s2.xml m_gdbserver/32bit-sse.xml m_gdbserver/64bit-avx-valgrind-s2.xml m_gdbserver/64bit-avx-valgrind-s1.xml m_gdbserver/64bit-avx.xml m_gdbserver/64bit-core-valgrind-s1.xml m_gdbserver/64bit-core-valgrind-s2.xml m_gdbserver/64bit-core.xml m_gdbserver/64bit-linux-valgrind-s1.xml m_gdbserver/64bit-linux-valgrind-s2.xml m_gdbserver/64bit-linux.xml m_gdbserver/64bit-sse-valgrind-s1.xml m_gdbserver/64bit-sse-valgrind-s2.xml m_gdbserver/64bit-sse.xml m_gdbserver/amd64-avx-coresse-valgrind.xml m_gdbserver/amd64-avx-coresse.xml m_gdbserver/amd64-avx-linux-valgrind.xml m_gdbserver/amd64-avx-linux.xml m_gdbserver/amd64-coresse-valgrind.xml m_gdbserver/amd64-linux-valgrind.xml m_gdbserver/arm-core-valgrind-s1.xml m_gdbserver/arm-core-valgrind-s2.xml m_gdbserver/arm-core.xml m_gdbserver/arm-vfpv3-valgrind-s1.xml m_gdbserver/arm-vfpv3-valgrind-s2.xml m_gdbserver/arm-vfpv3.xml m_gdbserver/arm-with-vfpv3-valgrind.xml m_gdbserver/arm-with-vfpv3.xml m_gdbserver/i386-coresse-valgrind.xml m_gdbserver/i386-linux-valgrind.xml m_gdbserver/power64-core-valgrind-s1.xml m_gdbserver/power64-core-valgrind-s2.xml m_gdbserver/power64-core.xml m_gdbserver/power64-linux-valgrind-s1.xml m_gdbserver/power64-linux-valgrind-s2.xml m_gdbserver/power64-linux.xml m_gdbserver/power-altivec-valgrind-s1.xml m_gdbserver/power-altivec-valgrind-s2.xml m_gdbserver/power-altivec.xml m_gdbserver/power-core-valgrind-s1.xml m_gdbserver/power-core-valgrind-s2.xml m_gdbserver/power-core.xml m_gdbserver/power-fpu-valgrind-s1.xml m_gdbserver/power-fpu-valgrind-s2.xml m_gdbserver/power-fpu.xml m_gdbserver/power-linux-valgrind-s1.xml m_gdbserver/power-linux-valgrind-s2.xml m_gdbserver/power-linux.xml m_gdbserver/powerpc-altivec32l-valgrind.xml m_gdbserver/powerpc-altive!
 c32l.xml m_gdbserver/powerpc-altivec64l-valgrind.xml m_gdbserver/powerpc-altivec64l.xml m_gdbserver/s390-acr-valgrind-s1.xml m_gdbserver/s390-acr-valgrind-s2.xml m_gdbserver/s390-acr.xml m_gdbserver/s390-fpr-valgrind-s1.xml m_gdbserver/s390-fpr-valgrind-s2.xml m_gdbserver/s390-fpr.xml m_gdbserver/s390x-core64-valgrind-s1.xml m_gdbserver/s390x-core64-valgrind-s2.xml m_gdbserver/s390x-core64.xml m_gdbserver/s390x-generic-valgrind.xml m_gdbserver/s390x-generic.xml m_gdbserver/s390x-linux64-valgrind-s1.xml m_gdbserver/s390x-linux64-valgrind-s2.xml m_gdbserver/s390x-linux64.xml m_gdbserver/mips-cp0-valgrind-s1.xml m_gdbserver/mips-cp0-valgrind-s2.xml m_gdbserver/mips-cp0.xml m_gdbserver/mips-cpu-valgrind-s1.xml m_gdbserver/mips-cpu-valgrind-s2.xml m_gdbserver/mips-cpu.xml m_gdbserver/mips-linux.xml m_gdbserver/mips-linux-valgrind.xml m_gdbserver/mips-fpu-valgrind-s1.xml m_gdbserver/mips-fpu-valgrind-s2.xml m_gdbserver/mips-fpu.xml; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../coregrind/$f ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/coregrind'
+-Making check in .
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-mkdir -p ./.in_place
+-rm -f ./.in_place/default.supp
+-ln -s ../default.supp ./.in_place
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-Making check in memcheck
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-mkdir -p ../.in_place; \
+-for f in memcheck-ppc64-linux memcheck-ppc32-linux vgpreload_memcheck-ppc64-linux.so vgpreload_memcheck-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../memcheck/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../memcheck/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make  accounting addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw big_blocks_freed_list brk2 buflen_check bug287260 calloc-overflow clientperm clireq_nofill clo_redzone custom_alloc custom-overlap deep-backtrace deep_templates describe-block doublefree error_counts errs1 exitprog execve1 execve2 erringfds err_disable1 err_disable2 err_disable3 err_disable4 file_locking fprw fwrite inits inline holey_buffer_too_small leak-0 leak-cases leak-cycle leak-delta leak-pool leak-tree long_namespace_xml long-supps mallinfo malloc_free_fill malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 match-overrun memalign_test memalign2 memcmptest mempool mempool2 mmaptest mismatches new_override metadata nanoleak_supp nanoleak2 new_nothrow noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 sbfragment sh-mem sh-mem-random sigaltstack signal2 sigprocmask static_malloc sigkill strchr str_tester supp_unknown supp1 supp2 suppfree test-plo trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_fbench vcpu_fnfns xml1 wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev1 dw4
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT accounting.o -MD -MP -MF .deps/accounting.Tpo -c -o accounting.o accounting.c
+-mv -f .deps/accounting.Tpo .deps/accounting.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o accounting accounting.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT addressable.o -MD -MP -MF .deps/addressable.Tpo -c -o addressable.o addressable.c
+-mv -f .deps/addressable.Tpo .deps/addressable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o addressable addressable.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_incs-atomic_incs.o -MD -MP -MF .deps/atomic_incs-atomic_incs.Tpo -c -o atomic_incs-atomic_incs.o `test -f 'atomic_incs.c' || echo './'`atomic_incs.c
+-mv -f .deps/atomic_incs-atomic_incs.Tpo .deps/atomic_incs-atomic_incs.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_incs atomic_incs-atomic_incs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badaddrvalue.o -MD -MP -MF .deps/badaddrvalue.Tpo -c -o badaddrvalue.o badaddrvalue.c
+-mv -f .deps/badaddrvalue.Tpo .deps/badaddrvalue.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badaddrvalue badaddrvalue.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badfree.o -MD -MP -MF .deps/badfree.Tpo -c -o badfree.o badfree.c
+-mv -f .deps/badfree.Tpo .deps/badfree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badfree badfree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump.o -MD -MP -MF .deps/badjump.Tpo -c -o badjump.o badjump.c
+-mv -f .deps/badjump.Tpo .deps/badjump.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump badjump.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badjump2.o -MD -MP -MF .deps/badjump2.Tpo -c -o badjump2.o badjump2.c
+-mv -f .deps/badjump2.Tpo .deps/badjump2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badjump2 badjump2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badloop.o -MD -MP -MF .deps/badloop.Tpo -c -o badloop.o badloop.c
+-mv -f .deps/badloop.Tpo .deps/badloop.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badloop badloop.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badpoll.o -MD -MP -MF .deps/badpoll.Tpo -c -o badpoll.o badpoll.c
+-mv -f .deps/badpoll.Tpo .deps/badpoll.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badpoll badpoll.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT badrw.o -MD -MP -MF .deps/badrw.Tpo -c -o badrw.o badrw.c
+-mv -f .deps/badrw.Tpo .deps/badrw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o badrw badrw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big_blocks_freed_list.o -MD -MP -MF .deps/big_blocks_freed_list.Tpo -c -o big_blocks_freed_list.o big_blocks_freed_list.c
+-mv -f .deps/big_blocks_freed_list.Tpo .deps/big_blocks_freed_list.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big_blocks_freed_list big_blocks_freed_list.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk2.o -MD -MP -MF .deps/brk2.Tpo -c -o brk2.o brk2.c
+-mv -f .deps/brk2.Tpo .deps/brk2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk2 brk2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT buflen_check.o -MD -MP -MF .deps/buflen_check.Tpo -c -o buflen_check.o buflen_check.c
+-mv -f .deps/buflen_check.Tpo .deps/buflen_check.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o buflen_check buflen_check.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug287260.o -MD -MP -MF .deps/bug287260.Tpo -c -o bug287260.o bug287260.c
+-mv -f .deps/bug287260.Tpo .deps/bug287260.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug287260 bug287260.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT calloc-overflow.o -MD -MP -MF .deps/calloc-overflow.Tpo -c -o calloc-overflow.o calloc-overflow.c
+-mv -f .deps/calloc-overflow.Tpo .deps/calloc-overflow.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o calloc-overflow calloc-overflow.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clientperm.o -MD -MP -MF .deps/clientperm.Tpo -c -o clientperm.o clientperm.c
+-mv -f .deps/clientperm.Tpo .deps/clientperm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clientperm clientperm.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clireq_nofill.o -MD -MP -MF .deps/clireq_nofill.Tpo -c -o clireq_nofill.o clireq_nofill.c
+-mv -f .deps/clireq_nofill.Tpo .deps/clireq_nofill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clireq_nofill clireq_nofill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clo_redzone.o -MD -MP -MF .deps/clo_redzone.Tpo -c -o clo_redzone.o clo_redzone.c
+-mv -f .deps/clo_redzone.Tpo .deps/clo_redzone.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clo_redzone clo_redzone.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom-overlap.o -MD -MP -MF .deps/custom-overlap.Tpo -c -o custom-overlap.o custom-overlap.c
+-mv -f .deps/custom-overlap.Tpo .deps/custom-overlap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom-overlap custom-overlap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep-backtrace.o -MD -MP -MF .deps/deep-backtrace.Tpo -c -o deep-backtrace.o deep-backtrace.c
+-mv -f .deps/deep-backtrace.Tpo .deps/deep-backtrace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep-backtrace deep-backtrace.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep_templates-deep_templates.o -MD -MP -MF .deps/deep_templates-deep_templates.Tpo -c -o deep_templates-deep_templates.o `test -f 'deep_templates.cpp' || echo './'`deep_templates.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/deep_templates-deep_templates.Tpo .deps/deep_templates-deep_templates.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -O -gstabs -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep_templates deep_templates-deep_templates.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT describe-block.o -MD -MP -MF .deps/describe-block.Tpo -c -o describe-block.o describe-block.c
+-mv -f .deps/describe-block.Tpo .deps/describe-block.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o describe-block describe-block.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT doublefree.o -MD -MP -MF .deps/doublefree.Tpo -c -o doublefree.o doublefree.c
+-mv -f .deps/doublefree.Tpo .deps/doublefree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o doublefree doublefree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT error_counts-error_counts.o -MD -MP -MF .deps/error_counts-error_counts.Tpo -c -o error_counts-error_counts.o `test -f 'error_counts.c' || echo './'`error_counts.c
+-mv -f .deps/error_counts-error_counts.Tpo .deps/error_counts-error_counts.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o error_counts error_counts-error_counts.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT errs1.o -MD -MP -MF .deps/errs1.Tpo -c -o errs1.o errs1.c
+-mv -f .deps/errs1.Tpo .deps/errs1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o errs1 errs1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exitprog.o -MD -MP -MF .deps/exitprog.Tpo -c -o exitprog.o exitprog.c
+-mv -f .deps/exitprog.Tpo .deps/exitprog.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exitprog exitprog.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve1-execve1.o -MD -MP -MF .deps/execve1-execve1.Tpo -c -o execve1-execve1.o `test -f 'execve1.c' || echo './'`execve1.c
+-mv -f .deps/execve1-execve1.Tpo .deps/execve1-execve1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve1 execve1-execve1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve2-execve2.o -MD -MP -MF .deps/execve2-execve2.Tpo -c -o execve2-execve2.o `test -f 'execve2.c' || echo './'`execve2.c
+-mv -f .deps/execve2-execve2.Tpo .deps/execve2-execve2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve2 execve2-execve2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT erringfds.o -MD -MP -MF .deps/erringfds.Tpo -c -o erringfds.o erringfds.c
+-mv -f .deps/erringfds.Tpo .deps/erringfds.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o erringfds erringfds.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable1.o -MD -MP -MF .deps/err_disable1.Tpo -c -o err_disable1.o err_disable1.c
+-mv -f .deps/err_disable1.Tpo .deps/err_disable1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable1 err_disable1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable2.o -MD -MP -MF .deps/err_disable2.Tpo -c -o err_disable2.o err_disable2.c
+-mv -f .deps/err_disable2.Tpo .deps/err_disable2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable2 err_disable2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable3.o -MD -MP -MF .deps/err_disable3.Tpo -c -o err_disable3.o err_disable3.c
+-mv -f .deps/err_disable3.Tpo .deps/err_disable3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable3 err_disable3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT err_disable4.o -MD -MP -MF .deps/err_disable4.Tpo -c -o err_disable4.o err_disable4.c
+-mv -f .deps/err_disable4.Tpo .deps/err_disable4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o err_disable4 err_disable4.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT file_locking.o -MD -MP -MF .deps/file_locking.Tpo -c -o file_locking.o file_locking.c
+-mv -f .deps/file_locking.Tpo .deps/file_locking.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o file_locking file_locking.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fprw.o -MD -MP -MF .deps/fprw.Tpo -c -o fprw.o fprw.c
+-mv -f .deps/fprw.Tpo .deps/fprw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fprw fprw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fwrite.o -MD -MP -MF .deps/fwrite.Tpo -c -o fwrite.o fwrite.c
+-mv -f .deps/fwrite.Tpo .deps/fwrite.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fwrite fwrite.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inits-inits.o -MD -MP -MF .deps/inits-inits.Tpo -c -o inits-inits.o `test -f 'inits.c' || echo './'`inits.c
+-mv -f .deps/inits-inits.Tpo .deps/inits-inits.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inits inits-inits.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT inline.o -MD -MP -MF .deps/inline.Tpo -c -o inline.o inline.c
+-mv -f .deps/inline.Tpo .deps/inline.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o inline inline.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT holey_buffer_too_small.o -MD -MP -MF .deps/holey_buffer_too_small.Tpo -c -o holey_buffer_too_small.o holey_buffer_too_small.c
+-mv -f .deps/holey_buffer_too_small.Tpo .deps/holey_buffer_too_small.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o holey_buffer_too_small holey_buffer_too_small.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-0.o -MD -MP -MF .deps/leak-0.Tpo -c -o leak-0.o leak-0.c
+-mv -f .deps/leak-0.Tpo .deps/leak-0.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-0 leak-0.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cases.o -MD -MP -MF .deps/leak-cases.Tpo -c -o leak-cases.o leak-cases.c
+-mv -f .deps/leak-cases.Tpo .deps/leak-cases.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cases leak-cases.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-cycle.o -MD -MP -MF .deps/leak-cycle.Tpo -c -o leak-cycle.o leak-cycle.c
+-mv -f .deps/leak-cycle.Tpo .deps/leak-cycle.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-cycle leak-cycle.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-delta.o -MD -MP -MF .deps/leak-delta.Tpo -c -o leak-delta.o leak-delta.c
+-mv -f .deps/leak-delta.Tpo .deps/leak-delta.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-delta leak-delta.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-pool.o -MD -MP -MF .deps/leak-pool.Tpo -c -o leak-pool.o leak-pool.c
+-mv -f .deps/leak-pool.Tpo .deps/leak-pool.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-pool leak-pool.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT leak-tree.o -MD -MP -MF .deps/leak-tree.Tpo -c -o leak-tree.o leak-tree.c
+-mv -f .deps/leak-tree.Tpo .deps/leak-tree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o leak-tree leak-tree.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long_namespace_xml.o -MD -MP -MF .deps/long_namespace_xml.Tpo -c -o long_namespace_xml.o long_namespace_xml.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/long_namespace_xml.Tpo .deps/long_namespace_xml.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long_namespace_xml long_namespace_xml.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-supps.o -MD -MP -MF .deps/long-supps.Tpo -c -o long-supps.o long-supps.c
+-mv -f .deps/long-supps.Tpo .deps/long-supps.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-supps long-supps.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mallinfo.o -MD -MP -MF .deps/mallinfo.Tpo -c -o mallinfo.o mallinfo.c
+-mv -f .deps/mallinfo.Tpo .deps/mallinfo.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mallinfo mallinfo.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_free_fill.o -MD -MP -MF .deps/malloc_free_fill.Tpo -c -o malloc_free_fill.o malloc_free_fill.c
+-mv -f .deps/malloc_free_fill.Tpo .deps/malloc_free_fill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_free_fill malloc_free_fill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
+-mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc1.o -MD -MP -MF .deps/malloc1.Tpo -c -o malloc1.o malloc1.c
+-mv -f .deps/malloc1.Tpo .deps/malloc1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc1 malloc1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc2.o -MD -MP -MF .deps/malloc2.Tpo -c -o malloc2.o malloc2.c
+-mv -f .deps/malloc2.Tpo .deps/malloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc2 malloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc3.o -MD -MP -MF .deps/malloc3.Tpo -c -o malloc3.o malloc3.c
+-mv -f .deps/malloc3.Tpo .deps/malloc3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc3 malloc3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel1-manuel1.o -MD -MP -MF .deps/manuel1-manuel1.Tpo -c -o manuel1-manuel1.o `test -f 'manuel1.c' || echo './'`manuel1.c
+-mv -f .deps/manuel1-manuel1.Tpo .deps/manuel1-manuel1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel1 manuel1-manuel1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel2.o -MD -MP -MF .deps/manuel2.Tpo -c -o manuel2.o manuel2.c
+-mv -f .deps/manuel2.Tpo .deps/manuel2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel2 manuel2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manuel3.o -MD -MP -MF .deps/manuel3.Tpo -c -o manuel3.o manuel3.c
+-mv -f .deps/manuel3.Tpo .deps/manuel3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manuel3 manuel3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT match-overrun.o -MD -MP -MF .deps/match-overrun.Tpo -c -o match-overrun.o match-overrun.c
+-mv -f .deps/match-overrun.Tpo .deps/match-overrun.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o match-overrun match-overrun.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign_test.o -MD -MP -MF .deps/memalign_test.Tpo -c -o memalign_test.o memalign_test.c
+-mv -f .deps/memalign_test.Tpo .deps/memalign_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign_test memalign_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memalign2.o -MD -MP -MF .deps/memalign2.Tpo -c -o memalign2.o memalign2.c
+-mv -f .deps/memalign2.Tpo .deps/memalign2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memalign2 memalign2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memcmptest-memcmptest.o -MD -MP -MF .deps/memcmptest-memcmptest.Tpo -c -o memcmptest-memcmptest.o `test -f 'memcmptest.c' || echo './'`memcmptest.c
+-mv -f .deps/memcmptest-memcmptest.Tpo .deps/memcmptest-memcmptest.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memcmptest memcmptest-memcmptest.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool.o -MD -MP -MF .deps/mempool.Tpo -c -o mempool.o mempool.c
+-mv -f .deps/mempool.Tpo .deps/mempool.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool mempool.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mempool2.o -MD -MP -MF .deps/mempool2.Tpo -c -o mempool2.o mempool2.c
+-mv -f .deps/mempool2.Tpo .deps/mempool2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mempool2 mempool2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmaptest.o -MD -MP -MF .deps/mmaptest.Tpo -c -o mmaptest.o mmaptest.c
+-mv -f .deps/mmaptest.Tpo .deps/mmaptest.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmaptest mmaptest.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mismatches.o -MD -MP -MF .deps/mismatches.Tpo -c -o mismatches.o mismatches.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/mismatches.Tpo .deps/mismatches.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mismatches mismatches.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_override.o -MD -MP -MF .deps/new_override.Tpo -c -o new_override.o new_override.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_override.Tpo .deps/new_override.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_override new_override.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT metadata.o -MD -MP -MF .deps/metadata.Tpo -c -o metadata.o metadata.c
+-mv -f .deps/metadata.Tpo .deps/metadata.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o metadata metadata.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak_supp.o -MD -MP -MF .deps/nanoleak_supp.Tpo -c -o nanoleak_supp.o nanoleak_supp.c
+-mv -f .deps/nanoleak_supp.Tpo .deps/nanoleak_supp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak_supp nanoleak_supp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nanoleak2.o -MD -MP -MF .deps/nanoleak2.Tpo -c -o nanoleak2.o nanoleak2.c
+-mv -f .deps/nanoleak2.Tpo .deps/nanoleak2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nanoleak2 nanoleak2.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_nothrow.o -MD -MP -MF .deps/new_nothrow.Tpo -c -o new_nothrow.o new_nothrow.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_nothrow.Tpo .deps/new_nothrow.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_nothrow new_nothrow.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT noisy_child.o -MD -MP -MF .deps/noisy_child.Tpo -c -o noisy_child.o noisy_child.c
+-mv -f .deps/noisy_child.Tpo .deps/noisy_child.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o noisy_child noisy_child.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null_socket.o -MD -MP -MF .deps/null_socket.Tpo -c -o null_socket.o null_socket.c
+-mv -f .deps/null_socket.Tpo .deps/null_socket.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null_socket null_socket.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin1-yes.o -MD -MP -MF .deps/origin1-yes.Tpo -c -o origin1-yes.o origin1-yes.c
+-mv -f .deps/origin1-yes.Tpo .deps/origin1-yes.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin1-yes origin1-yes.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin2_not_quite-origin2-not-quite.o -MD -MP -MF .deps/origin2_not_quite-origin2-not-quite.Tpo -c -o origin2_not_quite-origin2-not-quite.o `test -f 'origin2-not-quite.c' || echo './'`origin2-not-quite.c
+-mv -f .deps/origin2_not_quite-origin2-not-quite.Tpo .deps/origin2_not_quite-origin2-not-quite.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin2-not-quite origin2_not_quite-origin2-not-quite.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin3_no-origin3-no.o -MD -MP -MF .deps/origin3_no-origin3-no.Tpo -c -o origin3_no-origin3-no.o `test -f 'origin3-no.c' || echo './'`origin3-no.c
+-mv -f .deps/origin3_no-origin3-no.Tpo .deps/origin3_no-origin3-no.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-uninitialized -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin3-no origin3_no-origin3-no.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin4_many-origin4-many.o -MD -MP -MF .deps/origin4_many-origin4-many.Tpo -c -o origin4_many-origin4-many.o `test -f 'origin4-many.c' || echo './'`origin4-many.c
+-mv -f .deps/origin4_many-origin4-many.Tpo .deps/origin4_many-origin4-many.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin4-many origin4_many-origin4-many.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin5_bz2-origin5-bz2.o -MD -MP -MF .deps/origin5_bz2-origin5-bz2.Tpo -c -o origin5_bz2-origin5-bz2.o `test -f 'origin5-bz2.c' || echo './'`origin5-bz2.c
+-mv -f .deps/origin5_bz2-origin5-bz2.Tpo .deps/origin5_bz2-origin5-bz2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin5-bz2 origin5_bz2-origin5-bz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT origin6_fp-origin6-fp.o -MD -MP -MF .deps/origin6_fp-origin6-fp.Tpo -c -o origin6_fp-origin6-fp.o `test -f 'origin6-fp.c' || echo './'`origin6-fp.c
+-mv -f .deps/origin6_fp-origin6-fp.Tpo .deps/origin6_fp-origin6-fp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o origin6-fp origin6_fp-origin6-fp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overlap-overlap.o -MD -MP -MF .deps/overlap-overlap.Tpo -c -o overlap-overlap.o `test -f 'overlap.c' || echo './'`overlap.c
+-mv -f .deps/overlap-overlap.Tpo .deps/overlap-overlap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fno-builtin-memcpy -fno-builtin-strcpy -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overlap overlap-overlap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partiallydefinedeq.o -MD -MP -MF .deps/partiallydefinedeq.Tpo -c -o partiallydefinedeq.o partiallydefinedeq.c
+-mv -f .deps/partiallydefinedeq.Tpo .deps/partiallydefinedeq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partiallydefinedeq partiallydefinedeq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT partial_load.o -MD -MP -MF .deps/partial_load.Tpo -c -o partial_load.o partial_load.c
+-mv -f .deps/partial_load.Tpo .deps/partial_load.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o partial_load partial_load.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc.o -MD -MP -MF .deps/pdb-realloc.Tpo -c -o pdb-realloc.o pdb-realloc.c
+-mv -f .deps/pdb-realloc.Tpo .deps/pdb-realloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc pdb-realloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pdb-realloc2.o -MD -MP -MF .deps/pdb-realloc2.Tpo -c -o pdb-realloc2.o pdb-realloc2.c
+-mv -f .deps/pdb-realloc2.Tpo .deps/pdb-realloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pdb-realloc2 pdb-realloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pipe.o -MD -MP -MF .deps/pipe.Tpo -c -o pipe.o pipe.c
+-mv -f .deps/pipe.Tpo .deps/pipe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pipe pipe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pointer-trace.o -MD -MP -MF .deps/pointer-trace.Tpo -c -o pointer-trace.o pointer-trace.c
+-mv -f .deps/pointer-trace.Tpo .deps/pointer-trace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pointer-trace pointer-trace.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT post-syscall.o -MD -MP -MF .deps/post-syscall.Tpo -c -o post-syscall.o post-syscall.c
+-mv -f .deps/post-syscall.Tpo .deps/post-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o post-syscall post-syscall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc1.o -MD -MP -MF .deps/realloc1.Tpo -c -o realloc1.o realloc1.c
+-mv -f .deps/realloc1.Tpo .deps/realloc1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc1 realloc1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc2.o -MD -MP -MF .deps/realloc2.Tpo -c -o realloc2.o realloc2.c
+-mv -f .deps/realloc2.Tpo .deps/realloc2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc2 realloc2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc3.o -MD -MP -MF .deps/realloc3.Tpo -c -o realloc3.o realloc3.c
+-mv -f .deps/realloc3.Tpo .deps/realloc3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc3 realloc3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sbfragment.o -MD -MP -MF .deps/sbfragment.Tpo -c -o sbfragment.o sbfragment.c
+-mv -f .deps/sbfragment.Tpo .deps/sbfragment.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sbfragment sbfragment.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem.o -MD -MP -MF .deps/sh-mem.Tpo -c -o sh-mem.o sh-mem.c
+-mv -f .deps/sh-mem.Tpo .deps/sh-mem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem sh-mem.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sh-mem-random.o -MD -MP -MF .deps/sh-mem-random.Tpo -c -o sh-mem-random.o sh-mem-random.c
+-mv -f .deps/sh-mem-random.Tpo .deps/sh-mem-random.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sh-mem-random sh-mem-random.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigaltstack.o -MD -MP -MF .deps/sigaltstack.Tpo -c -o sigaltstack.o sigaltstack.c
+-mv -f .deps/sigaltstack.Tpo .deps/sigaltstack.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigaltstack sigaltstack.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT signal2.o -MD -MP -MF .deps/signal2.Tpo -c -o signal2.o signal2.c
+-mv -f .deps/signal2.Tpo .deps/signal2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o signal2 signal2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigprocmask.o -MD -MP -MF .deps/sigprocmask.Tpo -c -o sigprocmask.o sigprocmask.c
+-mv -f .deps/sigprocmask.Tpo .deps/sigprocmask.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigprocmask sigprocmask.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT static_malloc.o -MD -MP -MF .deps/static_malloc.Tpo -c -o static_malloc.o static_malloc.c
+-mv -f .deps/static_malloc.Tpo .deps/static_malloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o static_malloc static_malloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigkill.o -MD -MP -MF .deps/sigkill.Tpo -c -o sigkill.o sigkill.c
+-mv -f .deps/sigkill.Tpo .deps/sigkill.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigkill sigkill.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT strchr.o -MD -MP -MF .deps/strchr.Tpo -c -o strchr.o strchr.c
+-mv -f .deps/strchr.Tpo .deps/strchr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o strchr strchr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT str_tester-str_tester.o -MD -MP -MF .deps/str_tester-str_tester.Tpo -c -o str_tester-str_tester.o `test -f 'str_tester.c' || echo './'`str_tester.c
+-mv -f .deps/str_tester-str_tester.Tpo .deps/str_tester-str_tester.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o str_tester str_tester-str_tester.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp_unknown badjump.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT supp.o -MD -MP -MF .deps/supp.Tpo -c -o supp.o supp.c
+-mv -f .deps/supp.Tpo .deps/supp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp1 supp.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o supp2 supp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT suppfree.o -MD -MP -MF .deps/suppfree.Tpo -c -o suppfree.o suppfree.c
+-mv -f .deps/suppfree.Tpo .deps/suppfree.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o suppfree suppfree.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test-plo.o -MD -MP -MF .deps/test-plo.Tpo -c -o test-plo.o test-plo.c
+-mv -f .deps/test-plo.Tpo .deps/test-plo.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test-plo test-plo.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trivialleak.o -MD -MP -MF .deps/trivialleak.Tpo -c -o trivialleak.o trivialleak.c
+-mv -f .deps/trivialleak.Tpo .deps/trivialleak.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trivialleak trivialleak.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_libcbase.o -MD -MP -MF .deps/unit_libcbase.Tpo -c -o unit_libcbase.o unit_libcbase.c
+-mv -f .deps/unit_libcbase.Tpo .deps/unit_libcbase.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_libcbase unit_libcbase.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_oset.o -MD -MP -MF .deps/unit_oset.Tpo -c -o unit_oset.o unit_oset.c
+-mv -f .deps/unit_oset.Tpo .deps/unit_oset.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_oset unit_oset.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo1-varinfo1.o -MD -MP -MF .deps/varinfo1-varinfo1.Tpo -c -o varinfo1-varinfo1.o `test -f 'varinfo1.c' || echo './'`varinfo1.c
+-mv -f .deps/varinfo1-varinfo1.Tpo .deps/varinfo1-varinfo1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo1 varinfo1-varinfo1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo2-varinfo2.o -MD -MP -MF .deps/varinfo2-varinfo2.Tpo -c -o varinfo2-varinfo2.o `test -f 'varinfo2.c' || echo './'`varinfo2.c
+-mv -f .deps/varinfo2-varinfo2.Tpo .deps/varinfo2-varinfo2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo2 varinfo2-varinfo2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo3-varinfo3.o -MD -MP -MF .deps/varinfo3-varinfo3.Tpo -c -o varinfo3-varinfo3.o `test -f 'varinfo3.c' || echo './'`varinfo3.c
+-mv -f .deps/varinfo3-varinfo3.Tpo .deps/varinfo3-varinfo3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo3 varinfo3-varinfo3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo4-varinfo4.o -MD -MP -MF .deps/varinfo4-varinfo4.Tpo -c -o varinfo4-varinfo4.o `test -f 'varinfo4.c' || echo './'`varinfo4.c
+-mv -f .deps/varinfo4-varinfo4.Tpo .deps/varinfo4-varinfo4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo4 varinfo4-varinfo4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5-varinfo5.o -MD -MP -MF .deps/varinfo5-varinfo5.Tpo -c -o varinfo5-varinfo5.o `test -f 'varinfo5.c' || echo './'`varinfo5.c
+-mv -f .deps/varinfo5-varinfo5.Tpo .deps/varinfo5-varinfo5.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo5so_so-varinfo5so.o -MD -MP -MF .deps/varinfo5so_so-varinfo5so.Tpo -c -o varinfo5so_so-varinfo5so.o `test -f 'varinfo5so.c' || echo './'`varinfo5so.c
+-mv -f .deps/varinfo5so_so-varinfo5so.Tpo .deps/varinfo5so_so-varinfo5so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -O -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,varinfo5so.so  -o varinfo5so.so varinfo5so_so-varinfo5so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o varinfo5 varinfo5-varinfo5.o varinfo5so.so 
+-make[5]: `varinfo5so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT varinfo6-varinfo6.o -MD -MP -MF .deps/varinfo6-varinfo6.Tpo -c -o varinfo6-varinfo6.o `test -f 'varinfo6.c' || echo './'`varinfo6.c
+-mv -f .deps/varinfo6-varinfo6.Tpo .deps/varinfo6-varinfo6.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o varinfo6 varinfo6-varinfo6.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fbench-vcpu_fbench.o -MD -MP -MF .deps/vcpu_fbench-vcpu_fbench.Tpo -c -o vcpu_fbench-vcpu_fbench.o `test -f 'vcpu_fbench.c' || echo './'`vcpu_fbench.c
+-mv -f .deps/vcpu_fbench-vcpu_fbench.Tpo .deps/vcpu_fbench-vcpu_fbench.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fbench vcpu_fbench-vcpu_fbench.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vcpu_fnfns-vcpu_fnfns.o -MD -MP -MF .deps/vcpu_fnfns-vcpu_fnfns.Tpo -c -o vcpu_fnfns-vcpu_fnfns.o `test -f 'vcpu_fnfns.c' || echo './'`vcpu_fnfns.c
+-mv -f .deps/vcpu_fnfns-vcpu_fnfns.Tpo .deps/vcpu_fnfns-vcpu_fnfns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vcpu_fnfns vcpu_fnfns-vcpu_fnfns.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xml1.o -MD -MP -MF .deps/xml1.Tpo -c -o xml1.o xml1.c
+-mv -f .deps/xml1.Tpo .deps/xml1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xml1 xml1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap1.o -MD -MP -MF .deps/wrap1.Tpo -c -o wrap1.o wrap1.c
+-mv -f .deps/wrap1.Tpo .deps/wrap1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap1 wrap1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap2.o -MD -MP -MF .deps/wrap2.Tpo -c -o wrap2.o wrap2.c
+-mv -f .deps/wrap2.Tpo .deps/wrap2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap2 wrap2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap3.o -MD -MP -MF .deps/wrap3.Tpo -c -o wrap3.o wrap3.c
+-mv -f .deps/wrap3.Tpo .deps/wrap3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap3 wrap3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap4.o -MD -MP -MF .deps/wrap4.Tpo -c -o wrap4.o wrap4.c
+-mv -f .deps/wrap4.Tpo .deps/wrap4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap4 wrap4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap5.o -MD -MP -MF .deps/wrap5.Tpo -c -o wrap5.o wrap5.c
+-mv -f .deps/wrap5.Tpo .deps/wrap5.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap5 wrap5.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap6-wrap6.o -MD -MP -MF .deps/wrap6-wrap6.Tpo -c -o wrap6-wrap6.o `test -f 'wrap6.c' || echo './'`wrap6.c
+-mv -f .deps/wrap6-wrap6.Tpo .deps/wrap6-wrap6.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap6 wrap6-wrap6.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7.o -MD -MP -MF .deps/wrap7.Tpo -c -o wrap7.o wrap7.c
+-mv -f .deps/wrap7.Tpo .deps/wrap7.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap7so_so-wrap7so.o -MD -MP -MF .deps/wrap7so_so-wrap7so.Tpo -c -o wrap7so_so-wrap7so.o `test -f 'wrap7so.c' || echo './'`wrap7so.c
+-mv -f .deps/wrap7so_so-wrap7so.Tpo .deps/wrap7so_so-wrap7so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,wrap7so.so  -o wrap7so.so wrap7so_so-wrap7so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o wrap7 wrap7.o wrap7so.so 
+-make[5]: `wrap7so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT wrap8.o -MD -MP -MF .deps/wrap8.Tpo -c -o wrap8.o wrap8.c
+-mv -f .deps/wrap8.Tpo .deps/wrap8.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o wrap8 wrap8.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT writev1.o -MD -MP -MF .deps/writev1.Tpo -c -o writev1.o writev1.c
+-mv -f .deps/writev1.Tpo .deps/writev1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o writev1 writev1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dw4-dw4.o -MD -MP -MF .deps/dw4-dw4.Tpo -c -o dw4-dw4.o `test -f 'dw4.c' || echo './'`dw4.c
+-mv -f .deps/dw4-dw4.Tpo .deps/dw4-dw4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -gdwarf-4 -fdebug-types-section -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dw4 dw4-dw4.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[5]: Warning: File `.deps/xml1.Po' has modification time 86 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-Making check in ppc32
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make  power_ISA2_05 test_spe
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
+-mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
+-gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_spe.o -MD -MP -MF .deps/test_spe.Tpo -c -o test_spe.o test_spe.c
+-mv -f .deps/test_spe.Tpo .deps/test_spe.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_spe test_spe.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[5]: Warning: File `.deps/test_spe.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc32'
+-Making check in ppc64
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make  power_ISA2_05
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power_ISA2_05-power_ISA2_05.o -MD -MP -MF .deps/power_ISA2_05-power_ISA2_05.Tpo -c -o power_ISA2_05-power_ISA2_05.o `test -f 'power_ISA2_05.c' || echo './'`power_ISA2_05.c
+-mv -f .deps/power_ISA2_05-power_ISA2_05.Tpo .deps/power_ISA2_05-power_ISA2_05.Po
+-gcc -Winline -Wall -Wshadow -g  -Winline -Wall -Wshadow -g -I../../../include -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power_ISA2_05 power_ISA2_05-power_ISA2_05.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[5]: Warning: File `.deps/power_ISA2_05-power_ISA2_05.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/ppc64'
+-Making check in linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make  brk capget lsframe1 lsframe2 sigqueue stack_changes stack_switch syscalls-2007 syslog-syscall timerfd-syscall
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT brk.o -MD -MP -MF .deps/brk.Tpo -c -o brk.o brk.c
+-mv -f .deps/brk.Tpo .deps/brk.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o brk brk.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT capget.o -MD -MP -MF .deps/capget.Tpo -c -o capget.o capget.c
+-mv -f .deps/capget.Tpo .deps/capget.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o capget capget.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe1.o -MD -MP -MF .deps/lsframe1.Tpo -c -o lsframe1.o lsframe1.c
+-mv -f .deps/lsframe1.Tpo .deps/lsframe1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe1 lsframe1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsframe2.o -MD -MP -MF .deps/lsframe2.Tpo -c -o lsframe2.o lsframe2.c
+-mv -f .deps/lsframe2.Tpo .deps/lsframe2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsframe2 lsframe2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigqueue.o -MD -MP -MF .deps/sigqueue.Tpo -c -o sigqueue.o sigqueue.c
+-mv -f .deps/sigqueue.Tpo .deps/sigqueue.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigqueue sigqueue.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_changes.o -MD -MP -MF .deps/stack_changes.Tpo -c -o stack_changes.o stack_changes.c
+-mv -f .deps/stack_changes.Tpo .deps/stack_changes.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_changes stack_changes.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stack_switch.o -MD -MP -MF .deps/stack_switch.Tpo -c -o stack_switch.o stack_switch.c
+-mv -f .deps/stack_switch.Tpo .deps/stack_switch.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stack_switch stack_switch.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscalls-2007.o -MD -MP -MF .deps/syscalls-2007.Tpo -c -o syscalls-2007.o syscalls-2007.c
+-mv -f .deps/syscalls-2007.Tpo .deps/syscalls-2007.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscalls-2007 syscalls-2007.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog-syscall.o -MD -MP -MF .deps/syslog-syscall.Tpo -c -o syslog-syscall.o syslog-syscall.c
+-mv -f .deps/syslog-syscall.Tpo .deps/syslog-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog-syscall syslog-syscall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timerfd-syscall.o -MD -MP -MF .deps/timerfd-syscall.Tpo -c -o timerfd-syscall.o timerfd-syscall.c
+-mv -f .deps/timerfd-syscall.Tpo .deps/timerfd-syscall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timerfd-syscall timerfd-syscall.o -lrt 
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[5]: Warning: File `.deps/timerfd-syscall.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests/linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/memcheck'
+-Making check in cachegrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-mkdir -p ../.in_place; \
+-for f in cachegrind-ppc64-linux cachegrind-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../cachegrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../cachegrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make  chdir clreq dlclose myprint.so
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT chdir.o -MD -MP -MF .deps/chdir.Tpo -c -o chdir.o chdir.c
+-mv -f .deps/chdir.Tpo .deps/chdir.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o chdir chdir.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
+-mv -f .deps/clreq.Tpo .deps/clreq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT dlclose.o -MD -MP -MF .deps/dlclose.Tpo -c -o dlclose.o dlclose.c
+-mv -f .deps/dlclose.Tpo .deps/dlclose.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o dlclose dlclose.o -ldl 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT myprint_so-myprint.o -MD -MP -MF .deps/myprint_so-myprint.Tpo -c -o myprint_so-myprint.o `test -f 'myprint.c' || echo './'`myprint.c
+-mv -f .deps/myprint_so-myprint.Tpo .deps/myprint_so-myprint.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Winline -Wall -Wshadow -g -m64 -shared -fPIC  -o myprint.so myprint_so-myprint.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[5]: Warning: File `.deps/myprint_so-myprint.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/cachegrind'
+-Making check in callgrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-mkdir -p ../.in_place; \
+-for f in callgrind-ppc64-linux callgrind-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../callgrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../callgrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make  clreq simwork threads
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clreq.o -MD -MP -MF .deps/clreq.Tpo -c -o clreq.o clreq.c
+-mv -f .deps/clreq.Tpo .deps/clreq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clreq clreq.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT simwork.o -MD -MP -MF .deps/simwork.Tpo -c -o simwork.o simwork.c
+-mv -f .deps/simwork.Tpo .deps/simwork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o simwork simwork.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threads.o -MD -MP -MF .deps/threads.Tpo -c -o threads.o threads.c
+-mv -f .deps/threads.Tpo .deps/threads.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threads threads.o -lpthread 
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[5]: Warning: File `.deps/threads.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/callgrind'
+-Making check in massif
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-mkdir -p ../.in_place; \
+-for f in massif-ppc64-linux massif-ppc32-linux vgpreload_massif-ppc64-linux.so vgpreload_massif-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../massif/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../massif/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make  alloc-fns basic big-alloc culling1 culling2 custom_alloc deep ignored ignoring insig long-names long-time malloc_usable new-cpp null one overloaded-new pages_as_heap peak realloc thresholds zero
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT alloc-fns.o -MD -MP -MF .deps/alloc-fns.Tpo -c -o alloc-fns.o alloc-fns.c
+-mv -f .deps/alloc-fns.Tpo .deps/alloc-fns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o alloc-fns alloc-fns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT basic.o -MD -MP -MF .deps/basic.Tpo -c -o basic.o basic.c
+-mv -f .deps/basic.Tpo .deps/basic.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o basic basic.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT big-alloc.o -MD -MP -MF .deps/big-alloc.Tpo -c -o big-alloc.o big-alloc.c
+-mv -f .deps/big-alloc.Tpo .deps/big-alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o big-alloc big-alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling1.o -MD -MP -MF .deps/culling1.Tpo -c -o culling1.o culling1.c
+-mv -f .deps/culling1.Tpo .deps/culling1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling1 culling1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT culling2.o -MD -MP -MF .deps/culling2.Tpo -c -o culling2.o culling2.c
+-mv -f .deps/culling2.Tpo .deps/culling2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o culling2 culling2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT deep.o -MD -MP -MF .deps/deep.Tpo -c -o deep.o deep.c
+-mv -f .deps/deep.Tpo .deps/deep.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o deep deep.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignored.o -MD -MP -MF .deps/ignored.Tpo -c -o ignored.o ignored.c
+-mv -f .deps/ignored.Tpo .deps/ignored.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignored ignored.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ignoring.o -MD -MP -MF .deps/ignoring.Tpo -c -o ignoring.o ignoring.c
+-mv -f .deps/ignoring.Tpo .deps/ignoring.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ignoring ignoring.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT insig.o -MD -MP -MF .deps/insig.Tpo -c -o insig.o insig.c
+-mv -f .deps/insig.Tpo .deps/insig.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o insig insig.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-names.o -MD -MP -MF .deps/long-names.Tpo -c -o long-names.o long-names.c
+-mv -f .deps/long-names.Tpo .deps/long-names.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-names long-names.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT long-time.o -MD -MP -MF .deps/long-time.Tpo -c -o long-time.o long-time.c
+-mv -f .deps/long-time.Tpo .deps/long-time.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o long-time long-time.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT malloc_usable.o -MD -MP -MF .deps/malloc_usable.Tpo -c -o malloc_usable.o malloc_usable.c
+-mv -f .deps/malloc_usable.Tpo .deps/malloc_usable.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o malloc_usable malloc_usable.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new-cpp.o -MD -MP -MF .deps/new-cpp.Tpo -c -o new-cpp.o new-cpp.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new-cpp.Tpo .deps/new-cpp.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new-cpp new-cpp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT null.o -MD -MP -MF .deps/null.Tpo -c -o null.o null.c
+-mv -f .deps/null.Tpo .deps/null.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o null null.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT one.o -MD -MP -MF .deps/one.Tpo -c -o one.o one.c
+-mv -f .deps/one.Tpo .deps/one.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o one one.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT overloaded-new.o -MD -MP -MF .deps/overloaded-new.Tpo -c -o overloaded-new.o overloaded-new.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/overloaded-new.Tpo .deps/overloaded-new.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o overloaded-new overloaded-new.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pages_as_heap.o -MD -MP -MF .deps/pages_as_heap.Tpo -c -o pages_as_heap.o pages_as_heap.c
+-mv -f .deps/pages_as_heap.Tpo .deps/pages_as_heap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pages_as_heap pages_as_heap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT peak.o -MD -MP -MF .deps/peak.Tpo -c -o peak.o peak.c
+-mv -f .deps/peak.Tpo .deps/peak.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o peak peak.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT realloc.o -MD -MP -MF .deps/realloc.Tpo -c -o realloc.o realloc.c
+-mv -f .deps/realloc.Tpo .deps/realloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o realloc realloc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thresholds.o -MD -MP -MF .deps/thresholds.Tpo -c -o thresholds.o thresholds.c
+-mv -f .deps/thresholds.Tpo .deps/thresholds.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thresholds thresholds.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT zero.o -MD -MP -MF .deps/zero.Tpo -c -o zero.o zero.c
+-mv -f .deps/zero.Tpo .deps/zero.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o zero zero.o  
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[4]: Warning: File `.deps/zero.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/massif'
+-Making check in lackey
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-mkdir -p ../.in_place; \
+-for f in lackey-ppc64-linux lackey-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../lackey/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../lackey/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
+-make[3]: Nothing to be done for `check'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/lackey'
+-Making check in none
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-mkdir -p ../.in_place; \
+-for f in none-ppc64-linux none-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../none/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../none/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make  ansi args async-sigs bitfield1 bug129866 closeall coolo_strlen discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip mmap_fcntl_bug munmap_exe map_unaligned map_unmap mq nestedfns pending procfs-cmdline-exe pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_stackalign rcrl readline1 require-text-symbol res_search resolv rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts stackgrowth sigstackgrowth syscall-restart1 syscall-restart2 syslog system threaded-fork threadederrno timestamp tls tls.so tls2.so valgrind_cpp_test vgprintf coolo_sigaction gxx304 process_vm_readv_writev manythreads thread-exits rlimit64_nofile 
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ansi-ansi.o -MD -MP -MF .deps/ansi-ansi.Tpo -c -o ansi-ansi.o `test -f 'ansi.c' || echo './'`ansi.c
+-mv -f .deps/ansi-ansi.Tpo .deps/ansi-ansi.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -ansi -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ansi ansi-ansi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT args.o -MD -MP -MF .deps/args.Tpo -c -o args.o args.c
+-mv -f .deps/args.Tpo .deps/args.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o args args.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT async-sigs.o -MD -MP -MF .deps/async-sigs.Tpo -c -o async-sigs.o async-sigs.c
+-mv -f .deps/async-sigs.Tpo .deps/async-sigs.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o async-sigs async-sigs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bitfield1.o -MD -MP -MF .deps/bitfield1.Tpo -c -o bitfield1.o bitfield1.c
+-mv -f .deps/bitfield1.Tpo .deps/bitfield1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bitfield1 bitfield1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129866.o -MD -MP -MF .deps/bug129866.Tpo -c -o bug129866.o bug129866.c
+-mv -f .deps/bug129866.Tpo .deps/bug129866.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129866 bug129866.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT closeall.o -MD -MP -MF .deps/closeall.Tpo -c -o closeall.o closeall.c
+-mv -f .deps/closeall.Tpo .deps/closeall.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o closeall closeall.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_strlen.o -MD -MP -MF .deps/coolo_strlen.Tpo -c -o coolo_strlen.o coolo_strlen.c
+-mv -f .deps/coolo_strlen.Tpo .deps/coolo_strlen.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_strlen coolo_strlen.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT discard.o -MD -MP -MF .deps/discard.Tpo -c -o discard.o discard.c
+-mv -f .deps/discard.Tpo .deps/discard.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o discard discard.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT exec-sigmask.o -MD -MP -MF .deps/exec-sigmask.Tpo -c -o exec-sigmask.o exec-sigmask.c
+-mv -f .deps/exec-sigmask.Tpo .deps/exec-sigmask.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o exec-sigmask exec-sigmask.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT execve-execve.o -MD -MP -MF .deps/execve-execve.Tpo -c -o execve-execve.o `test -f 'execve.c' || echo './'`execve.c
+-mv -f .deps/execve-execve.Tpo .deps/execve-execve.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o execve execve-execve.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT faultstatus.o -MD -MP -MF .deps/faultstatus.Tpo -c -o faultstatus.o faultstatus.c
+-mv -f .deps/faultstatus.Tpo .deps/faultstatus.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o faultstatus faultstatus.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fcntl_setown.o -MD -MP -MF .deps/fcntl_setown.Tpo -c -o fcntl_setown.o fcntl_setown.c
+-mv -f .deps/fcntl_setown.Tpo .deps/fcntl_setown.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fcntl_setown fcntl_setown.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_cmsg.o -MD -MP -MF .deps/fdleak_cmsg.Tpo -c -o fdleak_cmsg.o fdleak_cmsg.c
+-mv -f .deps/fdleak_cmsg.Tpo .deps/fdleak_cmsg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_cmsg fdleak_cmsg.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_creat.o -MD -MP -MF .deps/fdleak_creat.Tpo -c -o fdleak_creat.o fdleak_creat.c
+-mv -f .deps/fdleak_creat.Tpo .deps/fdleak_creat.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_creat fdleak_creat.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup.o -MD -MP -MF .deps/fdleak_dup.Tpo -c -o fdleak_dup.o fdleak_dup.c
+-mv -f .deps/fdleak_dup.Tpo .deps/fdleak_dup.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup fdleak_dup.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_dup2.o -MD -MP -MF .deps/fdleak_dup2.Tpo -c -o fdleak_dup2.o fdleak_dup2.c
+-mv -f .deps/fdleak_dup2.Tpo .deps/fdleak_dup2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_dup2 fdleak_dup2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_fcntl.o -MD -MP -MF .deps/fdleak_fcntl.Tpo -c -o fdleak_fcntl.o fdleak_fcntl.c
+-mv -f .deps/fdleak_fcntl.Tpo .deps/fdleak_fcntl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_fcntl fdleak_fcntl.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_ipv4.o -MD -MP -MF .deps/fdleak_ipv4.Tpo -c -o fdleak_ipv4.o fdleak_ipv4.c
+-mv -f .deps/fdleak_ipv4.Tpo .deps/fdleak_ipv4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_ipv4 fdleak_ipv4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_open.o -MD -MP -MF .deps/fdleak_open.Tpo -c -o fdleak_open.o fdleak_open.c
+-mv -f .deps/fdleak_open.Tpo .deps/fdleak_open.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_open fdleak_open.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_pipe.o -MD -MP -MF .deps/fdleak_pipe.Tpo -c -o fdleak_pipe.o fdleak_pipe.c
+-mv -f .deps/fdleak_pipe.Tpo .deps/fdleak_pipe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_pipe fdleak_pipe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fdleak_socketpair.o -MD -MP -MF .deps/fdleak_socketpair.Tpo -c -o fdleak_socketpair.o fdleak_socketpair.c
+-mv -f .deps/fdleak_socketpair.Tpo .deps/fdleak_socketpair.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fdleak_socketpair fdleak_socketpair.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT floored.o -MD -MP -MF .deps/floored.Tpo -c -o floored.o floored.c
+-mv -f .deps/floored.Tpo .deps/floored.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o floored floored.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork.o -MD -MP -MF .deps/fork.Tpo -c -o fork.o fork.c
+-mv -f .deps/fork.Tpo .deps/fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork fork.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fucomip.o -MD -MP -MF .deps/fucomip.Tpo -c -o fucomip.o fucomip.c
+-mv -f .deps/fucomip.Tpo .deps/fucomip.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fucomip fucomip.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mmap_fcntl_bug.o -MD -MP -MF .deps/mmap_fcntl_bug.Tpo -c -o mmap_fcntl_bug.o mmap_fcntl_bug.c
+-mv -f .deps/mmap_fcntl_bug.Tpo .deps/mmap_fcntl_bug.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mmap_fcntl_bug mmap_fcntl_bug.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT munmap_exe.o -MD -MP -MF .deps/munmap_exe.Tpo -c -o munmap_exe.o munmap_exe.c
+-mv -f .deps/munmap_exe.Tpo .deps/munmap_exe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o munmap_exe munmap_exe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unaligned.o -MD -MP -MF .deps/map_unaligned.Tpo -c -o map_unaligned.o map_unaligned.c
+-mv -f .deps/map_unaligned.Tpo .deps/map_unaligned.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unaligned map_unaligned.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT map_unmap.o -MD -MP -MF .deps/map_unmap.Tpo -c -o map_unmap.o map_unmap.c
+-mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o map_unmap map_unmap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c
+-mv -f .deps/mq.Tpo .deps/mq.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mq mq.o -lrt 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c
+-mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o nestedfns nestedfns-nestedfns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c
+-mv -f .deps/pending.Tpo .deps/pending.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pending pending.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c
+-mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o procfs-cmdline-exe procfs-cmdline-exe.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c
+-mv -f .deps/pth_atfork1.Tpo .deps/pth_atfork1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_atfork1 pth_atfork1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_blockedsig.o -MD -MP -MF .deps/pth_blockedsig.Tpo -c -o pth_blockedsig.o pth_blockedsig.c
+-mv -f .deps/pth_blockedsig.Tpo .deps/pth_blockedsig.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_blockedsig pth_blockedsig.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel1-pth_cancel1.o -MD -MP -MF .deps/pth_cancel1-pth_cancel1.Tpo -c -o pth_cancel1-pth_cancel1.o `test -f 'pth_cancel1.c' || echo './'`pth_cancel1.c
+-mv -f .deps/pth_cancel1-pth_cancel1.Tpo .deps/pth_cancel1-pth_cancel1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-shadow -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel1 pth_cancel1-pth_cancel1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel2.o -MD -MP -MF .deps/pth_cancel2.Tpo -c -o pth_cancel2.o pth_cancel2.c
+-mv -f .deps/pth_cancel2.Tpo .deps/pth_cancel2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel2 pth_cancel2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cvsimple.o -MD -MP -MF .deps/pth_cvsimple.Tpo -c -o pth_cvsimple.o pth_cvsimple.c
+-mv -f .deps/pth_cvsimple.Tpo .deps/pth_cvsimple.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cvsimple pth_cvsimple.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_empty.o -MD -MP -MF .deps/pth_empty.Tpo -c -o pth_empty.o pth_empty.c
+-mv -f .deps/pth_empty.Tpo .deps/pth_empty.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_empty pth_empty.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit.o -MD -MP -MF .deps/pth_exit.Tpo -c -o pth_exit.o pth_exit.c
+-mv -f .deps/pth_exit.Tpo .deps/pth_exit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit pth_exit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_exit2.o -MD -MP -MF .deps/pth_exit2.Tpo -c -o pth_exit2.o pth_exit2.c
+-mv -f .deps/pth_exit2.Tpo .deps/pth_exit2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_exit2 pth_exit2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutexspeed.o -MD -MP -MF .deps/pth_mutexspeed.Tpo -c -o pth_mutexspeed.o pth_mutexspeed.c
+-mv -f .deps/pth_mutexspeed.Tpo .deps/pth_mutexspeed.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutexspeed pth_mutexspeed.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_once.o -MD -MP -MF .deps/pth_once.Tpo -c -o pth_once.o pth_once.c
+-mv -f .deps/pth_once.Tpo .deps/pth_once.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_once pth_once.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_rwlock.o -MD -MP -MF .deps/pth_rwlock.Tpo -c -o pth_rwlock.o pth_rwlock.c
+-mv -f .deps/pth_rwlock.Tpo .deps/pth_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_rwlock pth_rwlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_stackalign.o -MD -MP -MF .deps/pth_stackalign.Tpo -c -o pth_stackalign.o pth_stackalign.c
+-mv -f .deps/pth_stackalign.Tpo .deps/pth_stackalign.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_stackalign pth_stackalign.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rcrl.o -MD -MP -MF .deps/rcrl.Tpo -c -o rcrl.o rcrl.c
+-mv -f .deps/rcrl.Tpo .deps/rcrl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rcrl rcrl.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT readline1.o -MD -MP -MF .deps/readline1.Tpo -c -o readline1.o readline1.c
+-mv -f .deps/readline1.Tpo .deps/readline1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o readline1 readline1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT require-text-symbol.o -MD -MP -MF .deps/require-text-symbol.Tpo -c -o require-text-symbol.o require-text-symbol.c
+-mv -f .deps/require-text-symbol.Tpo .deps/require-text-symbol.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o require-text-symbol require-text-symbol.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT res_search.o -MD -MP -MF .deps/res_search.Tpo -c -o res_search.o res_search.c
+-mv -f .deps/res_search.Tpo .deps/res_search.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o res_search res_search.o -lresolv -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT resolv.o -MD -MP -MF .deps/resolv.Tpo -c -o resolv.o resolv.c
+-mv -f .deps/resolv.Tpo .deps/resolv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o resolv resolv.o -lresolv -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c
+-mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit_nofile rlimit_nofile.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c
+-mv -f .deps/selfrun.Tpo .deps/selfrun.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o selfrun selfrun.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c
+-mv -f .deps/sem.Tpo .deps/sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem sem.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c
+-mv -f .deps/semlimit.Tpo .deps/semlimit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o semlimit semlimit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c
+-mv -f .deps/sha1_test.Tpo .deps/sha1_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sha1_test sha1_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shortpush.o -MD -MP -MF .deps/shortpush.Tpo -c -o shortpush.o shortpush.c
+-mv -f .deps/shortpush.Tpo .deps/shortpush.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shortpush shortpush.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT shorts.o -MD -MP -MF .deps/shorts.Tpo -c -o shorts.o shorts.c
+-mv -f .deps/shorts.Tpo .deps/shorts.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o shorts shorts.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackgrowth.o -MD -MP -MF .deps/stackgrowth.Tpo -c -o stackgrowth.o stackgrowth.c
+-mv -f .deps/stackgrowth.Tpo .deps/stackgrowth.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackgrowth stackgrowth.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigstackgrowth.o -MD -MP -MF .deps/sigstackgrowth.Tpo -c -o sigstackgrowth.o sigstackgrowth.c
+-mv -f .deps/sigstackgrowth.Tpo .deps/sigstackgrowth.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigstackgrowth sigstackgrowth.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart1.o -MD -MP -MF .deps/syscall-restart1.Tpo -c -o syscall-restart1.o syscall-restart1.c
+-mv -f .deps/syscall-restart1.Tpo .deps/syscall-restart1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart1 syscall-restart1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syscall-restart2.o -MD -MP -MF .deps/syscall-restart2.Tpo -c -o syscall-restart2.o syscall-restart2.c
+-mv -f .deps/syscall-restart2.Tpo .deps/syscall-restart2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syscall-restart2 syscall-restart2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT syslog.o -MD -MP -MF .deps/syslog.Tpo -c -o syslog.o syslog.c
+-mv -f .deps/syslog.Tpo .deps/syslog.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o syslog syslog.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT system.o -MD -MP -MF .deps/system.Tpo -c -o system.o system.c
+-mv -f .deps/system.Tpo .deps/system.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o system system.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
+-mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threadederrno.o -MD -MP -MF .deps/threadederrno.Tpo -c -o threadederrno.o threadederrno.c
+-mv -f .deps/threadederrno.Tpo .deps/threadederrno.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threadederrno threadederrno.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT timestamp.o -MD -MP -MF .deps/timestamp.Tpo -c -o timestamp.o timestamp.c
+-mv -f .deps/timestamp.Tpo .deps/timestamp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o timestamp timestamp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls.o -MD -MP -MF .deps/tls.Tpo -c -o tls.o tls.c
+-mv -f .deps/tls.Tpo .deps/tls.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2.o -MD -MP -MF .deps/tls2.Tpo -c -o tls2.o tls2.c
+-mv -f .deps/tls2.Tpo .deps/tls2.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls_so-tls_so.o -MD -MP -MF .deps/tls_so-tls_so.Tpo -c -o tls_so-tls_so.o `test -f 'tls_so.c' || echo './'`tls_so.c
+-mv -f .deps/tls_so-tls_so.Tpo .deps/tls_so-tls_so.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tls2_so.o -MD -MP -MF .deps/tls2_so.Tpo -c -o tls2_so.o tls2_so.c
+-mv -f .deps/tls2_so.Tpo .deps/tls2_so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -shared  -o tls2.so tls2_so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests -shared -fPIC  -o tls.so tls_so-tls_so.o tls2.so 
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -Wl,-rpath,../../none/tests  -o tls tls.o tls2.o tls.so tls2.so -lpthread 
+-make[5]: `tls.so' is up to date.
+-make[5]: `tls2.so' is up to date.
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT valgrind_cpp_test.o -MD -MP -MF .deps/valgrind_cpp_test.Tpo -c -o valgrind_cpp_test.o valgrind_cpp_test.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/valgrind_cpp_test.Tpo .deps/valgrind_cpp_test.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o valgrind_cpp_test valgrind_cpp_test.o -lstdc++ 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT vgprintf.o -MD -MP -MF .deps/vgprintf.Tpo -c -o vgprintf.o vgprintf.c
+-mv -f .deps/vgprintf.Tpo .deps/vgprintf.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o vgprintf vgprintf.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT coolo_sigaction.o -MD -MP -MF .deps/coolo_sigaction.Tpo -c -o coolo_sigaction.o coolo_sigaction.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/coolo_sigaction.Tpo .deps/coolo_sigaction.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o coolo_sigaction coolo_sigaction.o  
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT gxx304.o -MD -MP -MF .deps/gxx304.Tpo -c -o gxx304.o gxx304.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/gxx304.Tpo .deps/gxx304.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o gxx304 gxx304.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT process_vm_readv_writev.o -MD -MP -MF .deps/process_vm_readv_writev.Tpo -c -o process_vm_readv_writev.o process_vm_readv_writev.c
+-mv -f .deps/process_vm_readv_writev.Tpo .deps/process_vm_readv_writev.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o process_vm_readv_writev process_vm_readv_writev.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT manythreads.o -MD -MP -MF .deps/manythreads.Tpo -c -o manythreads.o manythreads.c
+-mv -f .deps/manythreads.Tpo .deps/manythreads.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o manythreads manythreads.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread-exits.o -MD -MP -MF .deps/thread-exits.Tpo -c -o thread-exits.o thread-exits.c
+-mv -f .deps/thread-exits.Tpo .deps/thread-exits.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread-exits thread-exits.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rlimit64_nofile.o -MD -MP -MF .deps/rlimit64_nofile.Tpo -c -o rlimit64_nofile.o rlimit64_nofile.c
+-mv -f .deps/rlimit64_nofile.Tpo .deps/rlimit64_nofile.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rlimit64_nofile rlimit64_nofile.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[5]: Warning: File `.deps/vgprintf.Po' has modification time 89 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-Making check in ppc32
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make  allexec bug129390-ppc32 bug139050-ppc32 ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
+-mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug129390-ppc32.o -MD -MP -MF .deps/bug129390-ppc32.Tpo -c -o bug129390-ppc32.o bug129390-ppc32.c
+-mv -f .deps/bug129390-ppc32.Tpo .deps/bug129390-ppc32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug129390-ppc32 bug129390-ppc32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug139050-ppc32.o -MD -MP -MF .deps/bug139050-ppc32.Tpo -c -o bug139050-ppc32.o bug139050-ppc32.c
+-mv -f .deps/bug139050-ppc32.Tpo .deps/bug139050-ppc32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug139050-ppc32 bug139050-ppc32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ldstrev.o -MD -MP -MF .deps/ldstrev.Tpo -c -o ldstrev.o ldstrev.c
+-mv -f .deps/ldstrev.Tpo .deps/ldstrev.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ldstrev ldstrev.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
+-mv -f .deps/lsw.Tpo .deps/lsw.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
+-mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -maltivec -m32 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mftocrf.o -MD -MP -MF .deps/mftocrf.Tpo -c -o mftocrf.o mftocrf.c
+-mv -f .deps/mftocrf.Tpo .deps/mftocrf.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mftocrf mftocrf.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mcrfs.o -MD -MP -MF .deps/mcrfs.Tpo -c -o mcrfs.o mcrfs.c
+-mv -f .deps/mcrfs.Tpo .deps/mcrfs.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mcrfs mcrfs.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
+-mv -f .deps/round.Tpo .deps/round.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_fx.o -MD -MP -MF .deps/test_fx.Tpo -c -o test_fx.o test_fx.c
+-mv -f .deps/test_fx.Tpo .deps/test_fx.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_fx test_fx.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_gx.o -MD -MP -MF .deps/test_gx.Tpo -c -o test_gx.o test_gx.c
+-mv -f .deps/test_gx.Tpo .deps/test_gx.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_gx test_gx.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT testVMX-testVMX.o -MD -MP -MF .deps/testVMX-testVMX.Tpo -c -o testVMX-testVMX.o `test -f 'testVMX.c' || echo './'`testVMX.c
+-mv -f .deps/testVMX-testVMX.Tpo .deps/testVMX-testVMX.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o testVMX testVMX-testVMX.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi.o -MD -MP -MF .deps/twi.Tpo -c -o twi.o twi.c
+-mv -f .deps/twi.Tpo .deps/twi.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi twi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw.o -MD -MP -MF .deps/tw.Tpo -c -o tw.o tw.c
+-mv -f .deps/tw.Tpo .deps/tw.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw tw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT xlc_dbl_u32.o -MD -MP -MF .deps/xlc_dbl_u32.Tpo -c -o xlc_dbl_u32.o xlc_dbl_u32.c
+-mv -f .deps/xlc_dbl_u32.Tpo .deps/xlc_dbl_u32.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o xlc_dbl_u32 xlc_dbl_u32.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power5+_round.o -MD -MP -MF .deps/power5+_round.Tpo -c -o power5+_round.o power5+_round.c
+-mv -f .deps/power5+_round.Tpo .deps/power5+_round.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power5+_round power5+_round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
+-mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
+-mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
+-mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
+-mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m32 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
+-mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
+-mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
+-mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
+-mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
+-mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
+-gcc -Winline -Wall -Wshadow -g -m32 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m32 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[5]: Warning: File `.deps/xlc_dbl_u32.Po' has modification time 86 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc32'
+-Making check in ppc64
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make  allexec jm-insns lsw round std_reg_imm twi_tdi tw_td power6_bcmp power6_mf_gpr test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT allexec-allexec.o -MD -MP -MF .deps/allexec-allexec.Tpo -c -o allexec-allexec.o `test -f 'allexec.c' || echo './'`allexec.c
+-mv -f .deps/allexec-allexec.Tpo .deps/allexec-allexec.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-nonnull -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o allexec allexec-allexec.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c
+-mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -maltivec -m64 -DHAS_ALTIVEC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o jm-insns jm_insns-jm-insns.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT lsw.o -MD -MP -MF .deps/lsw.Tpo -c -o lsw.o lsw.c
+-mv -f .deps/lsw.Tpo .deps/lsw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o lsw lsw.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT round.o -MD -MP -MF .deps/round.Tpo -c -o round.o round.c
+-mv -f .deps/round.Tpo .deps/round.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o round round.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_reg_imm.o -MD -MP -MF .deps/std_reg_imm.Tpo -c -o std_reg_imm.o std_reg_imm.c
+-mv -f .deps/std_reg_imm.Tpo .deps/std_reg_imm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_reg_imm std_reg_imm.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT twi_tdi.o -MD -MP -MF .deps/twi_tdi.Tpo -c -o twi_tdi.o twi_tdi.c
+-mv -f .deps/twi_tdi.Tpo .deps/twi_tdi.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o twi_tdi twi_tdi.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tw_td.o -MD -MP -MF .deps/tw_td.Tpo -c -o tw_td.o tw_td.c
+-mv -f .deps/tw_td.Tpo .deps/tw_td.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tw_td tw_td.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_bcmp.o -MD -MP -MF .deps/power6_bcmp.Tpo -c -o power6_bcmp.o power6_bcmp.c
+-mv -f .deps/power6_bcmp.Tpo .deps/power6_bcmp.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_bcmp power6_bcmp.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT power6_mf_gpr.o -MD -MP -MF .deps/power6_mf_gpr.Tpo -c -o power6_mf_gpr.o power6_mf_gpr.c
+-mv -f .deps/power6_mf_gpr.Tpo .deps/power6_mf_gpr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o power6_mf_gpr power6_mf_gpr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part1-test_isa_2_06_part1.o -MD -MP -MF .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo -c -o test_isa_2_06_part1-test_isa_2_06_part1.o `test -f 'test_isa_2_06_part1.c' || echo './'`test_isa_2_06_part1.c
+-mv -f .deps/test_isa_2_06_part1-test_isa_2_06_part1.Tpo .deps/test_isa_2_06_part1-test_isa_2_06_part1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part1 test_isa_2_06_part1-test_isa_2_06_part1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part2-test_isa_2_06_part2.o -MD -MP -MF .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo -c -o test_isa_2_06_part2-test_isa_2_06_part2.o `test -f 'test_isa_2_06_part2.c' || echo './'`test_isa_2_06_part2.c
+-mv -f .deps/test_isa_2_06_part2-test_isa_2_06_part2.Tpo .deps/test_isa_2_06_part2-test_isa_2_06_part2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part2 test_isa_2_06_part2-test_isa_2_06_part2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_isa_2_06_part3-test_isa_2_06_part3.o -MD -MP -MF .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo -c -o test_isa_2_06_part3-test_isa_2_06_part3.o `test -f 'test_isa_2_06_part3.c' || echo './'`test_isa_2_06_part3.c
+-mv -f .deps/test_isa_2_06_part3-test_isa_2_06_part3.Tpo .deps/test_isa_2_06_part3-test_isa_2_06_part3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_VSX -m64 -DHAS_ALTIVEC -mvsx -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_isa_2_06_part3 test_isa_2_06_part3-test_isa_2_06_part3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp1-test_dfp1.o -MD -MP -MF .deps/test_dfp1-test_dfp1.Tpo -c -o test_dfp1-test_dfp1.o `test -f 'test_dfp1.c' || echo './'`test_dfp1.c
+-mv -f .deps/test_dfp1-test_dfp1.Tpo .deps/test_dfp1-test_dfp1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp1 test_dfp1-test_dfp1.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp2-test_dfp2.o -MD -MP -MF .deps/test_dfp2-test_dfp2.Tpo -c -o test_dfp2-test_dfp2.o `test -f 'test_dfp2.c' || echo './'`test_dfp2.c
+-mv -f .deps/test_dfp2-test_dfp2.Tpo .deps/test_dfp2-test_dfp2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp2 test_dfp2-test_dfp2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp3-test_dfp3.o -MD -MP -MF .deps/test_dfp3-test_dfp3.Tpo -c -o test_dfp3-test_dfp3.o `test -f 'test_dfp3.c' || echo './'`test_dfp3.c
+-mv -f .deps/test_dfp3-test_dfp3.Tpo .deps/test_dfp3-test_dfp3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp3 test_dfp3-test_dfp3.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp4-test_dfp4.o -MD -MP -MF .deps/test_dfp4-test_dfp4.Tpo -c -o test_dfp4-test_dfp4.o `test -f 'test_dfp4.c' || echo './'`test_dfp4.c
+-mv -f .deps/test_dfp4-test_dfp4.Tpo .deps/test_dfp4-test_dfp4.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp4 test_dfp4-test_dfp4.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT test_dfp5-test_dfp5.o -MD -MP -MF .deps/test_dfp5-test_dfp5.Tpo -c -o test_dfp5-test_dfp5.o `test -f 'test_dfp5.c' || echo './'`test_dfp5.c
+-mv -f .deps/test_dfp5-test_dfp5.Tpo .deps/test_dfp5-test_dfp5.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Winline -Wall -O -lm -g -mregnames -DHAS_DFP -m64 -mhard-dfp -mcpu=power6 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o test_dfp5 test_dfp5-test_dfp5.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[5]: Warning: File `.deps/twi_tdi.Po' has modification time 88 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/ppc64'
+-Making check in linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make  blockfault mremap mremap2 mremap3
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT blockfault.o -MD -MP -MF .deps/blockfault.Tpo -c -o blockfault.o blockfault.c
+-mv -f .deps/blockfault.Tpo .deps/blockfault.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o blockfault blockfault.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap.o -MD -MP -MF .deps/mremap.Tpo -c -o mremap.o mremap.c
+-mv -f .deps/mremap.Tpo .deps/mremap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap mremap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap2.o -MD -MP -MF .deps/mremap2.Tpo -c -o mremap2.o mremap2.c
+-mv -f .deps/mremap2.Tpo .deps/mremap2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap2 mremap2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT mremap3.o -MD -MP -MF .deps/mremap3.Tpo -c -o mremap3.o mremap3.c
+-mv -f .deps/mremap3.Tpo .deps/mremap3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o mremap3 mremap3.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[5]: Warning: File `.deps/mremap3.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests/linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/none'
+-Making check in helgrind
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-mkdir -p ../.in_place; \
+-for f in helgrind-ppc64-linux helgrind-ppc32-linux vgpreload_helgrind-ppc64-linux.so vgpreload_helgrind-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../helgrind/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../helgrind/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make  annotate_hbefore cond_timedwait_invalid free_is_write hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared locked_vs_unlocked1 locked_vs_unlocked2 locked_vs_unlocked3 pth_destroy_cond t2t tc01_simple_race tc02_simple_tls tc03_re_excl tc04_free_lock tc05_simple_race tc06_two_races tc07_hbl1 tc08_hbl2 tc09_bad_unlock tc10_rec_lock tc11_XCHG tc12_rwl_trivial tc13_laog1 tc14_laog_dinphils tc15_laog_lockdel tc16_byterace tc17_sembar tc18_semabuse tc19_shadowmem tc21_pthonce tc23_bogus_condwait tc24_nonzero_sem tc22_exit_w_lock bar_bad bar_trivial tc20_verifywrap annotate_rwlock
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hbefore-annotate_hbefore.o -MD -MP -MF .deps/annotate_hbefore-annotate_hbefore.Tpo -c -o annotate_hbefore-annotate_hbefore.o `test -f 'annotate_hbefore.c' || echo './'`annotate_hbefore.c
+-mv -f .deps/annotate_hbefore-annotate_hbefore.Tpo .deps/annotate_hbefore-annotate_hbefore.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hbefore annotate_hbefore-annotate_hbefore.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT cond_timedwait_invalid.o -MD -MP -MF .deps/cond_timedwait_invalid.Tpo -c -o cond_timedwait_invalid.o cond_timedwait_invalid.c
+-mv -f .deps/cond_timedwait_invalid.Tpo .deps/cond_timedwait_invalid.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o cond_timedwait_invalid cond_timedwait_invalid.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
+-mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg01_all_ok.o -MD -MP -MF .deps/hg01_all_ok.Tpo -c -o hg01_all_ok.o hg01_all_ok.c
+-mv -f .deps/hg01_all_ok.Tpo .deps/hg01_all_ok.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg01_all_ok hg01_all_ok.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg02_deadlock.o -MD -MP -MF .deps/hg02_deadlock.Tpo -c -o hg02_deadlock.o hg02_deadlock.c
+-mv -f .deps/hg02_deadlock.Tpo .deps/hg02_deadlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg02_deadlock hg02_deadlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg03_inherit.o -MD -MP -MF .deps/hg03_inherit.Tpo -c -o hg03_inherit.o hg03_inherit.c
+-mv -f .deps/hg03_inherit.Tpo .deps/hg03_inherit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg03_inherit hg03_inherit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg04_race.o -MD -MP -MF .deps/hg04_race.Tpo -c -o hg04_race.o hg04_race.c
+-mv -f .deps/hg04_race.Tpo .deps/hg04_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg04_race hg04_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg05_race2.o -MD -MP -MF .deps/hg05_race2.Tpo -c -o hg05_race2.o hg05_race2.c
+-mv -f .deps/hg05_race2.Tpo .deps/hg05_race2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg05_race2 hg05_race2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hg06_readshared.o -MD -MP -MF .deps/hg06_readshared.Tpo -c -o hg06_readshared.o hg06_readshared.c
+-mv -f .deps/hg06_readshared.Tpo .deps/hg06_readshared.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hg06_readshared hg06_readshared.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked1.o -MD -MP -MF .deps/locked_vs_unlocked1.Tpo -c -o locked_vs_unlocked1.o locked_vs_unlocked1.c
+-mv -f .deps/locked_vs_unlocked1.Tpo .deps/locked_vs_unlocked1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked1 locked_vs_unlocked1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked2.o -MD -MP -MF .deps/locked_vs_unlocked2.Tpo -c -o locked_vs_unlocked2.o locked_vs_unlocked2.c
+-mv -f .deps/locked_vs_unlocked2.Tpo .deps/locked_vs_unlocked2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked2 locked_vs_unlocked2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT locked_vs_unlocked3.o -MD -MP -MF .deps/locked_vs_unlocked3.Tpo -c -o locked_vs_unlocked3.o locked_vs_unlocked3.c
+-mv -f .deps/locked_vs_unlocked3.Tpo .deps/locked_vs_unlocked3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o locked_vs_unlocked3 locked_vs_unlocked3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_destroy_cond.o -MD -MP -MF .deps/pth_destroy_cond.Tpo -c -o pth_destroy_cond.o pth_destroy_cond.c
+-mv -f .deps/pth_destroy_cond.Tpo .deps/pth_destroy_cond.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_destroy_cond pth_destroy_cond.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t2t.o -MD -MP -MF .deps/t2t.Tpo -c -o t2t.o t2t.c
+-mv -f .deps/t2t.Tpo .deps/t2t.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t2t t2t.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc01_simple_race.o -MD -MP -MF .deps/tc01_simple_race.Tpo -c -o tc01_simple_race.o tc01_simple_race.c
+-mv -f .deps/tc01_simple_race.Tpo .deps/tc01_simple_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc01_simple_race tc01_simple_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc02_simple_tls.o -MD -MP -MF .deps/tc02_simple_tls.Tpo -c -o tc02_simple_tls.o tc02_simple_tls.c
+-mv -f .deps/tc02_simple_tls.Tpo .deps/tc02_simple_tls.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc02_simple_tls tc02_simple_tls.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc03_re_excl.o -MD -MP -MF .deps/tc03_re_excl.Tpo -c -o tc03_re_excl.o tc03_re_excl.c
+-mv -f .deps/tc03_re_excl.Tpo .deps/tc03_re_excl.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc03_re_excl tc03_re_excl.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc04_free_lock.o -MD -MP -MF .deps/tc04_free_lock.Tpo -c -o tc04_free_lock.o tc04_free_lock.c
+-mv -f .deps/tc04_free_lock.Tpo .deps/tc04_free_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc04_free_lock tc04_free_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc05_simple_race.o -MD -MP -MF .deps/tc05_simple_race.Tpo -c -o tc05_simple_race.o tc05_simple_race.c
+-mv -f .deps/tc05_simple_race.Tpo .deps/tc05_simple_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc05_simple_race tc05_simple_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc06_two_races.o -MD -MP -MF .deps/tc06_two_races.Tpo -c -o tc06_two_races.o tc06_two_races.c
+-mv -f .deps/tc06_two_races.Tpo .deps/tc06_two_races.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc06_two_races tc06_two_races.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc07_hbl1-tc07_hbl1.o -MD -MP -MF .deps/tc07_hbl1-tc07_hbl1.Tpo -c -o tc07_hbl1-tc07_hbl1.o `test -f 'tc07_hbl1.c' || echo './'`tc07_hbl1.c
+-mv -f .deps/tc07_hbl1-tc07_hbl1.Tpo .deps/tc07_hbl1-tc07_hbl1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc07_hbl1 tc07_hbl1-tc07_hbl1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc08_hbl2-tc08_hbl2.o -MD -MP -MF .deps/tc08_hbl2-tc08_hbl2.Tpo -c -o tc08_hbl2-tc08_hbl2.o `test -f 'tc08_hbl2.c' || echo './'`tc08_hbl2.c
+-mv -f .deps/tc08_hbl2-tc08_hbl2.Tpo .deps/tc08_hbl2-tc08_hbl2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc08_hbl2 tc08_hbl2-tc08_hbl2.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc09_bad_unlock.o -MD -MP -MF .deps/tc09_bad_unlock.Tpo -c -o tc09_bad_unlock.o tc09_bad_unlock.c
+-mv -f .deps/tc09_bad_unlock.Tpo .deps/tc09_bad_unlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc09_bad_unlock tc09_bad_unlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc10_rec_lock.o -MD -MP -MF .deps/tc10_rec_lock.Tpo -c -o tc10_rec_lock.o tc10_rec_lock.c
+-mv -f .deps/tc10_rec_lock.Tpo .deps/tc10_rec_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc10_rec_lock tc10_rec_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc11_XCHG.o -MD -MP -MF .deps/tc11_XCHG.Tpo -c -o tc11_XCHG.o tc11_XCHG.c
+-mv -f .deps/tc11_XCHG.Tpo .deps/tc11_XCHG.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc11_XCHG tc11_XCHG.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc12_rwl_trivial.o -MD -MP -MF .deps/tc12_rwl_trivial.Tpo -c -o tc12_rwl_trivial.o tc12_rwl_trivial.c
+-mv -f .deps/tc12_rwl_trivial.Tpo .deps/tc12_rwl_trivial.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc12_rwl_trivial tc12_rwl_trivial.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc13_laog1.o -MD -MP -MF .deps/tc13_laog1.Tpo -c -o tc13_laog1.o tc13_laog1.c
+-mv -f .deps/tc13_laog1.Tpo .deps/tc13_laog1.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc13_laog1 tc13_laog1.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc14_laog_dinphils.o -MD -MP -MF .deps/tc14_laog_dinphils.Tpo -c -o tc14_laog_dinphils.o tc14_laog_dinphils.c
+-mv -f .deps/tc14_laog_dinphils.Tpo .deps/tc14_laog_dinphils.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc14_laog_dinphils tc14_laog_dinphils.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc15_laog_lockdel.o -MD -MP -MF .deps/tc15_laog_lockdel.Tpo -c -o tc15_laog_lockdel.o tc15_laog_lockdel.c
+-mv -f .deps/tc15_laog_lockdel.Tpo .deps/tc15_laog_lockdel.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc15_laog_lockdel tc15_laog_lockdel.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc16_byterace.o -MD -MP -MF .deps/tc16_byterace.Tpo -c -o tc16_byterace.o tc16_byterace.c
+-mv -f .deps/tc16_byterace.Tpo .deps/tc16_byterace.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc16_byterace tc16_byterace.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc17_sembar.o -MD -MP -MF .deps/tc17_sembar.Tpo -c -o tc17_sembar.o tc17_sembar.c
+-mv -f .deps/tc17_sembar.Tpo .deps/tc17_sembar.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc17_sembar tc17_sembar.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc18_semabuse.o -MD -MP -MF .deps/tc18_semabuse.Tpo -c -o tc18_semabuse.o tc18_semabuse.c
+-mv -f .deps/tc18_semabuse.Tpo .deps/tc18_semabuse.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc18_semabuse tc18_semabuse.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc19_shadowmem.o -MD -MP -MF .deps/tc19_shadowmem.Tpo -c -o tc19_shadowmem.o tc19_shadowmem.c
+-mv -f .deps/tc19_shadowmem.Tpo .deps/tc19_shadowmem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc19_shadowmem tc19_shadowmem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc21_pthonce.o -MD -MP -MF .deps/tc21_pthonce.Tpo -c -o tc21_pthonce.o tc21_pthonce.c
+-mv -f .deps/tc21_pthonce.Tpo .deps/tc21_pthonce.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc21_pthonce tc21_pthonce.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc23_bogus_condwait.o -MD -MP -MF .deps/tc23_bogus_condwait.Tpo -c -o tc23_bogus_condwait.o tc23_bogus_condwait.c
+-mv -f .deps/tc23_bogus_condwait.Tpo .deps/tc23_bogus_condwait.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc23_bogus_condwait tc23_bogus_condwait.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc24_nonzero_sem.o -MD -MP -MF .deps/tc24_nonzero_sem.Tpo -c -o tc24_nonzero_sem.o tc24_nonzero_sem.c
+-mv -f .deps/tc24_nonzero_sem.Tpo .deps/tc24_nonzero_sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc24_nonzero_sem tc24_nonzero_sem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc22_exit_w_lock.o -MD -MP -MF .deps/tc22_exit_w_lock.Tpo -c -o tc22_exit_w_lock.o tc22_exit_w_lock.c
+-mv -f .deps/tc22_exit_w_lock.Tpo .deps/tc22_exit_w_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc22_exit_w_lock tc22_exit_w_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_bad.o -MD -MP -MF .deps/bar_bad.Tpo -c -o bar_bad.o bar_bad.c
+-mv -f .deps/bar_bad.Tpo .deps/bar_bad.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_bad bar_bad.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bar_trivial.o -MD -MP -MF .deps/bar_trivial.Tpo -c -o bar_trivial.o bar_trivial.c
+-mv -f .deps/bar_trivial.Tpo .deps/bar_trivial.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bar_trivial bar_trivial.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tc20_verifywrap.o -MD -MP -MF .deps/tc20_verifywrap.Tpo -c -o tc20_verifywrap.o tc20_verifywrap.c
+-mv -f .deps/tc20_verifywrap.Tpo .deps/tc20_verifywrap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tc20_verifywrap tc20_verifywrap.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
+-mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[4]: Warning: File `.deps/tc24_nonzero_sem.Po' has modification time 90 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/helgrind'
+-Making check in drd
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-mkdir -p ../.in_place; \
+-for f in drd-ppc64-linux drd-ppc32-linux vgpreload_drd-ppc64-linux.so vgpreload_drd-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../drd/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../drd/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make  annotate_hb_err annotate_hb_race annotate_ignore_rw annotate_ignore_write annotate_publish_hg annotate_static bug-235681 custom_alloc fp_race free_is_write hold_lock linuxthreads_det memory_allocation monitor_example new_delete pth_broadcast pth_cancel_locked pth_cleanup_handler pth_cond_race pth_create_chain pth_detached pth_detached_sem pth_detached3 pth_inconsistent_cond_wait pth_mutex_reinit pth_process_shared_mutex pth_uninitialized_cond recursive_mutex rwlock_race rwlock_test rwlock_type_checking sem_as_mutex sem_open sigalrm thread_name threaded-fork trylock unit_bitmap unit_vc  annotate_barrier annotate_rwlock atomic_var circular_buffer  annotate_smart_pointer tsan_unittest std_thread omp_matinv omp_prime omp_printf matinv pth_barrier pth_barrier_race pth_barrier_reinit pth_barrier_thr_cr  pth_spinlock
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_err.o -MD -MP -MF .deps/annotate_hb_err.Tpo -c -o annotate_hb_err.o annotate_hb_err.c
+-mv -f .deps/annotate_hb_err.Tpo .deps/annotate_hb_err.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_err annotate_hb_err.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_hb_race.o -MD -MP -MF .deps/annotate_hb_race.Tpo -c -o annotate_hb_race.o annotate_hb_race.c
+-mv -f .deps/annotate_hb_race.Tpo .deps/annotate_hb_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_hb_race annotate_hb_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_rw.o -MD -MP -MF .deps/annotate_ignore_rw.Tpo -c -o annotate_ignore_rw.o annotate_ignore_rw.c
+-mv -f .deps/annotate_ignore_rw.Tpo .deps/annotate_ignore_rw.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_rw annotate_ignore_rw.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_ignore_write.o -MD -MP -MF .deps/annotate_ignore_write.Tpo -c -o annotate_ignore_write.o annotate_ignore_write.c
+-mv -f .deps/annotate_ignore_write.Tpo .deps/annotate_ignore_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_ignore_write annotate_ignore_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_publish_hg.o -MD -MP -MF .deps/annotate_publish_hg.Tpo -c -o annotate_publish_hg.o annotate_publish_hg.c
+-mv -f .deps/annotate_publish_hg.Tpo .deps/annotate_publish_hg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_publish_hg annotate_publish_hg.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_static.o -MD -MP -MF .deps/annotate_static.Tpo -c -o annotate_static.o annotate_static.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/annotate_static.Tpo .deps/annotate_static.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_static annotate_static.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bug-235681.o -MD -MP -MF .deps/bug-235681.Tpo -c -o bug-235681.o bug-235681.c
+-mv -f .deps/bug-235681.Tpo .deps/bug-235681.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bug-235681 bug-235681.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT custom_alloc.o -MD -MP -MF .deps/custom_alloc.Tpo -c -o custom_alloc.o custom_alloc.c
+-mv -f .deps/custom_alloc.Tpo .deps/custom_alloc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o custom_alloc custom_alloc.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fp_race.o -MD -MP -MF .deps/fp_race.Tpo -c -o fp_race.o fp_race.c
+-mv -f .deps/fp_race.Tpo .deps/fp_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fp_race fp_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT free_is_write.o -MD -MP -MF .deps/free_is_write.Tpo -c -o free_is_write.o free_is_write.c
+-mv -f .deps/free_is_write.Tpo .deps/free_is_write.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o free_is_write free_is_write.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hold_lock.o -MD -MP -MF .deps/hold_lock.Tpo -c -o hold_lock.o hold_lock.c
+-mv -f .deps/hold_lock.Tpo .deps/hold_lock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hold_lock hold_lock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT linuxthreads_det.o -MD -MP -MF .deps/linuxthreads_det.Tpo -c -o linuxthreads_det.o linuxthreads_det.c
+-mv -f .deps/linuxthreads_det.Tpo .deps/linuxthreads_det.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o linuxthreads_det linuxthreads_det.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT memory_allocation.o -MD -MP -MF .deps/memory_allocation.Tpo -c -o memory_allocation.o memory_allocation.c
+-mv -f .deps/memory_allocation.Tpo .deps/memory_allocation.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o memory_allocation memory_allocation.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT monitor_example.o -MD -MP -MF .deps/monitor_example.Tpo -c -o monitor_example.o monitor_example.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/monitor_example.Tpo .deps/monitor_example.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o monitor_example monitor_example.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT new_delete.o -MD -MP -MF .deps/new_delete.Tpo -c -o new_delete.o new_delete.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/new_delete.Tpo .deps/new_delete.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o new_delete new_delete.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_broadcast.o -MD -MP -MF .deps/pth_broadcast.Tpo -c -o pth_broadcast.o pth_broadcast.c
+-mv -f .deps/pth_broadcast.Tpo .deps/pth_broadcast.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_broadcast pth_broadcast.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cancel_locked.o -MD -MP -MF .deps/pth_cancel_locked.Tpo -c -o pth_cancel_locked.o pth_cancel_locked.c
+-mv -f .deps/pth_cancel_locked.Tpo .deps/pth_cancel_locked.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cancel_locked pth_cancel_locked.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cleanup_handler-pth_cleanup_handler.o -MD -MP -MF .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo -c -o pth_cleanup_handler-pth_cleanup_handler.o `test -f 'pth_cleanup_handler.c' || echo './'`pth_cleanup_handler.c
+-mv -f .deps/pth_cleanup_handler-pth_cleanup_handler.Tpo .deps/pth_cleanup_handler-pth_cleanup_handler.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-empty-body -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cleanup_handler pth_cleanup_handler-pth_cleanup_handler.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_cond_race.o -MD -MP -MF .deps/pth_cond_race.Tpo -c -o pth_cond_race.o pth_cond_race.c
+-mv -f .deps/pth_cond_race.Tpo .deps/pth_cond_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_cond_race pth_cond_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_create_chain.o -MD -MP -MF .deps/pth_create_chain.Tpo -c -o pth_create_chain.o pth_create_chain.c
+-mv -f .deps/pth_create_chain.Tpo .deps/pth_create_chain.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_create_chain pth_create_chain.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached.o -MD -MP -MF .deps/pth_detached.Tpo -c -o pth_detached.o pth_detached.c
+-mv -f .deps/pth_detached.Tpo .deps/pth_detached.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached pth_detached.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached_sem.o -MD -MP -MF .deps/pth_detached_sem.Tpo -c -o pth_detached_sem.o pth_detached_sem.c
+-mv -f .deps/pth_detached_sem.Tpo .deps/pth_detached_sem.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached_sem pth_detached_sem.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_detached3.o -MD -MP -MF .deps/pth_detached3.Tpo -c -o pth_detached3.o pth_detached3.c
+-mv -f .deps/pth_detached3.Tpo .deps/pth_detached3.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_detached3 pth_detached3.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_inconsistent_cond_wait.o -MD -MP -MF .deps/pth_inconsistent_cond_wait.Tpo -c -o pth_inconsistent_cond_wait.o pth_inconsistent_cond_wait.c
+-mv -f .deps/pth_inconsistent_cond_wait.Tpo .deps/pth_inconsistent_cond_wait.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_inconsistent_cond_wait pth_inconsistent_cond_wait.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_mutex_reinit.o -MD -MP -MF .deps/pth_mutex_reinit.Tpo -c -o pth_mutex_reinit.o pth_mutex_reinit.c
+-mv -f .deps/pth_mutex_reinit.Tpo .deps/pth_mutex_reinit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_mutex_reinit pth_mutex_reinit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_process_shared_mutex.o -MD -MP -MF .deps/pth_process_shared_mutex.Tpo -c -o pth_process_shared_mutex.o pth_process_shared_mutex.c
+-mv -f .deps/pth_process_shared_mutex.Tpo .deps/pth_process_shared_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_process_shared_mutex pth_process_shared_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_uninitialized_cond.o -MD -MP -MF .deps/pth_uninitialized_cond.Tpo -c -o pth_uninitialized_cond.o pth_uninitialized_cond.c
+-mv -f .deps/pth_uninitialized_cond.Tpo .deps/pth_uninitialized_cond.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_uninitialized_cond pth_uninitialized_cond.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT recursive_mutex.o -MD -MP -MF .deps/recursive_mutex.Tpo -c -o recursive_mutex.o recursive_mutex.c
+-mv -f .deps/recursive_mutex.Tpo .deps/recursive_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o recursive_mutex recursive_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_race.o -MD -MP -MF .deps/rwlock_race.Tpo -c -o rwlock_race.o rwlock_race.c
+-mv -f .deps/rwlock_race.Tpo .deps/rwlock_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_race rwlock_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_test.o -MD -MP -MF .deps/rwlock_test.Tpo -c -o rwlock_test.o rwlock_test.c
+-mv -f .deps/rwlock_test.Tpo .deps/rwlock_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_test rwlock_test.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT rwlock_type_checking.o -MD -MP -MF .deps/rwlock_type_checking.Tpo -c -o rwlock_type_checking.o rwlock_type_checking.c
+-mv -f .deps/rwlock_type_checking.Tpo .deps/rwlock_type_checking.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o rwlock_type_checking rwlock_type_checking.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_as_mutex.o -MD -MP -MF .deps/sem_as_mutex.Tpo -c -o sem_as_mutex.o sem_as_mutex.c
+-mv -f .deps/sem_as_mutex.Tpo .deps/sem_as_mutex.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_as_mutex sem_as_mutex.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sem_open.o -MD -MP -MF .deps/sem_open.Tpo -c -o sem_open.o sem_open.c
+-mv -f .deps/sem_open.Tpo .deps/sem_open.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sem_open sem_open.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sigalrm.o -MD -MP -MF .deps/sigalrm.Tpo -c -o sigalrm.o sigalrm.c
+-mv -f .deps/sigalrm.Tpo .deps/sigalrm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sigalrm sigalrm.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT thread_name.o -MD -MP -MF .deps/thread_name.Tpo -c -o thread_name.o thread_name.c
+-mv -f .deps/thread_name.Tpo .deps/thread_name.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o thread_name thread_name.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT threaded-fork.o -MD -MP -MF .deps/threaded-fork.Tpo -c -o threaded-fork.o threaded-fork.c
+-mv -f .deps/threaded-fork.Tpo .deps/threaded-fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o threaded-fork threaded-fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT trylock.o -MD -MP -MF .deps/trylock.Tpo -c -o trylock.o trylock.c
+-mv -f .deps/trylock.Tpo .deps/trylock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o trylock trylock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_bitmap-unit_bitmap.o -MD -MP -MF .deps/unit_bitmap-unit_bitmap.Tpo -c -o unit_bitmap-unit_bitmap.o `test -f 'unit_bitmap.c' || echo './'`unit_bitmap.c
+-mv -f .deps/unit_bitmap-unit_bitmap.Tpo .deps/unit_bitmap-unit_bitmap.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -O2 -DENABLE_DRD_CONSISTENCY_CHECKS --param inline-unit-growth=900 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_bitmap unit_bitmap-unit_bitmap.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT unit_vc-unit_vc.o -MD -MP -MF .deps/unit_vc-unit_vc.Tpo -c -o unit_vc-unit_vc.o `test -f 'unit_vc.c' || echo './'`unit_vc.c
+-mv -f .deps/unit_vc-unit_vc.Tpo .deps/unit_vc-unit_vc.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DENABLE_DRD_CONSISTENCY_CHECKS -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o unit_vc unit_vc-unit_vc.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_barrier.o -MD -MP -MF .deps/annotate_barrier.Tpo -c -o annotate_barrier.o annotate_barrier.c
+-mv -f .deps/annotate_barrier.Tpo .deps/annotate_barrier.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_barrier annotate_barrier.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_rwlock.o -MD -MP -MF .deps/annotate_rwlock.Tpo -c -o annotate_rwlock.o annotate_rwlock.c
+-mv -f .deps/annotate_rwlock.Tpo .deps/annotate_rwlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_rwlock annotate_rwlock.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c
+-mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o atomic_var atomic_var.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c
+-mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o circular_buffer circular_buffer.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT annotate_smart_pointer.o -MD -MP -MF .deps/annotate_smart_pointer.Tpo -c -o annotate_smart_pointer.o annotate_smart_pointer.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/annotate_smart_pointer.Tpo .deps/annotate_smart_pointer.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o annotate_smart_pointer annotate_smart_pointer.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/tsan_unittest-tsan_unittest.Tpo .deps/tsan_unittest-tsan_unittest.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tsan_unittest tsan_unittest-tsan_unittest.o -lpthread 
+-g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT std_thread-std_thread.o -MD -MP -MF .deps/std_thread-std_thread.Tpo -c -o std_thread-std_thread.o `test -f 'std_thread.cpp' || echo './'`std_thread.cpp
+-cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ [enabled by default]
+-mv -f .deps/std_thread-std_thread.Tpo .deps/std_thread-std_thread.Po
+-g++ -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -std=c++0x -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o std_thread std_thread-std_thread.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_matinv-omp_matinv.o -MD -MP -MF .deps/omp_matinv-omp_matinv.Tpo -c -o omp_matinv-omp_matinv.o `test -f 'omp_matinv.c' || echo './'`omp_matinv.c
+-mv -f .deps/omp_matinv-omp_matinv.Tpo .deps/omp_matinv-omp_matinv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_matinv omp_matinv-omp_matinv.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_prime-omp_prime.o -MD -MP -MF .deps/omp_prime-omp_prime.Tpo -c -o omp_prime-omp_prime.o `test -f 'omp_prime.c' || echo './'`omp_prime.c
+-mv -f .deps/omp_prime-omp_prime.Tpo .deps/omp_prime-omp_prime.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_prime omp_prime-omp_prime.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT omp_printf-omp_printf.o -MD -MP -MF .deps/omp_printf-omp_printf.Tpo -c -o omp_printf-omp_printf.o `test -f 'omp_printf.c' || echo './'`omp_printf.c
+-mv -f .deps/omp_printf-omp_printf.Tpo .deps/omp_printf-omp_printf.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -fopenmp -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fopenmp  -o omp_printf omp_printf-omp_printf.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT matinv.o -MD -MP -MF .deps/matinv.Tpo -c -o matinv.o matinv.c
+-mv -f .deps/matinv.Tpo .deps/matinv.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o matinv matinv.o -lpthread -lm 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier.o -MD -MP -MF .deps/pth_barrier.Tpo -c -o pth_barrier.o pth_barrier.c
+-mv -f .deps/pth_barrier.Tpo .deps/pth_barrier.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier pth_barrier.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_race.o -MD -MP -MF .deps/pth_barrier_race.Tpo -c -o pth_barrier_race.o pth_barrier_race.c
+-mv -f .deps/pth_barrier_race.Tpo .deps/pth_barrier_race.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_race pth_barrier_race.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_reinit.o -MD -MP -MF .deps/pth_barrier_reinit.Tpo -c -o pth_barrier_reinit.o pth_barrier_reinit.c
+-mv -f .deps/pth_barrier_reinit.Tpo .deps/pth_barrier_reinit.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_reinit pth_barrier_reinit.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_barrier_thr_cr.o -MD -MP -MF .deps/pth_barrier_thr_cr.Tpo -c -o pth_barrier_thr_cr.o pth_barrier_thr_cr.c
+-mv -f .deps/pth_barrier_thr_cr.Tpo .deps/pth_barrier_thr_cr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_barrier_thr_cr pth_barrier_thr_cr.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT pth_spinlock.o -MD -MP -MF .deps/pth_spinlock.Tpo -c -o pth_spinlock.o pth_spinlock.c
+-mv -f .deps/pth_spinlock.Tpo .deps/pth_spinlock.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o pth_spinlock pth_spinlock.o -lpthread 
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[4]: Warning: File `.deps/unit_vc-unit_vc.Po' has modification time 84 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/drd'
+-Making check in exp-sgcheck
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-mkdir -p ../.in_place; \
+-for f in exp-sgcheck-ppc64-linux exp-sgcheck-ppc32-linux vgpreload_exp-sgcheck-ppc64-linux.so vgpreload_exp-sgcheck-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-sgcheck/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-sgcheck/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make  bad_percentify globalerr hackedbz2 hsg preen_invars preen_invars_so.so stackerr
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bad_percentify.o -MD -MP -MF .deps/bad_percentify.Tpo -c -o bad_percentify.o bad_percentify.c
+-mv -f .deps/bad_percentify.Tpo .deps/bad_percentify.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bad_percentify bad_percentify.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT globalerr.o -MD -MP -MF .deps/globalerr.Tpo -c -o globalerr.o globalerr.c
+-mv -f .deps/globalerr.Tpo .deps/globalerr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o globalerr globalerr.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hackedbz2-hackedbz2.o -MD -MP -MF .deps/hackedbz2-hackedbz2.Tpo -c -o hackedbz2-hackedbz2.o `test -f 'hackedbz2.c' || echo './'`hackedbz2.c
+-mv -f .deps/hackedbz2-hackedbz2.Tpo .deps/hackedbz2-hackedbz2.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -O -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hackedbz2 hackedbz2-hackedbz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT hsg.o -MD -MP -MF .deps/hsg.Tpo -c -o hsg.o hsg.c
+-mv -f .deps/hsg.Tpo .deps/hsg.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o hsg hsg.o  
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars.o -MD -MP -MF .deps/preen_invars.Tpo -c -o preen_invars.o preen_invars.c
+-mv -f .deps/preen_invars.Tpo .deps/preen_invars.Po
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT preen_invars_so_so-preen_invars_so.o -MD -MP -MF .deps/preen_invars_so_so-preen_invars_so.Tpo -c -o preen_invars_so_so-preen_invars_so.o `test -f 'preen_invars_so.c' || echo './'`preen_invars_so.c
+-mv -f .deps/preen_invars_so_so-preen_invars_so.Tpo .deps/preen_invars_so_so-preen_invars_so.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fpic -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -fpic -m64 -shared -Wl,-soname -Wl,preen_invars_so.so  -o preen_invars_so.so preen_invars_so_so-preen_invars_so.o  
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -m64 -Wl,-rpath,../../memcheck/tests  -o preen_invars preen_invars.o -ldl 
+-make[4]: `preen_invars_so.so' is up to date.
+-gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT stackerr.o -MD -MP -MF .deps/stackerr.Tpo -c -o stackerr.o stackerr.c
+-mv -f .deps/stackerr.Tpo .deps/stackerr.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o stackerr stackerr.o  
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make  check-local
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[4]: Warning: File `.deps/stackerr.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[4]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-sgcheck'
+-Making check in exp-bbv
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-mkdir -p ../.in_place; \
+-for f in exp-bbv-ppc64-linux exp-bbv-ppc32-linux ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-bbv/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-bbv/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making check in .
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make  
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making all in .
+-make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[6]: Nothing to be done for `all-am'.
+-make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making all in ppc32-linux
+-make[6]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[6]: Nothing to be done for `all'.
+-make[6]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-Making check in ppc32-linux
+-make[4]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make  million ll
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT million.o -MD -MP -MF .deps/million.Tpo -c -o million.o million.S
+-mv -f .deps/million.Tpo .deps/million.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o million million.o  
+-gcc -DHAVE_CONFIG_H -I. -I../../..  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1 -ffreestanding -m32 -Wno-long-long  -MT ll.o -MD -MP -MF .deps/ll.Tpo -c -o ll.o ll.S
+-mv -f .deps/ll.Tpo .deps/ll.Po
+-gcc -Winline -Wall -Wshadow -g -Wno-long-long  -Wno-pointer-sign -fno-stack-protector  -nostartfiles -nodefaultlibs -m32 -o ll ll.o  
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make  check-local
+-make[5]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[5]: Warning: File `.deps/million.Po' has modification time 90 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[5]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[5]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[4]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests/ppc32-linux'
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-bbv'
+-Making check in exp-dhat
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-Making check in .
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-mkdir -p ../.in_place; \
+-for f in exp-dhat-ppc64-linux exp-dhat-ppc32-linux vgpreload_exp-dhat-ppc64-linux.so vgpreload_exp-dhat-ppc32-linux.so ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../exp-dhat/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../exp-dhat/$f.dSYM ../.in_place; \
+-done
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-Making check in tests
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+-make[3]: Nothing to be done for `check'.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/exp-dhat'
+-Making check in tests
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make  arch_test os_test true x86_amd64_features s390x_features
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT arch_test.o -MD -MP -MF .deps/arch_test.Tpo -c -o arch_test.o arch_test.c
+-mv -f .deps/arch_test.Tpo .deps/arch_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o arch_test arch_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT os_test.o -MD -MP -MF .deps/os_test.Tpo -c -o os_test.o os_test.c
+-mv -f .deps/os_test.Tpo .deps/os_test.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o os_test os_test.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT true.o -MD -MP -MF .deps/true.Tpo -c -o true.o true.c
+-mv -f .deps/true.Tpo .deps/true.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o true true.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT x86_amd64_features-x86_amd64_features.o -MD -MP -MF .deps/x86_amd64_features-x86_amd64_features.Tpo -c -o x86_amd64_features-x86_amd64_features.o `test -f 'x86_amd64_features.c' || echo './'`x86_amd64_features.c
+-mv -f .deps/x86_amd64_features-x86_amd64_features.Tpo .deps/x86_amd64_features-x86_amd64_features.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o x86_amd64_features x86_amd64_features-x86_amd64_features.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT s390x_features.o -MD -MP -MF .deps/s390x_features.Tpo -c -o s390x_features.o s390x_features.c
+-mv -f .deps/s390x_features.Tpo .deps/s390x_features.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o s390x_features s390x_features.o  
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[3]: Warning: File `.deps/x86_amd64_features-x86_amd64_features.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/tests'
+-Making check in perf
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make  bigcode bz2 fbench ffbench heap many-loss-records many-xpts sarp tinycc
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bigcode.o -MD -MP -MF .deps/bigcode.Tpo -c -o bigcode.o bigcode.c
+-mv -f .deps/bigcode.Tpo .deps/bigcode.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bigcode bigcode.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT bz2-bz2.o -MD -MP -MF .deps/bz2-bz2.Tpo -c -o bz2-bz2.o `test -f 'bz2.c' || echo './'`bz2.c
+-mv -f .deps/bz2-bz2.Tpo .deps/bz2-bz2.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o bz2 bz2-bz2.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fbench-fbench.o -MD -MP -MF .deps/fbench-fbench.Tpo -c -o fbench-fbench.o `test -f 'fbench.c' || echo './'`fbench.c
+-mv -f .deps/fbench-fbench.Tpo .deps/fbench-fbench.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -O2 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fbench fbench-fbench.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT ffbench.o -MD -MP -MF .deps/ffbench.Tpo -c -o ffbench.o ffbench.c
+-mv -f .deps/ffbench.Tpo .deps/ffbench.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o ffbench ffbench.o -lm 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT heap.o -MD -MP -MF .deps/heap.Tpo -c -o heap.o heap.c
+-mv -f .deps/heap.Tpo .deps/heap.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o heap heap.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-loss-records.o -MD -MP -MF .deps/many-loss-records.Tpo -c -o many-loss-records.o many-loss-records.c
+-mv -f .deps/many-loss-records.Tpo .deps/many-loss-records.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-loss-records many-loss-records.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT many-xpts.o -MD -MP -MF .deps/many-xpts.Tpo -c -o many-xpts.o many-xpts.c
+-mv -f .deps/many-xpts.Tpo .deps/many-xpts.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o many-xpts many-xpts.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sarp.o -MD -MP -MF .deps/sarp.Tpo -c -o sarp.o sarp.c
+-mv -f .deps/sarp.Tpo .deps/sarp.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sarp sarp.o  
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT tinycc-tinycc.o -MD -MP -MF .deps/tinycc-tinycc.Tpo -c -o tinycc-tinycc.o `test -f 'tinycc.c' || echo './'`tinycc.c
+-mv -f .deps/tinycc-tinycc.Tpo .deps/tinycc-tinycc.Po
+-gcc -Winline -Wall -Wshadow -g -O -m64 -Wno-shadow -Wno-inline -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o tinycc tinycc-tinycc.o  
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[3]: Warning: File `.deps/tinycc-tinycc.Po' has modification time 90 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/perf'
+-Making check in gdbserver_tests
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make  clean_after_fork fork_chain passsigalrm sleepers main_pic t watchpoints
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT clean_after_fork.o -MD -MP -MF .deps/clean_after_fork.Tpo -c -o clean_after_fork.o clean_after_fork.c
+-mv -f .deps/clean_after_fork.Tpo .deps/clean_after_fork.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o clean_after_fork clean_after_fork.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT fork_chain.o -MD -MP -MF .deps/fork_chain.Tpo -c -o fork_chain.o fork_chain.c
+-mv -f .deps/fork_chain.Tpo .deps/fork_chain.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o fork_chain fork_chain.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT passsigalrm.o -MD -MP -MF .deps/passsigalrm.Tpo -c -o passsigalrm.o passsigalrm.c
+-mv -f .deps/passsigalrm.Tpo .deps/passsigalrm.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o passsigalrm passsigalrm.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT sleepers.o -MD -MP -MF .deps/sleepers.Tpo -c -o sleepers.o sleepers.c
+-mv -f .deps/sleepers.Tpo .deps/sleepers.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o sleepers sleepers.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT main_pic-main_pic.o -MD -MP -MF .deps/main_pic-main_pic.Tpo -c -o main_pic-main_pic.o `test -f 'main_pic.c' || echo './'`main_pic.c
+-mv -f .deps/main_pic-main_pic.Tpo .deps/main_pic-main_pic.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -fPIC -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -pie  -o main_pic main_pic-main_pic.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT t.o -MD -MP -MF .deps/t.Tpo -c -o t.o t.c
+-mv -f .deps/t.Tpo .deps/t.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o t t.o -lpthread 
+-gcc -DHAVE_CONFIG_H -I. -I..  -I.. -I../include -I../coregrind -I../include -I../VEX/pub -DVGA_ppc64=1 -DVGO_linux=1 -DVGP_ppc64_linux=1 -DVGPV_ppc64_linux_vanilla=1 -DVGA_SEC_ppc32=1 -DVGP_SEC_ppc64_linux=1  -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector -MT watchpoints.o -MD -MP -MF .deps/watchpoints.Tpo -c -o watchpoints.o watchpoints.c
+-mv -f .deps/watchpoints.Tpo .deps/watchpoints.Po
+-gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long  -Wno-pointer-sign -fno-stack-protector   -o watchpoints watchpoints.o -lpthread 
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make  check-local
+-make[3]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[3]: Warning: File `.deps/watchpoints.Po' has modification time 91 s in the future
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-make[3]: warning:  Clock skew detected.  Your build may be incomplete.
+-make[3]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/gdbserver_tests'
+-Making check in auxprogs
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/auxprogs'
+-Making check in mpi
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
+-mkdir -p ../.in_place; \
+-for f in   ; do \
+-  rm -f ../.in_place/$f; \
+-  ln -f -s ../mpi/$f ../.in_place; \
+-done
+-for f in ; do \
+-  if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
+-      echo "dsymutil $f"; \
+-      dsymutil $f; \
+-  fi; \
+-done
+-mkdir -p ../.in_place; \
+-for f in ; do \
+-  rm -f ../.in_place/$f.dSYM; \
+-  ln -f -s ../mpi/$f.dSYM ../.in_place; \
+-done
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/mpi'
+-Making check in docs
+-make[2]: Entering directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
+-make[2]: Nothing to be done for `check'.
+-make[2]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/docs'
+-make[1]: Leaving directory `/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1'
+-gdbserver_tests/make_local_links /usr/bin/gdb
+-if /usr/bin/perl tests/vg_regtest gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat ; then \
+-   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
+-else \
+-   tests/check_makefile_consistency gdbserver_tests memcheck cachegrind callgrind massif lackey none helgrind drd exp-sgcheck exp-bbv exp-dhat; \
+-   false; \
+-fi
+--- Running  tests in gdbserver_tests -----------------------------------
+-mcblocklistsearch: valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcblocklistsearch -q  ./../memcheck/tests/leak-tree  (progB: ./gdb --quiet -l 60 --nx 1>&2 ../memcheck/tests/leak-tree)
+-mcbreak:         valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcbreak ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-mcclean_after_fork: valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcclean_after_fork ./clean_after_fork  (progB: ./gdb --quiet -l 60 --nx ./clean_after_fork)
+-mchelp:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mchelp ./t  (progB: ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mchelp -c help -c help debug -c v.kill)
+-mcinfcallRU:     valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallRU ./sleepers 1 0 2000000000 ------B- (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+-mcinfcallWSRU:   valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU ./sleepers 100 100000000 1000000000 -S-S-SB- (progB: ./gdb --quiet -l 60 --nx 1>&2 ./sleepers)
+-mcinvokeRU:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU ./sleepers 1 0 1000000000 B-B-B-B- (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0)
+-mcinvokeWS:      valgrind   --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS ./sleepers 1 10000000 0 -S-S-S-S (progB: ./invoker 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0)
+-mcleak:          valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcleak -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./../memcheck/tests/leak-delta  (progB: ./gdb --quiet -l 60 --nx ../memcheck/tests/leak-delta)
+-mcmain_pic:      valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcmain_pic ./main_pic  (progB: ./gdb --quiet -l 60 --nx ./main_pic)
+-*** mcmain_pic failed (stdout) ***
+-*** mcmain_pic failed (stderr) ***
+-*** mcmain_pic failed (stdoutB) ***
+-*** mcmain_pic failed (stderrB) ***
+-mcsignopass:     valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsignopass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
+-mcsigpass:       valgrind   --tool=memcheck --vgdb=full --vex-iropt-register-updates=allregs-at-mem-access --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcsigpass ./../none/tests/faultstatus  (progB: ./gdb --quiet -l 60 --nx ../none/tests/faultstatus)
+-mcvabits:        valgrind   --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcvabits ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-mcwatchpoints:   valgrind   --tool=memcheck --vgdb=full --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcwatchpoints ./watchpoints  (progB: ./gdb --quiet -l 60 --nx ./watchpoints)
+-mssnapshot:      valgrind   --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot ./t  (progB: ./gdb --quiet -l 60 --nx ./t)
+-nlcontrolc:      valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlcontrolc ./sleepers 1000000000 1000000000 1000000000 BSBSBSBS (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+-nlfork_chain:    valgrind   --tool=none --vgdb=yes --trace-children=yes --vgdb-prefix=./vgdb-prefix-nlfork_chain ./fork_chain 
+-nlpasssigalrm:   valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlpasssigalrm ./passsigalrm  (progB: ./gdb --quiet -l 60 --nx ./passsigalrm)
+-nlsigvgdb:       valgrind   --tool=none --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-nlsigvgdb ./sleepers 1 10000000 0 -S-S-S-S (progB: ./gdb --quiet -l 60 --nx ./sleepers)
+--- Finished tests in gdbserver_tests -----------------------------------
+--- Running  tests in memcheck/tests ------------------------------------
+-accounting:      valgrind   ./accounting 
+-addressable:     valgrind   ./addressable 
+-atomic_incs:     valgrind   -q --track-origins=yes ./atomic_incs 
+-badaddrvalue:    valgrind   -q ./badaddrvalue 
+-badfree-2trace:  valgrind   --num-callers=2 -q ./badfree 
+-badfree:         valgrind   -q ./badfree 
+-badfree3:        valgrind   -q --fullpath-after=/proj/ppc/DT/labhome/anmol/valgrind-3.8.1/ ./badfree 
+-badjump:         valgrind   ./badjump 
+-sh: line 1:  4673 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck ./badjump > badjump.stdout.out 2> badjump.stderr.out
+-badjump2:        valgrind   -q ./badjump2 
+-badloop:         valgrind   -q ./badloop 
+-badpoll:         valgrind   -q ./badpoll 
+-badrw:           valgrind   -q ./badrw 
+-big_blocks_freed_list: valgrind   --freelist-vol=1000000 --freelist-big-blocks=50000 ./big_blocks_freed_list 
+-brk2:            valgrind   ./brk2 
+-buflen_check:    valgrind   -q ./buflen_check 
+-bug287260:       valgrind   ./bug287260 
+-calloc-overflow: valgrind   -q ./calloc-overflow 
+-clientperm:      valgrind   -q ./clientperm 
+-clireq_nofill:   valgrind   -q --undef-value-errors=no --malloc-fill=0xaf --free-fill=0xdb ./clireq_nofill 
+-clo_redzone_128: valgrind   --leak-check=no -q --redzone-size=128 ./clo_redzone 
+-clo_redzone_default: valgrind   --leak-check=no -q ./clo_redzone 
+-custom-overlap:  valgrind   --leak-check=summary -q ./custom-overlap 
+-custom_alloc:    valgrind   -q ./custom_alloc 
+-deep-backtrace:  valgrind   -q --num-callers=500 ./deep-backtrace 
+-sh: line 1:  5231 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --num-callers=500 ./deep-backtrace > deep-backtrace.stdout.out 2> deep-backtrace.stderr.out
+-deep_templates:  valgrind   -q ./deep_templates 
+-describe-block:  valgrind   ./describe-block 
+-doublefree:      valgrind   -q ./doublefree 
+-dw4:             valgrind   --read-var-info=yes -q ./dw4 
+-err_disable1:    valgrind   -q ./err_disable1 
+-err_disable2:    valgrind   -q ./err_disable2 
+-err_disable3:    valgrind   -q ./err_disable3 
+-err_disable4:    valgrind   -q --num-callers=3 ./err_disable4 
+-erringfds:       valgrind   ./erringfds 
+-error_counts:    valgrind   --log-fd=-1 ./error_counts 
+-errs1:           valgrind   -q ./errs1 
+-execve1:         valgrind   -q ./execve1 
+-execve2:         valgrind   -q --trace-children=yes ./execve2 
+-exitprog:        valgrind   -q ./exitprog 
+-file_locking:    valgrind   -q --trace-children=yes ./file_locking 
+-fprw:            valgrind   -q ./fprw 
+-fwrite:          valgrind   -q ./fwrite 
+-holey_buffer_too_small: valgrind   -q --track-origins=yes ./holey_buffer_too_small 
+-inits:           valgrind   -q ./inits 
+-inline:          valgrind   -q ./inline 
+-leak-0:          valgrind   -q ./leak-0 
+-leak-cases-full: valgrind   -q --leak-check=full --leak-resolution=high ./leak-cases 
+-leak-cases-possible: valgrind   -q --leak-check=full --leak-resolution=high --show-possibly-lost=no ./leak-cases 
+-leak-cases-summary: valgrind   -q --leak-check=summary --leak-resolution=high ./leak-cases 
+-leak-cycle:      valgrind   -q --leak-check=yes --leak-resolution=high ./leak-cycle 
+-leak-delta:      valgrind   -q --leak-check=yes --show-reachable=yes --leak-resolution=high ./leak-delta 
+-leak-pool-0:     valgrind   ./leak-pool 0
+-leak-pool-1:     valgrind   ./leak-pool 1
+-leak-pool-2:     valgrind   ./leak-pool 2
+-leak-pool-3:     valgrind   ./leak-pool 3
+-leak-pool-4:     valgrind   ./leak-pool 4
+-leak-pool-5:     valgrind   ./leak-pool 5
+-leak-tree:       valgrind   -q --leak-check=full --leak-resolution=high ./leak-tree 
+--- Running  tests in memcheck/tests/linux ------------------------------
+-brk:             valgrind   ./brk 
+-capget:          valgrind   ./capget 
+-lsframe1:        valgrind   --main-stacksize=67200000 --max-stackframe=67200000 ./lsframe1 
+-lsframe2:        valgrind   --main-stacksize=68500000 ./lsframe2 
+-sigqueue:        valgrind   ./sigqueue -q
+-stack_changes:   valgrind   -q ./stack_changes 
+-stack_switch:    valgrind   -q ./stack_switch 
+-syscalls-2007:   valgrind   ./syscalls-2007 
+-syslog-syscall:  valgrind   ./syslog-syscall 
+-timerfd-syscall: valgrind   ./timerfd-syscall 
+-*** timerfd-syscall failed (stderr) ***
+-with-space:      valgrind   -q ./'with space' 
+--- Finished tests in memcheck/tests/linux ------------------------------
+-long-supps:      valgrind   --suppressions=long-supps.supp -q ./long-supps 
+-long_namespace_xml: valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./long_namespace_xml 
+-mallinfo:        valgrind   ./mallinfo -q
+-malloc1:         valgrind   -q ./malloc1 
+-malloc2:         valgrind   -q ./malloc2 
+-malloc3:         valgrind   -q ./malloc3 
+-malloc_free_fill: valgrind   -q --malloc-fill=0x55 --free-fill=0x77 ./malloc_free_fill 
+-malloc_usable:   valgrind   -q ./malloc_usable 
+-manuel1:         valgrind   -q ./manuel1 
+-manuel2:         valgrind   -q ./manuel2 
+-manuel3:         valgrind   -q ./manuel3 
+-match-overrun:   valgrind   -q --suppressions=match-overrun.supp ./match-overrun 
+-memalign2:       valgrind   -q --freelist-vol=100000 --freelist-big-blocks=0 ./memalign2 
+-memalign_test:   valgrind   -q ./memalign_test 
+-memcmptest:      valgrind   -q ./memcmptest 
+-mempool:         valgrind   -q --leak-check=yes ./mempool 
+-mempool2:        valgrind   -q --leak-check=yes ./mempool2 
+-metadata:        valgrind   -q ./metadata 
+-mismatches:      valgrind   -q ./mismatches 
+-mmaptest:        valgrind   -q ./mmaptest 
+-nanoleak2:       valgrind   --leak-check=yes --gen-suppressions=all --show-reachable=no -q ./nanoleak2 
+-nanoleak_supp:   valgrind   --leak-check=yes --suppressions=nanoleak.supp -q ./nanoleak_supp 
+-new_nothrow:     valgrind   -q ./new_nothrow 
+-new_override:    valgrind   ./new_override 
+-noisy_child:     valgrind   --child-silent-after-fork=yes ./noisy_child 
+-null_socket:     valgrind   -q ./null_socket 
+-origin1-yes:     valgrind   -q --track-origins=yes ./origin1-yes 
+-origin2-not-quite: valgrind   -q --track-origins=yes ./origin2-not-quite 
+-origin3-no:      valgrind   -q --track-origins=yes ./origin3-no 
+-origin4-many:    valgrind   -q --track-origins=yes ./origin4-many 
+-origin5-bz2:     valgrind   -q --track-origins=yes ./origin5-bz2 x
+-origin6-fp:      valgrind   -q --track-origins=yes ./origin6-fp 
+-overlap:         valgrind   -q ./overlap 
+-partial_load_dflt: valgrind   ./partial_load 
+-partial_load_ok: valgrind   --partial-loads-ok=yes ./partial_load 
+-partiallydefinedeq: valgrind   ./partiallydefinedeq 
+-pdb-realloc:     valgrind   -q ./pdb-realloc 
+-pdb-realloc2:    valgrind   -q ./pdb-realloc2 
+-pipe:            valgrind   -q ./pipe 
+-pointer-trace:   valgrind   -q --leak-check=yes ./pointer-trace 
+-post-syscall:    valgrind   -q ./post-syscall 
+--- Running  tests in memcheck/tests/ppc32 ------------------------------
+-power_ISA2_05:   valgrind   ./power_ISA2_05 
+-./spe-check.c:5:2: error: #error "Not on a POWER/SPE system!"
+-test_spe:        (skipping, prereq failed: ./test_spe.prereq.sh)
+--- Finished tests in memcheck/tests/ppc32 ------------------------------
+--- Running  tests in memcheck/tests/ppc64 ------------------------------
+-power_ISA2_05:   valgrind   --workaround-gcc296-bugs=yes ./power_ISA2_05 
+--- Finished tests in memcheck/tests/ppc64 ------------------------------
+-realloc1:        valgrind   -q ./realloc1 
+-realloc2:        valgrind   -q ./realloc2 
+-realloc3:        valgrind   -q ./realloc3 
+-sbfragment:      valgrind   ./sbfragment 
+-sh-mem-random:   valgrind   -q ./sh-mem-random 
+-sh-mem:          valgrind   -q ./sh-mem 
+-sigaltstack:     valgrind   -q ./sigaltstack 
+-sigkill:         valgrind   ./sigkill 
+-signal2:         valgrind   -q ./signal2 
+-sigprocmask:     valgrind   -q ./sigprocmask 
+-static_malloc:   valgrind   -q --leak-check=full --soname-synonyms=somalloc=NONE ./static_malloc 
+-str_tester:      valgrind   -q ./str_tester 
+-strchr:          valgrind   -q ./strchr 
+-supp-dir:        valgrind   --suppressions=x86/ ./../../tests/true 
+-supp1:           valgrind   --suppressions=supp.supp -q ./supp1 
+-supp2:           valgrind   --suppressions=supp.supp -q ./supp2 
+-supp_unknown:    valgrind   -q --suppressions=supp_unknown.supp ./badjump 
+-sh: line 1: 10008 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --suppressions=supp_unknown.supp ./badjump > supp_unknown.stdout.out 2> supp_unknown.stderr.out
+-*** supp_unknown failed (stderr) ***
+-suppfree:        valgrind   --suppressions=suppfree.supp -q ./suppfree 
+-test-plo-no:     valgrind   -q ./test-plo 
+-test-plo-yes:    (skipping, prereq failed: test ! `../../tests/arch_test ppc32` && ! `../../tests/arch_test ppc64` && ! `../../tests/arch_test s390x`)
+-trivialleak:     valgrind   --leak-check=yes -q ./trivialleak 
+-unit_libcbase:   valgrind   -q ./unit_libcbase 
+-unit_oset:       valgrind   -q ./unit_oset 
+-varinfo1:        valgrind   --read-var-info=yes -q ./varinfo1 
+-varinfo2:        valgrind   --read-var-info=yes -q ./varinfo2 
+-varinfo3:        valgrind   --read-var-info=yes -q ./varinfo3 
+-varinfo4:        valgrind   --read-var-info=yes -q ./varinfo4 
+-varinfo5:        valgrind   --read-var-info=yes -q ./varinfo5 
+-varinfo6:        valgrind   --read-var-info=yes -q ./varinfo6 
+-*** varinfo6 failed (stderr) ***
+-vcpu_bz2:        valgrind   -q ./../../perf/bz2 x
+-vcpu_fbench:     valgrind   -q ./vcpu_fbench 
+-vcpu_fnfns:      valgrind   -q ./vcpu_fnfns 
+-wrap1:           valgrind   -q ./wrap1 
+-wrap2:           valgrind   -q ./wrap2 
+-wrap3:           valgrind   -q ./wrap3 
+-wrap4:           valgrind   -q ./wrap4 
+-wrap5:           valgrind   -q ./wrap5 
+-wrap6:           valgrind   -q ./wrap6 
+-wrap7:           valgrind   -q ./wrap7 
+-wrap8:           valgrind   -q ./wrap8 
+-*** wrap8 failed (stdout) ***
+-*** wrap8 failed (stderr) ***
+-writev1:         valgrind   -q ./writev1 
+-xml1:            valgrind   --xml=yes --xml-fd=2 --log-file=/dev/null ./xml1 
+--- Finished tests in memcheck/tests ------------------------------------
+--- Running  tests in cachegrind/tests ----------------------------------
+-chdir:           valgrind   ./chdir 
+-clreq:           valgrind   -q ./clreq 
+-dlclose:         valgrind   ./dlclose 
+-notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
+-wrap5:           valgrind   ./../../memcheck/tests/wrap5 
+--- Finished tests in cachegrind/tests ----------------------------------
+--- Running  tests in callgrind/tests -----------------------------------
+-clreq:           valgrind    ./clreq 
+-notpower2-hwpref: valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-hwpref=yes ./../../tests/true 
+-notpower2-use:   valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --cacheuse=yes ./../../tests/true 
+-notpower2-wb:    valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 --simulate-wb=yes ./../../tests/true 
+-notpower2:       valgrind   --I1=32768,8,64 --D1=24576,6,64 --LL=3145728,12,64 ./../../tests/true 
+-simwork-both:    valgrind   --cache-sim=yes --branch-sim=yes ./simwork 
+-simwork-branch:  valgrind   --branch-sim=yes ./simwork 
+-simwork-cache:   valgrind   --cache-sim=yes ./simwork 
+-simwork1:        valgrind   --simulate-hwpref=yes ./simwork 
+-simwork2:        valgrind   --simulate-wb=yes --simulate-hwpref=yes ./simwork 
+-simwork3:        valgrind   --cacheuse=yes ./simwork 
+-threads-use:     valgrind   --separate-threads=yes --cacheuse=yes --collect-bus=yes --collect-systime=yes ./threads 
+-threads:         valgrind   --separate-threads=yes --collect-bus=yes ./threads 
+--- Finished tests in callgrind/tests -----------------------------------
+--- Running  tests in massif/tests --------------------------------------
+-alloc-fns-A:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
+-alloc-fns-B:     valgrind   --stacks=no --time-unit=B --heap-admin=0 --alloc-fn=a4 --alloc-fn=b4 --alloc-fn=b3 --alloc-fn=c4 --alloc-fn=c3 --alloc-fn=c2 --alloc-fn=d4 --alloc-fn=d3 --alloc-fn=d2 --alloc-fn=d1 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./alloc-fns 
+-basic:           valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-basic2:          valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --detailed-freq=1 --max-snapshots=10 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-big-alloc:       valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./big-alloc 
+-*** big-alloc failed (post) ***
+-culling1:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling1 
+-culling2:        valgrind   -v -v --stats=yes --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./culling2 
+-custom_alloc:    valgrind   --stacks=no --time-unit=B --heap-admin=16 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./custom_alloc 
+-deep-A:          valgrind   --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-B:          valgrind   --stats=yes --stacks=no --time-unit=B --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-C:          valgrind   --stacks=no --time-unit=B --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 -v -v --stats=yes --depth=8 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-deep-D:          valgrind   --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./deep 
+-*** deep-D failed (post) ***
+-ignored:         valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=ignore1 --ignore-fn=ignore2 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignored 
+-ignoring:        valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./ignoring 
+-insig:           valgrind   --stacks=no --time-unit=B --heap-admin=128 --massif-out-file=massif.out --threshold=0.99 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./insig 
+-long-names:      valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-names 
+-long-time:       valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./long-time 
+-malloc_usable:   valgrind   -q --massif-out-file=massif.out ./malloc_usable 
+-new-cpp:         valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./new-cpp 
+-no-stack-no-heap: valgrind   --stacks=no --heap=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./basic 
+-null:            valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./null 
+-one:             valgrind   --stacks=no --time-unit=B --heap-admin=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./one 
+-overloaded-new:  valgrind   --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./overloaded-new 
+-pages_as_heap:   valgrind   --stacks=no --time-unit=B --heap-admin=0 --pages-as-heap=yes --massif-out-file=massif.out --detailed-freq=3 --ignore-fn=mmap ./pages_as_heap 
+-peak:            valgrind   --stacks=no --time-unit=B --peak-inaccuracy=0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
+-peak2:           valgrind   --stacks=no --time-unit=B -v -v --stats=yes --peak-inaccuracy=10.0 --heap-admin=128 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./peak 
+-realloc:         valgrind   -v -v --stats=yes --stacks=no --heap-admin=0 --time-unit=B --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./realloc 
+-thresholds_0_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_0_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=0 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_10_0: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_10_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=10 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_5_0:  valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-thresholds_5_10: valgrind   --stacks=no --time-unit=B --heap-admin=0 --threshold=5 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./thresholds 
+-zero1:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
+-zero2:           valgrind   --stacks=no --heap-admin=0 --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element ./zero 
+--- Finished tests in massif/tests --------------------------------------
+--- Running  tests in lackey/tests --------------------------------------
+-true:            valgrind   ./../../tests/true 
+--- Finished tests in lackey/tests --------------------------------------
+--- Running  tests in none/tests ----------------------------------------
+-allexec32:       valgrind   --trace-children=yes ./allexec32 exec
+-allexec64:       valgrind   --trace-children=yes ./allexec64 exec
+-ansi:            valgrind   ./ansi 
+-args:            valgrind   ./args a b "1 2 3"
+-async-sigs:      valgrind   -q ./async-sigs 
+-bitfield1:       valgrind   ./bitfield1 
+-bug129866:       valgrind   ./bug129866 
+-closeall:        valgrind   ./closeall 
+-cmd-with-special: valgrind   -q ./'a \<>b' 
+-cmdline0:        valgrind   --version  
+-cmdline1:        valgrind   --help --tool=none  
+-cmdline2:        valgrind   --help-debug --tool=none  
+-cmdline3:        valgrind    
+-cmdline4:        valgrind   --bad-bad-option ./../../tests/true 
+-cmdline5:        valgrind   ./no-such-program-my-friend 
+-cmdline6:        valgrind   ./cmdline6.vgtest 
+-coolo_sigaction: valgrind   ./coolo_sigaction 
+-coolo_strlen:    valgrind   ./coolo_strlen 
+-discard:         valgrind   ./discard 
+-empty-exe:       valgrind    ./empty-exe 
+-exec-sigmask:    valgrind   ./exec-sigmask 
+-execve:          valgrind   ./execve 
+-faultstatus:     valgrind   ./faultstatus 
+-fcntl_setown:    valgrind   ./fcntl_setown 
+-fdleak_cmsg:     valgrind   --track-fds=yes ./fdleak_cmsg < /dev/null
+-fdleak_creat:    valgrind   --track-fds=yes ./fdleak_creat < /dev/null
+-fdleak_dup:      valgrind   --track-fds=yes ./fdleak_dup < /dev/null
+-fdleak_dup2:     valgrind   --track-fds=yes ./fdleak_dup2 < /dev/null
+-fdleak_fcntl:    valgrind   --track-fds=yes ./fdleak_fcntl < /dev/null
+-fdleak_ipv4:     valgrind   --track-fds=yes ./fdleak_ipv4 < /dev/null
+-fdleak_open:     valgrind   --track-fds=yes ./fdleak_open < /dev/null
+-fdleak_pipe:     valgrind   --track-fds=yes ./fdleak_pipe < /dev/null
+-fdleak_socketpair: valgrind   --track-fds=yes ./fdleak_socketpair < /dev/null
+-floored:         valgrind   ./floored 
+-fork:            valgrind   -q ./fork 
+-fucomip:         valgrind   ./fucomip 
+-gxx304:          valgrind   ./gxx304 
+-ifunc:           (skipping, prereq failed: test -e ifunc)
+--- Running  tests in none/tests/linux ----------------------------------
+-blockfault:      valgrind   ./blockfault 
+-sh: line 1: 14512 Segmentation fault      (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=none ./blockfault > blockfault.stdout.out 2> blockfault.stderr.out
+-mremap:          valgrind   ./mremap 
+-mremap2:         valgrind   ./mremap2 
+-mremap3:         valgrind   ./mremap3 
+--- Running  tests in none/tests/linux/utils ----------------------------
+-gcc:             valgrind   --tool=none /usr/bin/gcc ./gcc-test-input.c -o hello-world
+-grep:            valgrind   --tool=none /bin/grep -E "M([a-z])+y" ./grep-test-input.txt
+-head:            valgrind   --tool=none /usr/bin/head --lines=43 ./head-test-input.txt
+-hello, world!
+-hello-world:     valgrind   --tool=none ./hello-world 
+-ls:              valgrind   --tool=none /bin/ls ./ls-test-input.txt
+-wc:              valgrind   --tool=none /usr/bin/wc ./wc-test-input.txt
+--- Finished tests in none/tests/linux/utils ----------------------------
+--- Finished tests in none/tests/linux ----------------------------------
+-manythreads:     valgrind   ./manythreads 
+-map_unaligned:   valgrind   ./map_unaligned 
+-map_unmap:       valgrind   --sanity-level=3 ./map_unmap 
+-mmap_fcntl_bug:  valgrind   -q ./mmap_fcntl_bug 
+-mq:              valgrind   ./mq 
+-munmap_exe:      valgrind   ./munmap_exe 
+-nestedfns:       valgrind   ./nestedfns 
+-nodir:           valgrind   ./nodir.vgtest/foobar 
+-pending:         valgrind   ./pending 
+--- Running  tests in none/tests/ppc32 ----------------------------------
+-bug129390-ppc32: valgrind   -q ./bug129390-ppc32 
+-bug139050-ppc32: valgrind   -q ./bug139050-ppc32 
+-jm-fp:           valgrind   ./jm-insns -f 
+-jm-int:          valgrind   ./jm-insns -i 
+-jm-vmx:          valgrind   ./jm-insns -a 
+-ldstrev:         valgrind   ./ldstrev 
+-lsw:             valgrind   ./lsw 
+-mcrfs:           valgrind   ./mcrfs 
+-mftocrf:         valgrind   ./mftocrf 
+-power5+_round:   valgrind   ./power5+_round 
+-power6_bcmp:     valgrind   ./power6_bcmp 
+-round:           valgrind   ./round 
+-test_dfp1:       valgrind   ./test_dfp1 
+-test_dfp2:       valgrind   ./test_dfp2 
+-test_dfp3:       valgrind   ./test_dfp3 
+-test_dfp4:       valgrind   ./test_dfp4 
+-test_dfp5:       valgrind   ./test_dfp5 
+-test_fx:         valgrind   ./test_fx 
+-test_gx:         valgrind   ./test_gx 
+-test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
+-test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
+-test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
+-testVMX:         valgrind   ./testVMX 
+-tw:              valgrind   ./tw 
+-twi:             valgrind   ./twi 
+-xlc_dbl_u32:     valgrind   ./xlc_dbl_u32 
+--- Finished tests in none/tests/ppc32 ----------------------------------
+--- Running  tests in none/tests/ppc64 ----------------------------------
+-jm-fp:           valgrind   ./jm-insns -f 
+-jm-int:          valgrind   ./jm-insns -i 
+-jm-vmx:          valgrind   ./jm-insns -a 
+-lsw:             valgrind   ./lsw 
+-power6_bcmp:     valgrind   ./power6_bcmp 
+-power6_mf_gpr:   valgrind   ./power6_mf_gpr 
+-round:           valgrind   ./round 
+-std_reg_imm:     valgrind   -q ./std_reg_imm 
+-test_dfp1:       valgrind   ./test_dfp1 
+-test_dfp2:       valgrind   ./test_dfp2 
+-test_dfp3:       valgrind   ./test_dfp3 
+-test_dfp4:       valgrind   ./test_dfp4 
+-test_dfp5:       valgrind   ./test_dfp5 
+-test_isa_2_06_part1: valgrind   ./test_isa_2_06_part1 
+-test_isa_2_06_part2: valgrind   ./test_isa_2_06_part2 
+-test_isa_2_06_part3: valgrind   ./test_isa_2_06_part3 
+-tw_td:           valgrind   ./tw_td 
+-twi_tdi:         valgrind   ./twi_tdi 
+--- Finished tests in none/tests/ppc64 ----------------------------------
+-process_vm_readv_writev: valgrind   ./process_vm_readv_writev 
+-procfs-linux:    valgrind   ./procfs-cmdline-exe arg1 "arg 2" arg3
+-procfs-non-linux: (skipping, prereq failed: [ $(uname) != Linux ])
+-pth_atfork1:     valgrind   ./pth_atfork1 
+-pth_blockedsig:  valgrind   ./pth_blockedsig 
+-pth_cancel1:     valgrind   ./pth_cancel1 
+-pth_cancel2:     valgrind   ./pth_cancel2 
+-pth_cvsimple:    valgrind   ./pth_cvsimple 
+-pth_empty:       valgrind   ./pth_empty 
+-pth_exit:        valgrind   ./pth_exit 
+-pth_exit2:       valgrind   ./pth_exit2 
+-pth_mutexspeed:  valgrind   ./pth_mutexspeed 
+-pth_once:        valgrind   ./pth_once 
+-pth_rwlock:      valgrind   ./pth_rwlock 
+-pth_stackalign:  valgrind   ./pth_stackalign 
+-rcrl:            valgrind   ./rcrl 
+-readline1:       valgrind   ./readline1 
+-require-text-symbol-1: valgrind   -q "--require-text-symbol=:*libc.so*:strl?n" ./require-text-symbol 
+-require-text-symbol-2: valgrind   -q "--require-text-symbol=:*libc.so*:doesntexist" --vgdb-prefix=./vgdb-prefix-require-text-symbol-2 ./require-text-symbol 
+-res_search:      valgrind   -q ./res_search www.yahoo.com
+-resolv:          valgrind   ./resolv 
+-rlimit64_nofile: valgrind   ./rlimit64_nofile 
+-rlimit_nofile:   valgrind   ./rlimit_nofile 
+-selfrun:         (skipping, prereq failed: grep '^#define HAVE_PIE 1' ../../config.h > /dev/null)
+-sem:             valgrind   ./sem 
+-semlimit:        valgrind   ./semlimit 
+-sha1_test:       valgrind   ./sha1_test 
+-shell:           valgrind   -q ./shell 
+-shell_badinterp: valgrind   ./shell_badinterp 
+-shell_binaryfile: valgrind   ./shell_binaryfile 
+-shell_dir:       valgrind   ./x86/ 
+-*** shell_dir failed (stderr) ***
+-shell_nonexec:   valgrind   ./shell.vgtest 
+-shell_nosuchfile: valgrind   ./shell_nosuchfile 
+-shell_valid1:    valgrind   -q ./shell_valid1 
+-shell_valid2:    valgrind   -q ./shell_valid2 
+-shell_valid3:    valgrind   -q ./shell_valid3 
+-shell_zerolength: valgrind   -q ./shell_zerolength 
+-shortpush:       valgrind   ./shortpush 
+-shorts:          valgrind   ./shorts 
+-sigstackgrowth:  valgrind   --sanity-level=3 ./sigstackgrowth 
+-stackgrowth:     valgrind   --sanity-level=3 ./stackgrowth 
+-syscall-restart1: valgrind   ./syscall-restart1 
+-syscall-restart2: valgrind   ./syscall-restart2 
+-syslog:          valgrind   -q ./syslog 
+-system:          valgrind   ./system 
+-thread-exits:    valgrind   ./thread-exits 
+-threaded-fork:   valgrind   ./threaded-fork 
+-threadederrno:   valgrind   -q ./threadederrno 
+-timestamp:       valgrind   --time-stamp=yes ./timestamp 
+-tls:             valgrind   ./tls 
+-vgprintf:        valgrind   ./vgprintf 
+--- Finished tests in none/tests ----------------------------------------
+--- Running  tests in helgrind/tests ------------------------------------
+-annotate_hbefore: valgrind   -q --fair-sched=try ./annotate_hbefore 
+-annotate_rwlock: valgrind   -q ./annotate_rwlock 
+-annotate_smart_pointer: valgrind   ./../../drd/tests/annotate_smart_pointer 50 5
+-bar_bad:         valgrind   -q ./bar_bad 
+-bar_trivial:     valgrind   -q ./bar_trivial 
+-cond_timedwait_invalid: valgrind   ./cond_timedwait_invalid 
+-free_is_write:   valgrind   --free-is-write=yes ./free_is_write 
+-hg01_all_ok:     valgrind   ./hg01_all_ok 
+-hg02_deadlock:   valgrind   ./hg02_deadlock 
+-hg03_inherit:    valgrind   --read-var-info=yes ./hg03_inherit 
+-hg04_race:       valgrind   --read-var-info=yes ./hg04_race 
+-hg05_race2:      valgrind   --read-var-info=yes ./hg05_race2 
+-hg06_readshared: valgrind   ./hg06_readshared 
+-locked_vs_unlocked1_fwd: valgrind   -q ./locked_vs_unlocked1 
+-locked_vs_unlocked1_rev: valgrind   -q ./locked_vs_unlocked1 x
+-locked_vs_unlocked2: valgrind   -q ./locked_vs_unlocked2 
+-locked_vs_unlocked3: valgrind   -q ./locked_vs_unlocked3 
+-pth_barrier1:    valgrind   -q ./../../drd/tests/pth_barrier 2 1 1
+-pth_barrier2:    valgrind   -q --cmp-race-err-addrs=yes ./../../drd/tests/pth_barrier 2 32 1
+-pth_barrier3:    valgrind   -q ./../../drd/tests/pth_barrier 32 1 1
+-pth_destroy_cond: valgrind   -q ./pth_destroy_cond 
+-pth_spinlock:    (skipping, prereq failed: false)
+-rwlock_race:     valgrind   --read-var-info=yes ./../../drd/tests/rwlock_race 
+-rwlock_test:     valgrind   ./../../drd/tests/rwlock_test 
+-t2t_laog:        valgrind   ./t2t 30 10 4
+-tc01_simple_race: valgrind   --read-var-info=yes ./tc01_simple_race 
+-tc02_simple_tls: valgrind   ./tc02_simple_tls 
+-tc03_re_excl:    valgrind   ./tc03_re_excl 
+-tc04_free_lock:  valgrind   ./tc04_free_lock 
+-tc05_simple_race: valgrind   --read-var-info=yes ./tc05_simple_race 
+-tc06_two_races:  valgrind   --read-var-info=yes ./tc06_two_races 
+-tc06_two_races_xml: valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --log-file=/dev/null ./tc06_two_races 
+-tc07_hbl1:       valgrind   ./tc07_hbl1 
+-tc08_hbl2:       valgrind   ./tc08_hbl2 
+-tc09_bad_unlock: valgrind   ./tc09_bad_unlock 
+-tc10_rec_lock:   valgrind   ./tc10_rec_lock 
+-tc11_XCHG:       valgrind   ./tc11_XCHG 
+-tc12_rwl_trivial: valgrind   ./tc12_rwl_trivial 
+-tc13_laog1:      valgrind   ./tc13_laog1 
+-tc14_laog_dinphils: valgrind   ./tc14_laog_dinphils 
+-tc15_laog_lockdel: valgrind   ./tc15_laog_lockdel 
+-tc16_byterace:   valgrind   --read-var-info=yes ./tc16_byterace 
+-tc17_sembar:     valgrind   ./tc17_sembar 
+-tc18_semabuse:   valgrind   ./tc18_semabuse 
+-*** tc18_semabuse failed (stderr) ***
+-tc19_shadowmem:  valgrind   --cmp-race-err-addrs=yes --error-limit=no ./tc19_shadowmem 
+-tc20_verifywrap: valgrind   --read-var-info=yes ./tc20_verifywrap 
+-*** tc20_verifywrap failed (stderr) ***
+-tc21_pthonce:    valgrind   --read-var-info=yes ./tc21_pthonce 
+-tc22_exit_w_lock: valgrind   ./tc22_exit_w_lock 
+-sh: line 1: 32162 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=helgrind ./tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+-tc23_bogus_condwait: valgrind   ./tc23_bogus_condwait 
+-tc24_nonzero_sem: valgrind   --hg-sanity-flags=111111 ./tc24_nonzero_sem 
+--- Finished tests in helgrind/tests ------------------------------------
+--- Running  tests in drd/tests -----------------------------------------
+-annotate_barrier: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./annotate_barrier 2 1 1 
+-annotate_barrier_xml: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 --xml=yes --xml-fd=2 ./annotate_barrier 2 1 1 
+-annotate_hb_err: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_hb_err 
+-annotate_hb_race: valgrind   --check-stack-var=yes --show-confl-seg=no ./annotate_hb_race 
+-annotate_hbefore: valgrind   --fair-sched=try --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_hbefore 
+-annotate_ignore_read: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 69
+-annotate_ignore_rw: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw 
+-annotate_ignore_rw2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_rw -r
+-annotate_ignore_write: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write 
+-annotate_ignore_write2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_ignore_write -r
+-annotate_order_1: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 3
+-annotate_order_2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 30
+-annotate_order_3: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 31
+-annotate_publish_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_publish_hg 
+-annotate_rwlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_rwlock 
+-annotate_rwlock_hg: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./../../helgrind/tests/annotate_rwlock 
+-annotate_smart_pointer: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 50 5
+-annotate_smart_pointer2: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_smart_pointer 1 1 0
+-annotate_spinlock: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./tsan_unittest 27
+-annotate_static: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./annotate_static 
+-annotate_trace_memory: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
+-annotate_trace_memory_xml: (skipping, prereq failed: test -e annotate_trace_memory && ./supported_libpthread)
+-atomic_var:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2 ./atomic_var 
+-bar_bad:         valgrind   ./../../helgrind/tests/bar_bad 
+-bar_bad_xml:     valgrind   --xml=yes --xml-fd=2 ./../../helgrind/tests/bar_bad 
+-bar_trivial:     valgrind   ./../../helgrind/tests/bar_trivial 
+-boost_thread:    (skipping, prereq failed: test -e boost_thread)
+-bug-235681:      valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=3 ./bug-235681 -q
+-circular_buffer: valgrind   ./circular_buffer -q
+-custom_alloc:    valgrind   ./custom_alloc 
+-custom_alloc_fiw: valgrind   --free-is-write=yes ./custom_alloc 
+-fp_race:         valgrind   --read-var-info=yes ./fp_race 
+-fp_race2:        valgrind   ./fp_race -m
+-fp_race_xml:     valgrind   --read-var-info=yes --xml=yes --xml-fd=2 --trace-fork-join=yes ./fp_race 
+-free_is_write:   valgrind   --read-var-info=yes --free-is-write=yes --show-confl-seg=no ./free_is_write -q
+-free_is_write2:  valgrind   --read-var-info=yes --free-is-write=yes --check-stack-var=yes --show-confl-seg=no ./free_is_write -q
+-hg01_all_ok:     valgrind   ./../../helgrind/tests/hg01_all_ok 
+-hg02_deadlock:   valgrind   ./../../helgrind/tests/hg02_deadlock 
+-hg03_inherit:    valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg03_inherit 
+-hg04_race:       valgrind   --read-var-info=yes --num-callers=2 ./../../helgrind/tests/hg04_race 
+-hg05_race2:      valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=2 ./../../helgrind/tests/hg05_race2 
+-hg06_readshared: valgrind   ./../../helgrind/tests/hg06_readshared 
+-hold_lock_1:     valgrind   --exclusive-threshold=500 --shared-threshold=2000 ./hold_lock -i 1000
+-hold_lock_2:     valgrind   --exclusive-threshold=2000 --shared-threshold=500 ./hold_lock -i 1000
+-linuxthreads_det: valgrind   --read-var-info=yes ./linuxthreads_det 
+-matinv:          valgrind   ./matinv 30 -t 15 -q
+-memory_allocation: valgrind   ./memory_allocation 
+-monitor_example: valgrind   ./monitor_example 
+-new_delete:      valgrind   ./new_delete 
+-omp_matinv:      (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
+-omp_matinv_racy: (skipping, prereq failed: ./run_openmp_test ./omp_matinv)
+-omp_prime_racy:  (skipping, prereq failed: ./run_openmp_test ./omp_prime)
+-omp_printf:      (skipping, prereq failed: ./run_openmp_test ./omp_printf)
+-pth_barrier:     valgrind   ./pth_barrier 2 1 1
+-pth_barrier2:    valgrind   ./pth_barrier 2 32 1
+-pth_barrier3:    valgrind   ./pth_barrier 32 1 1
+-pth_barrier_race: valgrind   --num-callers=3 ./pth_barrier_race 
+-pth_barrier_reinit: valgrind   ./pth_barrier_reinit 
+-pth_barrier_thr_cr: valgrind   --suppressions=pth_barrier_thr_cr.supp ./pth_barrier_thr_cr 50
+-pth_broadcast:   valgrind   ./pth_broadcast 
+-pth_cancel_locked: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cancel_locked 
+-pth_cleanup_handler: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_cleanup_handler 
+-pth_cond_race:   valgrind   --num-callers=3 ./pth_cond_race 
+-pth_cond_race2:  valgrind   ./pth_cond_race -m
+-pth_cond_race3:  valgrind   --report-signal-unlocked=no ./pth_cond_race 
+-pth_create_chain: (skipping, prereq failed: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ])
+-pth_create_glibc_2_0: (skipping, prereq failed: test -e pth_create_glibc_2_0 && ./supported_libpthread)
+-pth_detached:    valgrind   ./pth_detached 1 1
+-pth_detached2:   valgrind   --read-var-info=yes ./pth_detached 10 10
+-pth_detached3:   valgrind   ./pth_detached3 
+-pth_detached_sem: valgrind   ./pth_detached_sem 10 10
+-pth_inconsistent_cond_wait: valgrind   --num-callers=3 ./pth_inconsistent_cond_wait -q
+-pth_mutex_reinit: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_mutex_reinit 
+-pth_once:        valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./tsan_unittest 106
+-pth_process_shared_mutex: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_process_shared_mutex 
+-pth_spinlock:    valgrind   --read-var-info=yes --check-stack-var=yes ./pth_spinlock 
+-pth_uninitialized_cond: valgrind   --read-var-info=yes --check-stack-var=yes ./pth_uninitialized_cond 
+-read_and_free_race: valgrind   --free-is-write=yes --num-callers=3 --show-confl-seg=no ./../../helgrind/tests/free_is_write 
+-recursive_mutex: valgrind   --check-stack-var=yes --read-var-info=yes ./recursive_mutex 
+-rwlock_race:     valgrind   --show-confl-seg=no --read-var-info=yes --num-callers=2 ./rwlock_race 
+-rwlock_test:     valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./rwlock_test 
+-rwlock_type_checking: valgrind   --read-var-info=yes --check-stack-var=yes --show-confl-seg=no ./rwlock_type_checking 
+-sem_as_mutex:    valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex 
+-sem_as_mutex2:   valgrind   --check-stack-var=yes --read-var-info=yes ./sem_as_mutex -m
+-sem_as_mutex3:   valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_as_mutex 
+-sem_open:        valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open 
+-sem_open2:       valgrind   --check-stack-var=yes --read-var-info=yes ./sem_open -m
+-*** sem_open2 failed (stderr) ***
+-sem_open3:       valgrind   --check-stack-var=yes --first-race-only=yes --read-var-info=yes ./sem_open 
+-sem_open_traced: valgrind   --check-stack-var=yes --read-var-info=yes --trace-semaphore=yes ./sem_open -m
+-*** sem_open_traced failed (stderr) ***
+-sigalrm:         valgrind   ./sigalrm 
+-sigaltstack:     valgrind   -q ./../../memcheck/tests/sigaltstack 
+-std_thread:      (skipping, prereq failed: false && test -e std_thread && ./supported_libpthread)
+-tc01_simple_race: valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc01_simple_race 
+-tc02_simple_tls: valgrind   ./../../helgrind/tests/tc02_simple_tls 
+-tc03_re_excl:    valgrind   ./../../helgrind/tests/tc03_re_excl 
+-tc04_free_lock:  valgrind   --check-stack-var=yes ./../../helgrind/tests/tc04_free_lock 
+-tc05_simple_race: valgrind   ./../../helgrind/tests/tc05_simple_race 
+-tc06_two_races:  valgrind   ./../../helgrind/tests/tc06_two_races 
+-tc07_hbl1:       valgrind   ./../../helgrind/tests/tc07_hbl1 
+-tc08_hbl2:       valgrind   ./../../helgrind/tests/tc08_hbl2 
+-tc09_bad_unlock: valgrind   --check-stack-var=yes --num-callers=3 ./../../helgrind/tests/tc09_bad_unlock 
+-tc10_rec_lock:   valgrind   ./../../helgrind/tests/tc10_rec_lock 
+-tc11_XCHG:       valgrind   ./../../helgrind/tests/tc11_XCHG 
+-tc12_rwl_trivial: valgrind   ./../../helgrind/tests/tc12_rwl_trivial 
+-tc13_laog1:      valgrind   ./../../helgrind/tests/tc13_laog1 
+-tc15_laog_lockdel: valgrind   ./../../helgrind/tests/tc15_laog_lockdel 
+-tc16_byterace:   valgrind   --check-stack-var=yes --read-var-info=yes --show-confl-seg=no ./../../helgrind/tests/tc16_byterace 
+-tc17_sembar:     valgrind   ./../../helgrind/tests/tc17_sembar 
+-tc18_semabuse:   valgrind   ./../../helgrind/tests/tc18_semabuse 
+-tc19_shadowmem:  valgrind   --error-limit=no --read-var-info=yes --show-confl-seg=no --num-callers=3 ./../../helgrind/tests/tc19_shadowmem 
+-tc21_pthonce:    valgrind   --num-callers=3 ./../../helgrind/tests/tc21_pthonce 
+-tc22_exit_w_lock: valgrind   --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock 
+-sh: line 1:  5235 Aborted                 (core dumped) VALGRIND_LIB=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place VALGRIND_LIB_INNER=/proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/.in_place /proj/.ppc_DT_labhome/labhome/anmol/valgrind-3.8.1/./coregrind/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=drd --num-callers=3 ./../../helgrind/tests/tc22_exit_w_lock > tc22_exit_w_lock.stdout.out 2> tc22_exit_w_lock.stderr.out
+-tc23_bogus_condwait: valgrind   --num-callers=3 ./../../helgrind/tests/tc23_bogus_condwait 
+-tc24_nonzero_sem: valgrind   --read-var-info=yes ./../../helgrind/tests/tc24_nonzero_sem 
+-thread_name:     valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 ./thread_name 
+-thread_name_xml: valgrind   --read-var-info=yes --check-stack-var=yes --num-callers=3 --xml=yes --xml-fd=2 ./thread_name 
+-threaded-fork:   valgrind   ./threaded-fork 
+-trylock:         valgrind   ./trylock 
+-unit_bitmap:     valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_bitmap -s 93 -t 97 -q
+-unit_vc:         valgrind   -q --tool=memcheck --leak-check=full --show-reachable=yes ./unit_vc 
+--- Finished tests in drd/tests -----------------------------------------
+--- Running  tests in exp-sgcheck/tests ---------------------------------
+-bad_percentify:  (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-globalerr:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-hackedbz2:       (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-hsg:             (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-preen_invars:    (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+-stackerr:        (skipping, prereq failed: ./is_arch_supported && ../../tests/os_test linux)
+--- Finished tests in exp-sgcheck/tests ---------------------------------
+--- Running  tests in exp-bbv/tests/ppc32-linux -------------------------
+-ll:              valgrind   --interval-size=1000 --bb-out-file=ll.out.bb ./ll 
+-million:         valgrind   --interval-size=100000 --bb-out-file=million.out.bb ./million  
+--- Finished tests in exp-bbv/tests/ppc32-linux -------------------------
+-
+-== 535 tests, 10 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures ==
+-gdbserver_tests/mcmain_pic               (stdout)
+-gdbserver_tests/mcmain_pic               (stderr)
+-gdbserver_tests/mcmain_pic               (stdoutB)
+-gdbserver_tests/mcmain_pic               (stderrB)
+-memcheck/tests/linux/timerfd-syscall     (stderr)
+-memcheck/tests/supp_unknown              (stderr)
+-memcheck/tests/varinfo6                  (stderr)
+-memcheck/tests/wrap8                     (stdout)
+-memcheck/tests/wrap8                     (stderr)
+-massif/tests/big-alloc                   (post)
+-massif/tests/deep-D                      (post)
+-none/tests/shell_dir                     (stderr)
+-helgrind/tests/tc18_semabuse             (stderr)
+-helgrind/tests/tc20_verifywrap           (stderr)
+-drd/tests/sem_open2                      (stderr)
+-drd/tests/sem_open_traced                (stderr)
+-
+-make: *** [regtest] Error 1
+diff --git a/valgrind.spec b/valgrind.spec
+index 6d6c1cf..484426d 100644
+--- a/valgrind.spec
++++ b/valgrind.spec
+@@ -1,13 +1,13 @@
+ Summary: Valgrind Memory Debugger
+ Name: valgrind
+-Version: 3.8.1
++Version: 3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
+ Release: 1
+ Epoch: 1
+ License: GPL
+ URL: http://www.valgrind.org/
+ Group: Development/Debuggers
+ Packager: Julian Seward <jseward at acm.org>
+-Source: valgrind-3.8.1.tar.bz2
++Source: valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013.tar.bz2
+ 
+ Buildroot: %{_tmppath}/%{name}-root
+ 
+@@ -21,7 +21,7 @@ platforms: x86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux, x86/MacOSX,
+ AMD64/MacOSX.
+ 
+ %prep
+-%setup -n valgrind-3.8.1
++%setup -n valgrind-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080638-PDT-2013
+ 
+ %build
+ %configure
+diff --git a/docs/index.pdf b/valgrind_manual.pdf
+similarity index 100%
+rename from docs/index.pdf
+rename to valgrind_manual.pdf
+diff --git a/docs/index.ps b/valgrind_manual.ps
+similarity index 100%
+rename from docs/index.ps
+rename to valgrind_manual.ps
+-- 
+1.7.3.4
+
diff --git a/recipes-devtools/valgrind/files/configure-with-newer-glibc.patch b/recipes-devtools/valgrind/files/configure-with-newer-glibc.patch
new file mode 100644
index 0000000..d3cea23
--- /dev/null
+++ b/recipes-devtools/valgrind/files/configure-with-newer-glibc.patch
@@ -0,0 +1,41 @@
+Add case for glibc 2.16 and correct error message to denote support until 2.16
+
+Signed-off-by: Khem Raj <raj.khem at gmail.com>
+Signed-off-by: Saul Wold <sgw at linux.intel.com>
+Signed-off-by: Radu Moisan <radu.moisan at intel.com>
+
+Upstream-Status: Pending
+Index: valgrind-3.8.1/configure.in
+===================================================================
+--- valgrind-3.8.1.orig/configure.in
++++ valgrind-3.8.1/configure.in
+@@ -910,6 +910,20 @@ case "${GLIBC_VERSION}" in
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.16)
++	AC_MSG_RESULT(2.16 family)
++	AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
++     2.17)
++	AC_MSG_RESULT(2.17 family)
++	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
+@@ -923,7 +937,7 @@ case "${GLIBC_VERSION}" in
+ 
+      *)
+ 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
+ 	AC_MSG_ERROR([or Darwin libc])
+ 	;;
+ esac
diff --git a/recipes-devtools/valgrind/files/fix-out-of-tree-builds-with-newer-glibc.patch b/recipes-devtools/valgrind/files/fix-out-of-tree-builds-with-newer-glibc.patch
new file mode 100644
index 0000000..0f919ac
--- /dev/null
+++ b/recipes-devtools/valgrind/files/fix-out-of-tree-builds-with-newer-glibc.patch
@@ -0,0 +1,37 @@
+From b24c89b6645611af1e424d0b4acdabf5d5b12f8c Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495 at freescale.com>
+Date: Thu, 4 Jul 2013 11:18:40 +0800
+Subject: [PATCH] fix out of tree builds
+
+Signed-off-by: Ting Liu <b28495 at freescale.com>
+---
+ configure.in |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index b682c41..ce419df 100644
+--- a/configure.in
++++ b/configure.in
+@@ -910,15 +910,15 @@ case "${GLIBC_VERSION}" in
+ 	AC_MSG_RESULT(2.16 family)
+ 	AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.17)
+ 	AC_MSG_RESULT(2.17 family)
+ 	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+-- 
+1.7.5.4
+
diff --git a/recipes-devtools/valgrind/files/glibc.patch b/recipes-devtools/valgrind/files/glibc.patch
new file mode 100644
index 0000000..71b1e39
--- /dev/null
+++ b/recipes-devtools/valgrind/files/glibc.patch
@@ -0,0 +1,35 @@
+Backport of glibc 2.18 and 2.19 and 2.21 support.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton at intel.com>
+
+--- valgrind-3.8.1/configure.in	2015-04-23 01:44:07.275992323 -0500
++++ valgrind-3.8.1/configure.in	2015-04-23 01:56:22.951966065 -0500
+@@ -920,6 +920,27 @@
+ 	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.18)
++	AC_MSG_RESULT(2.18 family)
++	AC_DEFINE([GLIBC_2_18], 1, [Define to 1 if you're using glibc 2.18.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
++     2.19)
++	AC_MSG_RESULT(2.19 family)
++	AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
++     2.21)
++    AC_MSG_RESULT(2.21 family)
++    AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.21.x])
++    DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++    DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++    DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++    ;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
diff --git a/recipes-devtools/valgrind/files/valgrind-3.8.1-Bug-308573.patch b/recipes-devtools/valgrind/files/valgrind-3.8.1-Bug-308573.patch
new file mode 100644
index 0000000..71ac8be
--- /dev/null
+++ b/recipes-devtools/valgrind/files/valgrind-3.8.1-Bug-308573.patch
@@ -0,0 +1,105 @@
+Valgrind, ppc:  Fix missing checks for 64-bit instructions operating in 32-b mode
+
+A number of the POWER instructions are only intended to run on 64-bit
+hardware.  These instructions will give a SIGILL instruction on 32-bit
+hardware.  The check for 32-bit mode on some of these instructions is
+missing.  Although, the 64-bit hardware will execute these instructions
+on 64-bit hardware without generating a SIGILL the use of these
+instructions in 32-bit mode on 64-bit hardware is typically indicative of
+a programming error. There are cases where these instructions are used
+to determine if the code is running on 32-bit hardware or not.  In these
+cases, the instruction needs to generate a SIGILL for the error handler
+to properly determine the hardware is running in 32-bit mode.
+
+This patch adds the 32-bit mode check for those 64-bit instructions that
+do not have the check.  If the check fails, the instruction is flagged
+as an unsupported instruction and a SIGILL message is generated.
+
+This patch does not fix or add an errors to the regression test suite.
+
+Signed-off-by: Carl Love <cel at us.ibm.com>
+---
+ VEX/priv/guest_ppc_toIR.c | 33 +++++++++++++++++++++++++++------
+ 1 file changed, 27 insertions(+), 6 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index f7d8d0f..035bf86 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -20182,6 +20182,7 @@ DisResult disInstr_PPC_WRK (
+ 
+    /* 64bit Integer Rotate Instructions */
+    case 0x1E: // rldcl, rldcr, rldic, rldicl, rldicr, rldimi
++      if (!mode64) goto decode_failure;
+       if (dis_int_rot( theInstr )) goto decode_success;
+       goto decode_failure;
+ 
+@@ -20216,7 +20217,12 @@ DisResult disInstr_PPC_WRK (
+       goto decode_failure;
+ 
+    /* Trap Instructions */
+-   case 0x02: case 0x03: // tdi, twi
++   case 0x02:    // tdi
++      if (!mode64) goto decode_failure;
++      if (dis_trapi(theInstr, &dres)) goto decode_success;
++      goto decode_failure;
++
++   case 0x03:   // twi
+       if (dis_trapi(theInstr, &dres)) goto decode_success;
+       goto decode_failure;
+ 
+@@ -20817,7 +20823,12 @@ DisResult disInstr_PPC_WRK (
+          goto decode_failure;
+ 
+          /* 64bit Integer Parity Instructions */
+-      case 0xba: case 0x9a: // prtyd, prtyw
++      case 0xba: // prtyd
++         if (!mode64) goto decode_failure;
++         if (dis_int_parity( theInstr )) goto decode_success;
++         goto decode_failure;
++
++      case 0x9a: // prtyw
+          if (dis_int_parity( theInstr )) goto decode_success;
+          goto decode_failure;
+ 
+@@ -20862,9 +20873,13 @@ DisResult disInstr_PPC_WRK (
+          goto decode_failure;
+ 
+       /* Integer Load and Store with Byte Reverse Instructions */
+-      case 0x316: case 0x216: case 0x396: // lhbrx, lwbrx, sthbrx
+-      case 0x296: case 0x214:             // stwbrx, ldbrx
+-      case 0x294:                         // stdbrx
++      case 0x214: case 0x294: // ldbrx, stdbrx
++         if (!mode64) goto decode_failure;
++         if (dis_int_ldst_rev( theInstr )) goto decode_success;
++         goto decode_failure;
++
++      case 0x216: case 0x316: case 0x296:    // lwbrx, lhbrx, stwbrx
++      case 0x396:                            // sthbrx
+          if (dis_int_ldst_rev( theInstr )) goto decode_success;
+          goto decode_failure;
+          
+@@ -20914,7 +20929,12 @@ DisResult disInstr_PPC_WRK (
+ //zz          goto decode_failure;
+ 
+       /* Trap Instructions */
+-      case 0x004: case 0x044:             // tw,   td
++      case 0x004:             // tw
++         if (dis_trap(theInstr, &dres)) goto decode_success;
++         goto decode_failure;
++
++      case 0x044:             // td
++         if (!mode64) goto decode_failure;
+          if (dis_trap(theInstr, &dres)) goto decode_success;
+          goto decode_failure;
+ 
+@@ -21008,6 +21028,7 @@ DisResult disInstr_PPC_WRK (
+     	  goto decode_failure;
+ 
+       case 0x0FC: // bpermd
++         if (!mode64) goto decode_failure;
+          if (dis_int_logic( theInstr )) goto decode_success;
+          goto decode_failure;
+ 
+-- 
+1.7.11.4
diff --git a/recipes-devtools/valgrind/files/valgrind-3.8.1-sepbuildfix.patch b/recipes-devtools/valgrind/files/valgrind-3.8.1-sepbuildfix.patch
new file mode 100644
index 0000000..b4349da
--- /dev/null
+++ b/recipes-devtools/valgrind/files/valgrind-3.8.1-sepbuildfix.patch
@@ -0,0 +1,209 @@
+Fix out of tree builds. The paths to these files need to be fully specified in
+the out of tree build case. glibc-2.X.supp is a generated file so the full path
+is deliberately not specified in that case.
+
+Zhenhua Luo - 2013/05/27
+
+Upstream-Status: Pending
+
+--- valgrind-3.8.1/configure.in.orig	2013-05-27 08:41:35.944336786 -0500
++++ valgrind-3.8.1/configure.in	2013-05-27 08:53:28.043118147 -0500
+@@ -312,26 +312,26 @@
+ 	     9.*)
+ 		  AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
+ 		  AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
+-		  DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}"
+-		  DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}"
+ 		  ;;
+ 	     10.*)
+ 		  AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
+ 		  AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version])
+-		  DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
+-		  DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
+ 		  ;;
+ 	     11.*)
+ 		  AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
+ 		  AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
+-		  DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
+-		  DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
+ 		  ;;
+ 	     12.*)
+ 		  AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
+ 		  AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version])
+-		  DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}"
+-		  DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}"
++		  DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
+ 		  ;;
+              *) 
+ 		  AC_MSG_RESULT([unsupported (${kernel})])
+@@ -802,109 +802,109 @@
+ 	AC_MSG_RESULT(2.2 family)
+ 	AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
+ 	DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
+      2.3)
+ 	AC_MSG_RESULT(2.3 family)
+ 	AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
+ 	DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
+      2.4)
+ 	AC_MSG_RESULT(2.4 family)
+ 	AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
+ 	DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
+      2.5)
+ 	AC_MSG_RESULT(2.5 family)
+ 	AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
+ 	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.6)
+ 	AC_MSG_RESULT(2.6 family)
+ 	AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
+ 	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.7)
+ 	AC_MSG_RESULT(2.7 family)
+ 	AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.8)
+ 	AC_MSG_RESULT(2.8 family)
+ 	AC_DEFINE([GLIBC_2_8], 1, [Define to 1 if you're using glibc 2.8.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.9)
+ 	AC_MSG_RESULT(2.9 family)
+ 	AC_DEFINE([GLIBC_2_9], 1, [Define to 1 if you're using glibc 2.9.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.10)
+ 	AC_MSG_RESULT(2.10 family)
+ 	AC_DEFINE([GLIBC_2_10], 1, [Define to 1 if you're using glibc 2.10.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.11)
+ 	AC_MSG_RESULT(2.11 family)
+ 	AC_DEFINE([GLIBC_2_11], 1, [Define to 1 if you're using glibc 2.11.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+         ;;
+      2.12)
+ 	AC_MSG_RESULT(2.12 family)
+ 	AC_DEFINE([GLIBC_2_12], 1, [Define to 1 if you're using glibc 2.12.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.13)
+ 	AC_MSG_RESULT(2.13 family)
+ 	AC_DEFINE([GLIBC_2_13], 1, [Define to 1 if you're using glibc 2.13.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.14)
+ 	AC_MSG_RESULT(2.14 family)
+ 	AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.15)
+ 	AC_MSG_RESULT(2.15 family)
+ 	AC_DEFINE([GLIBC_2_15], 1, [Define to 1 if you're using glibc 2.15.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      2.16)
+ 	AC_MSG_RESULT(2.16 family)
+ 	AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
+ 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+@@ -914,7 +914,7 @@
+      bionic)
+ 	AC_MSG_RESULT(Bionic)
+ 	AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
+-	DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="$srcdir/bionic.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
+      *)
+@@ -931,11 +931,11 @@
+ # attempt to detect whether such libraries are installed on the
+ # build machine (or even if any X facilities are present); just
+ # add the suppressions antidisirregardless.
+-DEFAULT_SUPP="xfree-4.supp ${DEFAULT_SUPP}"
+-DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}"
++DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}"
++DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}"
+ 
+ # Add glibc and X11 suppressions for exp-sgcheck
+-DEFAULT_SUPP="exp-sgcheck.supp ${DEFAULT_SUPP}"
++DEFAULT_SUPP="$srcdir/exp-sgcheck.supp ${DEFAULT_SUPP}"
+ 
+ 
+ #----------------------------------------------------------------------------
diff --git a/recipes-devtools/valgrind/valgrind-qoriq_3.8.1.bb b/recipes-devtools/valgrind/valgrind-qoriq_3.8.1.bb
new file mode 100644
index 0000000..0acfb72
--- /dev/null
+++ b/recipes-devtools/valgrind/valgrind-qoriq_3.8.1.bb
@@ -0,0 +1,103 @@
+DESCRIPTION = "Valgrind memory debugger"
+HOMEPAGE = "http://valgrind.org/"
+LICENSE = "GPLv2 & GPLv2+ & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c46082167a314d785d012a244748d803"
+
+PV_append = "+fsl"
+
+SRC_URI = "http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2 \
+    file://0001-Baseline.patch \
+    file://0002-Configure-for-SPE-on-an-SPE-machine.patch \
+    file://0003-Declare-the-64-bit-SPE-GPR-s-to-the-PPC32-guest-stat.patch \
+    file://0004-Power-ISA-V2.06B-V2-Sec.-1.6.24-EVX-FORM-extractors.patch \
+    file://0005-Extend-addr_align-for-double-word-alignment.patch \
+    file://0006-Implement-SPE-Instructions-evldd-evstdd-evxor-base-f.patch \
+    file://0007-Implement-SPE-Instructions-evlddx-evstddx.patch \
+    file://0008-Implement-SPE-Instructions-evldh-evstdh.patch \
+    file://0009-Create-data-pools-per-__ev64_-__-integer-type-and-an.patch \
+    file://0010-Implement-SPE-Instructions-evor-evmr.patch \
+    file://0011-Implement-SPE-Instructions-evldhx-evstdhx-evldw-evst.patch \
+    file://0012-Re-Implement-SPE-Instructions-evldd-evstdd-evlddx-ev.patch \
+    file://0013-Remove-some-of-the-verbosity-in-the-test-reporting.patch \
+    file://0014-Create-a-data-pool-of-word-values-and-macros-for-get.patch \
+    file://0015-Implement-SPE-Instructions-evlwhe-evstwhe-evlwhex-ev.patch \
+    file://0016-Implement-SPE-Instructions-evlwhos-evlwhosx-evlwhou-.patch \
+    file://0017-Cleanup-evstdd_asm.patch \
+    file://0018-Implement-SPE-Instructions-evstwwe-evstwwex-evstwwo-.patch \
+    file://0019-Implement-SPE-Instructions-evlhhesplat-evlhhesplatx-.patch \
+    file://0020-Implement-SPE-Instructions-evlwhsplat-evlwhsplatx-ev.patch \
+    file://0021-Implement-SPE-Instructions-evmergehi-evmergehilo-evm.patch \
+    file://0022-Implement-SPE-Instructions-evand-evandc-eveqv-evnand.patch \
+    file://0023-Implement-SPE-Instructions-evrlw-evrlwi-evslw-evslwi.patch \
+    file://0024-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch \
+    file://0025-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch \
+    file://0026-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch \
+    file://0027-Tests-based-on-SPE-Programming-Interface-Manual-Chap.patch \
+    file://0028-Implement-SPE-Instructions-evextsb-evextsh.patch \
+    file://0029-Implement-SPE-Instructions-evcntlsw-evcntlzw.patch \
+    file://0030-Implement-SPE-Instructions-evsplatfi-evsplati.patch \
+    file://0031-Implement-SPE-Instructions-evneg-evabs-evrndw.patch \
+    file://0032-Implement-SPE-Instructions-evcmpeq-evcmpgts-evcmpgtu.patch \
+    file://0033-Power-ISA-V2.06B-V2-Sec.-1.6.25-EVS-FORM-extractors.patch \
+    file://0034-Implement-SPE-Instructions-evsel.patch \
+    file://0035-Provide-for-being-able-to-iterate-the-regression-tes.patch \
+    file://0036-Implement-SPE-Instructions-evmra-evaddsmiaaw-evaddum.patch \
+    file://0037-Implement-SPE-Instructions-evaddiw-evaddw-evsubifw-e.patch \
+    file://0038-Implement-SPE-Instructions.patch \
+    file://0039-Implement-SPE-Instructions-evmwsmfan-evmwsmfaa-evmws.patch \
+    file://0040-Implement-SPE-Instructions.patch \
+    file://0041-Add-document-FSL-SPE-README.txt.patch \
+    file://0042-Mark-version-as-3.8.1-FSL-Thu-Mar-28-165508-PDT-2013.patch \
+    file://0043-Minor-edits-to-FSL-SPE-README.txt.patch \
+    file://0044-Minor-edits-FSL-SPE-README.txt.patch \
+    file://0045-VEX-priv-guest_ppc_helpers.c-Use-__ev_convert_s64-in.patch \
+    file://0046-Implement-SPE-Instructions-evmhegsmfaa-evmhegsmfan-e.patch \
+    file://0047-Implement-SPE-Instructions-evmhegsmiaa-evmhegsmian-e.patch \
+    file://0048-Fix-spelling-error-in-FSL-SPE-README.txt.patch \
+    file://0049-Mark-version-as-3.8.1-FSL-Mon-Apr-8-110008-PDT-2013.patch \
+    file://0050-Adding-new-file-regtest-power7-64.default-build.log.patch \
+    file://0051-Cleanups-in-memcheck-tests-ppc32-test_spe.c.patch \
+    file://0052-Implement-Instructions-mfspefscr-mtspefscr.patch \
+    file://0053-Implement-SPE-Instructions-efdcmpeq-efdabs-efdadd-ef.patch \
+    file://0054-Implement-SPE-Instructions-efdcmpgt-efdcmplt-efdctsf.patch \
+    file://0055-Implement-SPE-Instructions.patch \
+    file://0056-Implement-SPE-Instructions.patch \
+    file://0057-Implement-SPE-Instructions.patch \
+    file://0058-Implement-SPE-instructions-evaddssiaaw-evaddusiaaw-e.patch \
+    file://0059-Cleanup-dirty-helper-parts.patch \
+    file://0060-Run-memcheck-tests-ppc32-test_spe-only-on-Power-SPE-.patch \
+    file://0061-Test-that-Valgrind-will-determine-an-out-of-bounds-a.patch \
+    file://0062-Mark-version-as-3.8.1-FSL-SDK-1.4-spe-Fri-May-24-080.patch \
+    file://0063-FSL-SPE-README.txt-Add-prlimit-2-being-an-unsupporte.patch \
+    file://0064-Add-system-tests-based-on-the-FSL-SPE-README.txt-s-s.patch \
+    file://0065-misc-updates-for-sdk-1.6.patch \
+    file://valgrind-3.8.1-sepbuildfix.patch \
+    file://configure-with-newer-glibc.patch \
+    file://fix-out-of-tree-builds-with-newer-glibc.patch \
+    file://glibc.patch \
+    file://valgrind-3.8.1-Bug-308573.patch \
+"
+SRC_URI[md5sum] = "288758010b271119a0ffc0183f1d6e38"
+SRC_URI[sha256sum] = "473be00576bed311a662b277a2bfbe97d9cca4058e68619a0e420c9fc19958db"
+
+inherit autotools
+
+S = "${WORKDIR}/${BPN}-3.8.1"
+
+EXTRA_OECONF = "--without-mpicc"
+EXTRA_OEMAKE = "-w"
+PARALLEL_MAKE = ""
+
+do_install_append () {
+    install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
+    find ${D} -type f | xargs sed -i '1s,#!.*perl,#!${USRBINPATH}/env perl,'
+}
+
+RDEPENDS_${PN} += "perl"
+
+FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug/*"
+RRECOMMENDS_${PN}_powerpc += "${TCLIBC}-dbg"
+RRECOMMENDS_${PN}_powerpc64 += "${TCLIBC}-dbg"
+RDEPENDS_${PN} += "perl"
+
+COMPATIBLE_MACHINE = "(e500v2)" 
-- 
2.4.3



More information about the meta-freescale mailing list